Complexity of Cooperation Web Site

Full_Propensity_Maker


Note: The source code for the programs is in HTML format. To get a plain ASCII text copy of the code, you can either save the page as "text" (and strip off the extraneous text in the header and footer) or save as "source" or "HTML" and extract the text between the <pre> and </pre> tags.

Documentation, Propensity_Maker program, all versions

Programs written by Scott Bennett for Professor Robert Axelrod

University of Michigan

Department of Political Science

Documentation dated October 10, 1991

Additional notes added 8/18/92

Table of Contents

Summary

Related Programs

Versions of Propensity_Maker

Summary of Program Versions

Program Implementation

Running Propensity_Maker

Calculation of Propensity

Calculation of Raw_Propensity

Components of Raw_Propensity

Scaling

Input File to Propensity_Maker

Output of Propensity_Maker

Summary

The Alliance_Sim program simulates an "energy landscape" of potential alliances. This landscape is formed by the propensities of countries to like or dislike one another. Propensities for Alliance_Sim can be directly entered in an input file by the user, or the Propensity_Maker program can be used to create an input file. Propensity_Maker takes a set of input data on underlying sources of cooperation and conflict between countries, calculates a numeric representation of the propensity of two nations to ally, and produces a file capable of being read as input by the "Alliance_Sim" program.

Related Programs

Alliance_Sim is the program that uses Propensity_Maker output files as its input. Documentation for the Alliance_Sim program is the document "Alliance_Sim.v3.13.doc".

Alliance_Sim_Big is a related program that has been developed to allow more than 18 actors (the Alliance_Sim limit) by doing a non-exhaustive search of the potential alliance space. Documentation for that program is in the document "Alliance_Sim_Big.v1.41.doc".

Propensity_Maker_ANES is designed to process raw data input files into the format required by Alliance_Sim_Big, for the case of national election voting. Documentation for the program is in the document "Prop_Maker_ANES.v1.0.doc".

Versions of Propensity_Maker

Different versions of the Propensity_Maker program look for slightly different information in input files and process that information differently. All versions of Propensity_Maker share the same basic input file structure. All versions of Propensity_Maker read in information about country name, country size, border conflicts, ethnic conflicts, war history, and religion. However, religion is coded as a 4 category variable in Propensity_Maker v2.1, and 6 categories in other versions. Also, the fifth category contributing to raw propensity from the raw data lines is interpreted and processed differently by different versions of Propensity_Maker. Finally, Propensity_Maker v3.0 reads and uses a sixth category contributing to raw propensity. Sections of this documentation distinguish between the requirements of different program versions by marking information for different program versions in italics.

Summary of Program Versions

v2.1: Five categories: Ethnic Conflict, Border Conflict, War History, 4-category Religion, EEC Membership.

v3.0: Six categories: Ethnic Conflict, Border Conflict, War History, 4-category Religion, EEC Membership, Soviet_Allegiance; Prompts for Soviet Weight.

v3.11: Five categories: Ethnic Conflict, Border Conflict, War History, 6-category Religion, EEC Membership; Scaling 10 to 1000.

v3.21: Five categories: Ethnic Conflict, Border Conflict, War History, 6-category Religion, Government Type 1-5; Scaling 10 to 1000

v3.31: Five categories: Ethnic Conflict, Border Conflict, War History, 6-category Religion, Government Type Dem/Fasc/Comm/Other with 1.5 weighting; Scaling 10 to 1000.

v3.32: Five categories: Ethnic Conflict, Border Conflict, War History, 6-category Religion, Government Type Dem/Fasc/Comm/Other with 1.0 weighting; Scaling 10 to 1000.

Program implementation

Propensity_Maker was written using the Lightspeed Corp. Think Pascal v3.0 language and environment.

A run of Propensity_Maker takes approximately 5 seconds.

The program consists of approximately 800 lines of computer code.

Running Propensity_Maker

When run, Propensity_Maker prompts the user for the name of an input file, up to 32 characters long. By convention, this file is usually called "xxxxxxxxx.raw", where xxxxxxxx is a name of the user's choice, up to 28 characters long. The ".raw" as the final part of the file name identifies the file as a raw data file.

Propensity_Maker then prompts the user for the name of an output file, up to 32 characters long. By convention, this file is usually called "xxxxxxxxx.prop", where xxxxxxxx is a name of the user's choice, up to 27 characters long. The ".prop" as the final part of the file name identifies the file as a file of propensity data.

Additional input requested by Propensity_Maker v3.0 only: After prompting onscreen for input and output file names, Propensity_Maker v3.0 prompts onscreen for the value of the variable "Soviet_Weight." The user should type in a real number for that variable. See below, "Soviet_Allegiance" under "Components of Raw Propensity" for details of that variable.

Calculation of Propensities

The "propensity" of two countries to ally is a representation of how much the two countries "like" each other, of how much fundamental conflict or friction exists between them, and at the bottom line how likely they are to ally with each other given an opportunity. A high propensity indicates that two countries like each other; a lower propensity indicates greater dislike. Note that Propensity_Maker incorporates the size of countries into its calculation of propensities; thus, propensities really are "size * propensities". The term "raw propensity" will be used henceforth to refer to the combination of the raw factors creating hostility between states. Propensity will refer to size * raw propensity.

The propensity between 2 countries in Propensity Maker is calculated by the following:

Propensity (i,j) = Size(i) * Size(j) * Raw_Propensity (i,j) for i <> j

Propensity (i,j) = 1.0 for i = j.

That is, the propensity of countries i and j to ally is the size of each multiplied together, multiplied by the fundamental relationship (raw_propensity) of the two countries. The Raw_Propensity is adjusted by size because the relations between two large countries (e.g. Germany and the USSR) are more likely to be important to, or even drive, alliance behavior than are two small countries (e.g Ireland and Hungary). Thus Raw_Propensity measures how much two countries like each other, while Propensity measures the likes and dislikes as important to an alliance structure.

Propensities are calculated as symmetric in these version of Propensity_Maker. That is, if France has a propensity of 50 with Britain, Britain also has a propensity of 50 with France.

Raw_Propensity is calculated as a combination of historical sources of tension and cooperation between two nations. Raw_Propensity is calculated in different ways by different versions of Propensity_Maker. This also results in the format of raw data lines being slightly different in these different versions.

Calculation of Raw_Propensity

The components of Raw_Propensity, different subsets of which are used in different versions of Propensity_Maker, are:

Ethnic Conflicts

Border Disputes

War History

EEC Membership

Soviet Allegiance

4 Category Religious Feeling

6 Category Religious Feeling

Democracy Scale Government Type

4 Category Uneven Government Type

4 Category Even Government Type

For each category used in a particular version of Propensity_Maker, a calculation is made of its contribution to Raw_Propensity. The contributions of the categories are summed together to give a total Raw_Propensity. The calculations of Raw_Propensity for each program version, and the range of Raw_Propensity, are as follows:

v 2.1: Raw_Propensity (i,j) = Ethnic_Conflicts(i,j) + Border_Disputes(i,j) + War_History(i,j) + 4_Category_Religious_Feeling(i,j) + EEC_Membership(i,j).

Raw_Propensity can vary from -4 through +2.

v 3.0: Raw_Propensity (i,j) = Ethnic_Conflicts(i,j) + Border_Disputes(i,j) + War_History(i,j) + 4_Category_Religious_Feeling(i,j) + EEC_Membership(i,j) + Soviet_Allegiance(i,j).

Raw_Propensity can vary from -4 through + infinity (or, arbitrarily Large Positive Real due to Soviet Allegiance).

v 3.11: Raw_Propensity (i,j) = Ethnic_Conflicts(i,j) + Border_Disputes(i,j) + War_History(i,j) + 6_Category_Religious_Feeling(i,j) + EEC_Membership(i,j).

Raw_Propensity can vary from -4 through +2.

v 3.21: Raw_Propensity (i,j) = Ethnic_Conflicts(i,j) + Border_Disputes(i,j) + War_History(i,j) + 6_Category_Religious_Feeling(i,j) + Democracy_Scale_Government_Type(i,j).

Raw_Propensity can vary from -5 through +2.

v 3.31: Raw_Propensity (i,j) = Ethnic_Conflicts(i,j) + Border_Disputes(i,j) + War_History(i,j) + 6_Category_Religious_Feeling(i,j) + 4_Category_Uneven_Government_Type(i,j).

Raw_Propensity can vary from -5.5 through +2.

v 3.32: Raw_Propensity (i,j) = Ethnic_Conflicts(i,j) + Border_Disputes(i,j) + War_History(i,j) + 6_Category_Religious_Feeling(i,j) + 4_Category_Even_Government_Type(i,j).

Raw_Propensity can vary from -5 through +2.

Components of Raw_Propensity

Ethnic Conflicts: The presence of an ethnic conflict between 2 countries is coded as a yes or no. If a conflict exists (yes), -1 is added to the Raw_Propensity between the two countries. If there is no such conflict in the recent history of the two countries, 0 is added to the Raw_Propensity.

Border Disputes: The presence of a dispute over borders between 2 countries is coded as a yes or no. If a conflict exists (yes), -1 is added to the Raw_Propensity between the two countries. If there is no such dispute between the countries, 0 is added to the Raw_Propensity.

War History: The presence of a history of war between 2 countries is coded as a yes or no. If a conflict exists (yes), -1 is added to the Raw_Propensity between the two countries. If there is no such conflict in the recent history of the two countries, 0 is added to the Raw_Propensity.

EEC Membership: The full membership of the countries in the EEC is coded as yes or no. If the two countries are both coded yes, +1 is added to the Raw_Propensity between the two countries; otherwise 0 is added.

Soviet Allegiance: The category Soviet_Allegiance is meant to capture the Soviet empire. The variable "Soviet_Empire" in the raw data should be coded as a 1 if a country was in the Soviet empire, and a 0 if the country was not. Versions of Propensity_Maker which use the category Soviet_Allegiance also prompt the user to type in a real number value for the "Soviet_Weight" variable (See "Running Propensity_Maker" above). These variables combine to give a total impact for Soviet_Allegiance. If the variable Soviet_Empire for country i has a value 1, then (+1 * Soviet_Weight) is added to the Raw_Propensity of country i with the USSR. If the value of the variable is 0, nothing is added to Raw_Propensity . Thus,

Soviet_Allegiance (i,j) =

{ +1 * Soviet_Empire(i) * Soviet_Weight if j = USSR

0 if j <> USSR}

4 Category Religious Feeling: Religion in a country is coded in four variables: proportion Catholic, proportion Protestant, proportion Orthodox Christian, and proportion Muslim. Religious Feeling is then computed as follows:

1) The portions of the two countries on opposite sides of the Christian-Muslim divide are multiplied together and by -1. This value is added to Raw_Propensity

2) The portions of the two countries with the same exact religion (Catholic, Protestant, Orthodox, Muslim) are multiplied together and by +1 (note that different "Christian branch" religions have no effect on Religious_Feeling). This value is added to Raw_Propensity.

Overall, then,

4_Category_Religious_Feeling (i,j) = [+1 * Catholic(i) * Catholic(j)] +

[+1 * Protestant(i) * Protestant(j)] +[+1 *Orthodox(i) *Orthodox(j)] +

[+1 * Muslim(i)*Muslim(j)] +

[-1 * (Catholic(i) + Protestant(i) + Orthodox(i) ) * Muslim (j)] +

[-1 * Muslim (i) * (Catholic(j) + Protestant(j) + Orthodox(j) ) ]

For example: i is 0.25 Catholic, 0.25 Protestant, and 0.5 Muslim; j is 0.5 Catholic, 0.3 Orthodox, and 0.2 Muslim:

4_Category_Religious_Feeling =

(1*0.25*0.5) + (1*0.5*0.2) + (-1*(0.25+0.25)*0.2) + (-1*0.5* (0.5+0.3))

= 0.125 + 0.1 + -0.1 + -0.4 = -0.275

-0.275 is added to Raw_Propensity as the contribution of religion.

6 Category Religious Feeling: Religion in a country is coded in six variables: proportion Catholic, proportion Protestant, proportion Orthodox Christian, proportion Muslim, proportion Atheist, and proportion Other. Religious Feeling is then computed as follows:

1) The portions of the two countries on opposite sides of the Christian-Muslim divide are multiplied together and by -1 to obtain a negative addition to Raw_Propensity

2) The portions of the two countries with the same exact religion (Catholic, Protestant, Orthodox, Muslim) are multiplied together and by +1 (note that different "Christian branch" religions have no effect on Religious_Feeling) to obtain a positive addition to Raw_Propensity.

3) The portions of the two countries which are Atheists are multiplied by the proportions of the other which are Catholic, Protestant, Orthodox, and Muslim and by -1 to obtain a negative addition to raw propensity.

4) The portions of the two countries which are Atheists are multiplied by the proportion of the other which is Atheist and by +1 to obtain a positive addition to raw propensity.

5) The proportion "Other" is totally neutral towards every category. No actual calculation is done involving the proportion of Other. This is equivalent to performing proportion(Other) * proportion (any_category) * 0.

Overall, then,

6_Category_Religious_Feeling(i,j) = [+1 * Catholic(i) * Catholic(j)] +

[+1 *Protestant(i) *Protestant(j)] + [+1 *Orthodox(i) *Orthodox(j)] +

[+1 * Muslim(i)*Muslim(j)] + [+1 * Atheist(i) * Atheist(j)] +

[-1 * (Catholic(i) + Protestant(i) + Orthodox(i) ) * Muslim(j)] +

[-1 * Muslim (i) * (Catholic(j) + Protestant(j) + Orthodox(j) ) ] +

[-1 *(Catholic(i)+Protestant(i)+Orthodox(i)+Muslim(i))*Atheist(j)] +

[-1 *Atheist(i) * (Catholic(j)+Protestant(j)+Orthodox(j) +Muslim(j))]

Democracy Scale Government Type: The level of democracy in a country is coded into a 5 point scale, 1 through 5. 5 represents a high level of democracy. Additionally, a 0 is interpreted as valid in the raw data file and is treated as representing missing data. Possible reasons for missing data include revolution or war which make assessment of the type of government of a country impossible. The contribution of "Government Type" to raw propensity depends on the type of government of both nations. If both nations share the same government type, a contribution of +1 is made to raw propensity. For every point difference, the contribution to raw propensity is 0.5 less, resulting in a range of raw propensity contribution of -1 to +1. If the type of government is 0 for either country in a dyad, indicating that the type of government is unknown or undeterminable, government type makes no contribution to raw propensity. So, letting "Dem(i)" represent the value on the 5 point scale for country i, then

Democracy_Scale_Government_Type =

{ +1 - (0.5 * Abs (Dem(i) - Dem(j)) ) for 1 <= Dem(i), Dem(j) <= 5

0 for Dem(i) = 0 or Dem(j) = 0}

For example: type 1 with type 1 results in a contribution of +1; type 1 with type 2 results in a contribution of +.5; type 1 with type 4 results in a contribution of -0.5; and type 1 with type 5 results in a contribution of -1.

4 Category Even Government Type: Government Type is coded into a 4 point categorization, from 1 to 4. Additionally, a 0 is valid in the raw data file and is treated as missing data. Values for Government type represent:

1 = Democratic

2 = Fascist

3 = Communist

4 = Other Authoritarian, such as Monarchist or Military government

In general, governments like others of the same type, and dislike governments of another type. The category is labeled 4 category even government type because all governments are assumed to dislike governments of other types equally. The exceptions are "Other Authoritarian" governments who do not care about the type of government of any other country; other governments also do not care about the "Other Authoritarian" states. Thus, the contribution of a dyad to Raw_Propensity is as follows:

1:1, 2:2, 3:3 = +1.0 (Democratic-Democratic, Fascist-Fascist, Communist-Communist)

1:2, 1:3, 2:3 = -1.0 (Democratic-Fascist, Democratic-Communist, Fascist-Communist)

4:1, 4:2, 4:3 = 0.0 (Other-Any)

0:1, 0:2, 0:3, 0:4 = 0.0 (Missing-Any)

4 Category Uneven Government Type: Government is coded into 4 categories as described under "4 Category Even Government Type". Contributions to Raw_Propensity are also mostly the same as described there. However, Fascists are assumed to dislike Communists more than either dislikes Democracies. The contribution to Raw_Propensity of a 2:3 (Fascist-Communist) dyad is -1.5. Other combinations contribute the same as listed above under 4 Category Even Government Type.

Scaling

With size measured as a ratio-type variable in Propensity_Maker, for example as population, GNP, or military spending, propensity can become very large in absolute terms when Size(i) * Size(j) is calculated. For example, two countries with spending 1000 would have propensity of 1000000 * raw_propensity. Similarly, when size is a variable such as proportion of World GNP, ranging from 0 to 1, propensity can become very small. These large and small numbers become difficult to interpret quickly and easily. For this reason, in most versions of Propensity_Maker, propensities are scaled so that the absolute value of the largest propensity is greater than or equal to 10, and less than or equal to 1000. Thus, 10 <= abs(the largest propensity value) <= 1000.

To achieve this scaling, all propensities are divided by 10n where n is a power sufficient to adjust the largest propensity value to between 10 and1000. For example, if the absolute value of the largest propensity was 50000, all propensities would be be divided by 102 = 100, resulting in a largest final propensity of 500. If the absolute value of the largest propensity was .006, all propensities would be be divided by 10-4 = 0.0001, resulting in a largest final propensity of 60. If the largest absolute value is already >= 10 or <= 1000 before scaling, no transformation is performed. Since this transformation is linear and does not flip the sign of any propensity(i,j), a scaled as compared to an unscaled propensity matrix has no effect on the optima found by the Alliance_Sim program.

The scaling factor is printed by Propensity_Maker as an additional line of comments, and is in the final Alliance_Sim output.

Input File to Propensity_Maker

The input file is basically of the same format for all versions of Propensity_Maker. The raw data input section is slightly different for different versions of the program. These differences are marked in the list of lines to be read in by italics.

The input file is a flat text file.

Lines 1 and 2: general comment lines, ignored by the program.

Line 3: a line of *****, at least 2 asterisks, read by Propensity_Maker as a separator between the header lines and the comment lines which are next.

Line 4 to ????: These are up to 25 lines which will be read by Propensity_Maker and inserted as lines in the output file generated by Propensity_Maker, for later reading by Alliance_Sim for inclusion in that program's output and the Alliance_Sim history file. The end of the comment lines are marked by the next line.

Next line: a line of *****, at least 2 asterisks, read by Propensity_Maker as a separator between the comment lines and the data lines which are next.

Next Line: Name of or path to the run number file, in quotation marks (see Alliance_Sim documentation for run number file definition).

Next Line: Name of or path to the history file, in quotation marks (see Alliance_Sim documentation for history file definition).

Next Line: Integer for the number of countries in this run of the simulation.

Next line: a line which can either be:

1) a line of '0's and '1's which represent an initial starting alliance structure from which Alliance_Sim will calculate a path to its local optimum.

2) a blank line, in which case Alliance_Sim will not calculate any path from any starting structure to a local optimum.

Next line: a line of *****, at least 2 asterisks, read by Propensity_Maker as a separator between the comment lines and the data lines which are next.

Next 4 lines: comment lines, ignored by the program. Last is usually a line of "------" which separates these header lines from the substantive raw data in the file, immediately below.

Next n lines, where n is the number of countries read in above: raw conflict data lines. Each raw conflict data line has a number of parts, separated by at least one space or tab:

All versions:

First, an integer representing which number country this is. For example, line 9 of the input file would always say 1, as line 9 contains raw conflict data about country 1.

Second, the name of the country corresponding to the number. This name can be up to 8 characters long.

Third, a real number representing the size of country.

Fourth, a list of integer values for the other countries with which this country has an ethnic conflict. This list can contain any number of other countries with which a conflict occurs; the countries in this list must be separated by commas. If this country has no conflicts with any other, a 0 must be put in to represent this.

Fifth, a list of integer values for the other countries with which this country has a border conflict. This list is formatted in the same way as the ethnic conflict list.

Sixth, a list of integer values for the other countries with which this country has a history of war. This list is formatted in the same way as the ethnic conflict list.

The next set of entries are for religion, and will be different depending on what version of Propensity_Maker is being run:

Version 2.1, 3.0:

Seventh: a real value representing the proportion of the country's population which is Catholic. If this value (and succeeding values) is less than 1.0, the number must start with a "0". That is, the proportion must be listed in the raw data file as "0.49" (for example) rather than just ".49". If the decimal is not preceded by a 0, Propensity_Maker will go into an infinite loop.

Eighth: a real value representing the proportion of the country's population which is Protestant.

Ninth: a real value representing the proportion of the country's population which is Orthodox Christian.

Tenth: a real value representing the proportion of the country's population which is Muslim.

Version 3.11, 3.21, 3.31, 3.32:

Seventh: a real value representing the proportion of the country's population which is Catholic. If this value (and succeeding values) is less than 1.0, the number must start with a "0". That is, the proportion must be listed in the raw data file as "0.49" (for example) rather than just ".49". If the decimal is not preceded by a 0, Propensity_Maker will go into an infinite loop.

Eighth: a real value representing the proportion of the country's population which is Protestant.

Ninth: a real value representing the proportion of the country's population which is Orthodox Christian.

Tenth: a real value representing the proportion of the country's population which is Muslim.

Eleventh: a real value representing the proportion of the country's population which is Atheist.

Twelfth: a real value representing the proportion of the country's population which is of type "Other" religion.

The next entry should contain different information depending on what version of Propensity_Maker is being run:

Version 2.1, 3.0, 3.11:

Next: EEC_Membership: either "0" or "1", 0 if the country is not in the European Economic Community, 1 if it is in the community.

Version 3.21:

Next: Democracy_Scale_Government_Type: integer 0 to 5; 0 represents missing; 1 to 5 represent increasing levels of democracy.

Version 3.31, 3.32:

Next: 4_Category_Government_Type: integer 0 to 4; 0 represents missing; 1 represents Democracy; 2 represents Fascist; 3 represents Communist; 4 represents Other Authoritarian.

Version 3.0 looks for one additional column of input from the input file:

Version 3.0:

Next: Soviet_Empire: either "0" or "1", 0 if the country is not in the Soviet Empire, 1 if it is in the Soviet Empire. {User should also expect program to prompt for Soviet_Weight when it runs.}

Sample Line, v2.1:

3 Germany 10 14 0 4,8,12,13 0.5 0.5 0 0 1

This indicates that country 3, Germany, has: a size of ten; an ethnic conflict with country 14; no border conflicts with any other country in this run of the simulation; a history of war with countries 4, 8, 12, and 13; 50% of its population is Catholic; 50% of its population is Protestant; none of its population is Orthodox or Muslim; and it is a member of the EEC.

Sample Line, v3.31:

10 USSR 16.3 14 13 12,13 0.25 0.25 0.1 0.1 0.1 0.15 3

This indicates that country 10, USSR, has: a size of 16.3; an ethnic conflict with country 14; a border conflict with country 13; a history of war with countries 12, and 13; 25% of its population is Catholic; 25% of its population is Protestant; 10% of its population is Orthodox; 10% of its population is Muslim; 10% of its population is Atheist; 15% of its population is of other religions; and it has a communist (type 3) government.

Output of Propensity_Maker

Propensity_Maker presents on screen output of the calculated propensity * size matrix. The program also creates an output file (named whatever was specified at the prompt at the beginning of the run) which contains propensity information in the form used by the input section of Alliance_Sim. That is, the output file of Propensity_Maker is identical to the input file of Alliance_Sim.

The output file of Propensity_Maker is a flat text file containing the following lines:

Line 1 to Line 12: Header lines, any text here is fine. Propensity_Maker here outputs the date and time Propensity_Maker was run, and the version of Propensity_Maker run, and the name of the input file. These 12 lines are ignored by Alliance_Sim.

Line 13: A line of ***** (at least 2 asterisks) which separates the following comment lines (which are copied into the final output) from the header lines (which are not).

Line 14 to ????. Up to 25 comment lines can be put here which Alliance_Sim will read and put at the top of the output, and will put into the history file. Propensity_Maker makes the last of these lines list the scaling factor used for that run of the program. After the last line which the user wants in the output must be another line of ***** (at least 2 asterisks) which marks the end of the comment. Without the **** line the Alliance_Sim program will fail, as it does not know when the comment ends.

Next Line: Name of / path to the run number file, in quotation marks (see below).

Next Line: Name of / path to the history file, in quotation marks (see below).

Next Line: Integer for the number of countries in this run of the simulation.

Next n lines, where n is the number of countries in this run: name of one country, up to 8 characters long, not in quotation marks.

Next comes the propensity matrix to be read in. This consists of:

Next line: A line which is ignored by the input program, but which usually consists of integers 1..n simply to function as headers for the columns of the propensity matrix.

Next n lines: Each line has an index 1..n, and then the real number propensity*size of that country with all of the other countries in the simulation run. First is one integer 1..n marking the number of the country. This usually corresponds with the number on the first line of the matrix (the header of integers) which form the columns to the index row for easier data entry. Next come n real numbers which represent the propensity*size of the indexed country to ally with country 1..n (the column)

Next line: a line of **** which separates the propensity matrix from the next section.

Next line: a line which can either be:

1) a line of '0's and '1's which represent an initial starting alliance structure from which Alliance_Sim will calculate a path to its local optimum.

2) a blank line, in which case Alliance_Sim will not calculate any path from any starting structure to a local optimum.

Next line: a line of **** which separates the starting structure from the next section.

Next section, up to end-of-file: the lines in this section are the raw data from which propensities were generated. The first three lines are header lines consisting of labels for the columns of the raw data and a line of "---------". Next there are n lines, where n is the number of countries processed in this run of Propensity_Maker, each of which is identical to a raw data input line. Each line has a number for each country, the name of the country, the size of the country, the ethnic, border, and war history conflicts of that country, the proportion of the country of different religions, and finally information on EEC membership, government type, and / or Soviet allegience depending on what version of Propensity_Maker is being run. See the above documentation section on input data for more details of how these lines are formatted. They are output identically to the way they are required in the input.

Note: if the user has directly edited the xxxxxx.prop file, creating the propensity matrix by hand, the user should make sure to remove the raw data lines or change them to his or her own lines, since the propensity data did not actually come from the raw data. If the user edits this file, they can put any comment lines they wish in this section and it will be copied by Alliance_Sim into the program output.


Back to Chapter 4
Back to Chapter 5
Back to Complexity of Cooperation Home Page

University of Michigan Program for the Study of Complex Systems
Contact http@maria.physics.lsa.umich.edu.
Revised November 4, 1996.