LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN 510.64 The person charging this material is re- sponsible for its return to the library from which it was withdrawn on or before the Latest Date stamped below. Theft, mutilation, and underlining of books are reasons for disciplinary action and may result in dismissal from the University. UNIVERSITY OF ILLINOIS LIBRARY AT URBANA-CHAMPAIGN DEC 1 4 19™ L161 — 0-10% yruZi UIUCDCS-R-73-5T3 LOCATING OPTIMAL SITES IN GEOGRAPHIC INFORMATION SYSTEMS by Stewart Arnold Schuster June 9, 1973 Digitized by the Internet Archive in 2013 http://archive.org/details/locatingoptimals573schu uiucdcs-r-73-573 LOCATING OPTIMAL SITES IN GEOGRAPHIC INFORMATION SYSTEMS* by Stewart Arnold Schuster June 9, 1973 Department of Computer Science University of Illinois at Urbana-Champaign Urbana, Illinois 6l801 ■^Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate College of the University of Illinois at Urbana-Champaign and supported in part by the Advanced Research Projects Agency of the Department of Defense and was monitored by the U.S. Army Research Office-Durham under Contract No. DAHC0^-72-C-0001. Ill ACKNOWLEDGMENT I am indebted to Professor Daniel L. Slotnick for his support and encouragement of this thesis. I am especially grateful to Dr. Peter A. Alsberg for his dedicated supervision of this work. I would also like to express my gratitude to Mr. William D. McTeer as well as the rest of the NARIS staff because of their aid given to me while extensions were being made to the system for this thesis. In addition, my thanks to the entire documentation staff at the Center for Advanced Computation and especially to Mrs. Shirley M. Brown for outstanding clerical assistance. Finally, I want to express my deepest endearments for and dedicate this work to my wife Bette, my mother, and my father for their understanding and patience throughout my education. This research was supported in part by the Advanced Research Projects Agency of the Department of Defense and was monitored by the U.S. Army Research Office-Durham under Contract No. DAHCOU-72-C-0001; by the Ford Foundation under contract for the Natural Resource Information System (NARIS); by the Institute for Environmental Quality under contract for the Illinois Resource Information System Feasibility Study (IRIS); and by the Department of Computer Science of the University of Illinois at Urbana-Champaign. IV TABLE OF CONTENTS CHAPTER Page 1. INTRODUCTION 1 2. A DEFINITION OF OPTIMAL AREAS, PATHS, AND POINTS 3 2.1 Parcel Configurations for Geographic Regions 3 2.2 Forming Areas, Paths, and Points From Sets of Parcels: A Linear Graph Model 5 2.3 Parcel Weighting, Objective Formulation, and Optimal Site Definition 12 2.k Simultaneous Multiple Site Location 12 3. INTEGER PROGRAMMING SOLUTIONS 15 3.1 An All-Integer Formulation 15 3.1.1 Formulation of the Initial Tableau 15 3.1.2 A Canonical Formulation 25 3.1.3 A Note on Additional Constraints 28 3.1.U An Example 28 3.1.5 Computational Experience 37 3.2 A Zero-One Formulation 39 3.2.1 Formulation of the Initial Tableau ^0 3.2.2 Computational Experience hh 3.3 A Zero-One Multiple Site Formulation ^7 3.k Suggestions For Future Research 52 h. LANGUAGE CONSTRUCTS FOR EXPRESSING PARCEL WEIGHTS 55 k.l An Introduction to NARIS 55 k.2 Outputting of Arithmetic Expressions in NARIS 60 U.2.1 Fundamental Definitions 60 V It. 2. 1.1 Syntax 60 It. 2. 1.2 Semantics 6l It. 2. 1.3 Examples 6l it. 2. 2 Functional Transformations 62 It. 2. 2.1 Syntax 62 U.2.2.2 Semantics . 62 it. 2. 2. 3 Examples 63 it. 2. 3 Arithmetic Expression Within an Occurrence 63 It. 2. 3.1 Syntax 63 U.2.3.2 Semantics 65 U.2.3.3 Examples 65 It. 2. it Boolean Expressions Within an Occurrence 66 It. 2. U .1 Syntax 66 It. 2. It. 2 Semantics 67 It. 2. It. 3 Examples 69 it. 2. 5 Arithmetic Expressions Within a Class 69 It. 2. 5.1 Syntax 69 It. 2. 5. 2 Semantics 69 it. 2. 5. 3 Examples TO U.2.6 Arithmetic Expressions Over a Parcel 71 U. 2. 6.1 Syntax 71 It. 2. 6. 2 Semantics 71 it. 2. 6. 3 Examples 72 It .2.7 The Output Request 72 U. 2. 7-1 Syntax 72 it. 2. 7. 2 Semantics 73 14.2.7.3 Examples 73 VI 4.3 A Weighting Expressions and Heuristic Area Location Example 73 4.3.1 A Heuristic Area Location Algorithm 73 4.3.2 A Housing Subdivision Example 74 4.4 Future Language Concepts 79 4.4.1 Distance and Direction 82 4.4.2 Numerical Associations for Non-numerical Data ... 83 4.4.3 The Influence of One Parcel on Another 84 4.4.4 Optimal Regions 85 5. CONCLUSIONS 87 LIST OF REFERENCES 90 APPENDIX A. OPTIMAL SITE LOCATION CODE 92 B. HEURISTIC AREA LOCATION CODE 103 C. NARIS SYNTAX 115 VITA 131 Vll LIST OF TABLES Table Page 1. Allowed Outcomes of N. , N., L. ., and L 23 2. A Canonical Formulation of the Site Location Problem 26 3. A Tabular Description of the Linear Graph in Figure 11 33 h. A Canonical Zero-One Formulation of the Site Location Problem 1+3 5. Zero-One Test Results on a 6 x 6 Parcel Configuration k6 6. A Canonical Zero-One Formulation of the Multiple Site Problem i+9 7. Some Occurrences of Soil Data 6l 8. The Meaning of the Logical Operators AND and OR 68 Vlll LIST OF FIGURES Figure Page 1. Uniform Grid and Generalized Parcel Configurations k 2. Area, Path, and Point Sites in a Parcel Configuration .... 6 3. The Linear Graph Model of a Parcel Configuration 8 k. Directed Paths in a Parcel Configuration 9 5. The Connected Subgraph of a Subset of Contiguous Parcels ... 11 6. A Directed Tree Subgraph of a Subset of Contiguous Parcels . . 11 7. Optimal Area, Path, and Point Sites in a Parcel Configuration 13 8. The Integer Programming Activity Variables 16 9. A Node Numbering Scheme for Solution Trees 20 10. The Example Problem's Parcel and Weighting Configuration ... 29 11. The Linear Graph Model of the Example Problem 32 12. The Initial Tableau and Final Solution of the Example Problem 3*+ 13. The Equation Set Structure of the Example Initial Tableau . . 36 ik . The Average Processing Times of Several p x p Problems .... 38 15. Another Node Numbering Scheme for Solution Trees Ul 16. The Average Processing Times of Several Zero-One p x p Problems ^5 IT. The NARIS Data Structure 57 18. The Graph of the Function TREECUTCOST 6U 19. The Flowchart of the Heuristic Area Location Algorithm .... 75 20. The Flowchart of the Puddle Location Subalgorithm 76 21. The Conversation Between a User and the Hueristic Algorithm. . 80 CHAPTER 1 INTRODUCTION There must be an infinite number of motivations for man to geographically locate sites. Reasons for "finding places" are encompassed within the entire breath of human social, political, environmental, and economic endeavors. However, man's ability to find a "best site", what- ever the purpose, is limited by the quantity and quality of the geographic based information available, his capabilities at manipulating and analyz- ing that information, and his grasp and formulation of an objective to be optimized. Computers have long played successful roles in overcoming the limitations imposed by the quantity of data. Recently, computer analysis techniques are being developed to deal exclusively with spatial data - especially for environmental modeling problems [1,2,3,^,5]- This thesis deals with the problem of computer oriented objective formulation for site location and the analysis required to locate optimal sites based upon that objective. For most practical purposes, a geographic region is a two-dimen- sional Euclidian space. A site within a region can either be a single point, a continuous curve or path between two points, or any continuous subset of points that forms an area within the region. This paper will deal primarily with the location of areas. It will be shown that the problem of locating an area can subsume the problems of path and point location. One way of informally stating the problem of site location is given an objective, choose areas, paths, and points within a geographic re- gion which satisfy all the constraints set forth for the sites and optimize the objective. This description is clearly related to the language used in 2 the formulation of mathematical programming problems. Since much is known about the solution of these problems, a viable approach to the solution of the site location problem "would be to transform it into a mathematical pro- gramming problem. Development of this thesis is in three parts. First, a definition of areas, paths, and points is proposed in terms of contiguous geographic parcels. The division of geographic regions into parcels is compatible with the ways that generalized geographic based information systems store data. Second, an integer programming formulation of the problem is developed which is known to be solvable and will provide an optimal solution. Third, the problem of coefficient formulation for creating objective functions and constraints will be explored. CHAPTER 2 A DEFINITION OF OPTIMAL AREAS, PATHS, AND POINTS 2.1 Parcel Configurations for Geographic Regions Because the description of a geographic region at each point in the continum of a Euclidean space is impossible, several approaches have been developed to summarize geographies [l,2,U]. The most popular is to segment a region into a manageable number of nonoverlapping parcels such that their union covers the entire region. Data is then collected from the geographic area represented by the parcel and is usually stored as one logi- cal record within a geographic information system. This configuration can be further categorized into two main types: uniform grid and generalized parcel [k] . Figure 1 depicts these structures. Each structure presents advantages and problems to the designers, data collectors, and users of geographic information systems. The use of a particular structure will de- pend upon the application for which a system is intended and the budgetary restrictions imposed upon data collection and system development. Uniform grid systems superimpose a uniform rectangular or other regular grid over a region [6,7]. Because of its uniformity, geographic information systems using this structure are the easiest to construct. Record addresses can be calculated directly from the geographic reference which speeds retrieval. However, data acquisition is hindered because data must be collected according to the specific configuration of a uniform grid. Con- sequently, a grid size for these systems must be chosen before data collection begins. If the grid is very small, overhead will occur in keeping track of the large number of cells needed to cover a region. If the grid is large, LATITUDE- LONGITUDE GRID HEXAGONAL GRID UNIFORM GRID I / ' * PUBLIC LAND SURVEY ARBITRARY POLYGON GENERALIZED PARCELS Figure 1. Uniform Grid and Generalized Parcel Configurations. 5 the resolution of the data for urban regions, where landuse information is extensive, might be too low to be useful. Generalized parcel systems make no a priori assumptions about the shape of any parcels in the system. The parcels are usually described as arbitrary polygons. In the past, these systems have been developed to store land ownership data. Presently, they are beginning to be explored for the storage of extensive environmental information [8,9 s 10,ll]. The multiple resolution problem described previously for a uniform grid system can be solved using generalized parcels. This advantage must be balanced against the cost of digitizers and/or scanners which are required for interpreting parcel boundaries. Furthermore, the storage and retrieval algorithms become significantly more complex because record addresses cannot be directly cal- culated from the geographic reference. 2 . 2 Forming Areas , Paths , and Points From Sets of Parcels : A Linear Graph Model For the remainder of this thesis a geographic region will be ab- stracted as a two-dimensional collection of nonoverlapping parcels. Each parcel will have a fixed area greater than zero. However, the shape or con- figuration of the parcels will have no bearing on the algorithms developed for site location. A site within a geographic region of parcels must be redefined in terms of parcels. Figure 2 displays area, path, and point sites in a gener- alized parcel configuration. A precise definition will be presented using linear graph theory. In general terms, an area is any collection of contigu- ous parcels; a path between two parcels is any contiguous set of parcels which form a "line or string" between the two parcels; and a point is a single parcel. It is apparent that a path is an area with special linear POINT AREA Figure 2. Area, Path, and Point Sites in a Parcel Configuration, 7 features while a point is just a degenerate area. These properties will be discussed shortly in more detail. Figure 3 presents a generalized parcel system. A linear graph that models this system is formed by placing a node or vertex in each parcel and a link or edge between two nodes if and only if they are adjacent parcels The integer programming solution presented in chapter 3 will depend on the linear graphs being oriented or directed so that each link is transformed into two directed links, one in each direction. Areas, paths, and points can easily be described in terms of subgraphs of these linear graphs. A point is any single node of the linear graph. A path from one parcel to another in a generalized parcel system is a set of contiguous parcels that are connected by a directed path in the directed linear graph model of the parcel system. Figure h displays direc- ted paths in a parcel system. A directed path in an oriented graph is a sub-graph which has an equal number of arcs entering and leaving each node with the exception of the first node which has an extra arc leaving and the last node which has an extra arc entering. This definition has been used to establish integer programming formulations of the "shortest path problem" [12]. It is important to note that an optimal path between two parcels will never be modeled by a directed path that contains a directed circuit or loop. Figure h shows that a loop contains parcels that are unnecessary for the completion of a path. In this Thesis, the term directed path will only apply to those containing no directed circuits. A subset of parcels form a single area within the study region if and only if the nondirected subgraph associated with these parcels is con- nected. This subgraph is formed by deleting all the nodes and incident arcs _ J I Figure 3. The Linear Graph Model of a Parcel Configuration, o — ^0 — — o o 1 1 1 I 1 1 f 1 1 o- -^o - 1 1 - o~ 1 - o o — 1 - o 1 o 1 II o 1 o— — o— - 1 — o 1 o 1 o «• 1 — o 1 1 o 1 \ o- ~o — -~o Figure h. Directed Paths in a Parcel Configuration. 10 to these nodes which do not belong to the subset of parcels as shown in Figure 5. From linear graph theory, it is known that there exists at least one tree in any connected linear graph. Also, if a graph has n nodes, n-1 links, and contains no circuits then it is a tree and, therefore, connected [13]. A directed tree is defined to be a directed connected linear graph of k nodes, k-1 links with no more than one link directed into any node, and no directed circuits. It is easy to show there must exist at least one directed tree in the directed transformed graph that corresponds to every tree in a nondirected graph. Choose any node in the nondirected graph to act as a root for a tree and find the corresponding node in the directed graph. Find all the nodes which are daughters of the root in the nondirected graph and locate all the corresponding nodes in the directed graph. By the construction of the directed graph, there will be links directed from the root to each of the daughter nodes. By choosing each daughter in turn as a new root and finding their daughters we can repeat the matching process until a directed tree is found for each nondirected tree. Consequently, if a space is created that contains all directed tree subgraphs of the directed trans- formation of a graph then the space represents all possible areas or subsets of contiguous parcels. A directed tree subgraph of an area is shown in Figure 6 . It is important to note that both a directed path (with no directed circuits) and a single node are also directed trees. Because of this proper- ty, a linear graph integer programming formulation of the area location prob- lem also subsumes the path and point problems. 11 9-~ i — 9~- i i --9"- i -■? i i ♦-- i "™1 i i a r A i i Y 1 i *-- i / ^ > — T --+■- l i --4 i S r i i r- i i -+- i -4-- i l 1 i i i A— i --6-- i I i -4 Figure 5. The Connected Subgraph of a Subset of Contiguous Parcels o 1 o — o 1 o 1 -»-o 1 1 o Figure 6. A Directed Tree Subgraph of a Subset of Contiguous Parcels 12 2.3 Parcel Weighting , Objective Formulation , and Optimal Site Definition A mechanism must be provided which establishes the desirability of one site over another. One way to accomplish this is to numerically weight each parcel in the region by a positive number with respect to the contribu- tion, favorable or adverse, which a parcel would add should it be chosen as part of the site. The value of a site will simply be the sum of all the weights of the parcels that make up the site. Methods for using geographic based information systems to establish these weights will be developed in Chapter k. Let us assume that meaningful weights can be established from the data stored for the parcels. Then the objective is to determine the site of parcels that minimize or maximize the value of the site. If the weights represent suitabilities then a maximum valued site will be sought. However, if the weights describe costs then a minimum valued site will be best. Fig- ure 7 shows a weighted parcel system and some optimally allocated sites. Therefore, given a parcel configuration for a region and a weight for each parcel, the definition for an optimal site becomes "Maximize or minimize the sum of the weights of the parcels that form the site subject to the con- straints that l) the site is an area, path, or point of parcels and 2) that all other requirements for the site are satisfied". "Other requirements" are any conditions that must be met before a feasible collection of parcels can be an optimal solution. Conditions might be prescribed on the size of an area, the beginning and end points of a path, or any parameter of the data associated with the site. 2.U Simultaneous Multiple Site Location It is possible to encounter situations where two or more sites must be located simultaneously such that locational interdependences must MAXIMUM WEIGHTED POINT MAXIMUM WEIGHTED AREA MINIMUM WEIGHTED PATH Figure 7- Optimal Area, Path, and Point Sites in a Parcel Configuration. 11+ "be taken into account. Consider the problem of locating an industrial park and a large residential subdivision to house the park's new employees. Lo- cating each site independently would not take into consideration the undesir- ability of having housing too close to noise and air pollution sources. On the other hand, excessive transportation time and cost would be incurred if housing and employment were distantly separated. The above situation as well as similar ones can be handled by con- sidering extensions to the site location objective. Not only must the weights of each parcel for each site be expressed in the objective but also a weighting function of distance between parcels in different sites for each pair of sites must be included. The next chapter will establish the integer programming activity variables and constraints required to develop solvable formulations of the single and multiple site location problems. 15 CHAPTER 3 INTEGER PROGRAMMING SOLUTIONS The site location algorithm exploits the directed linear graph model of a geographic parcel configuration. A set of linear constraints is developed with reference to the graph which creates a space of feasible in- teger points. Each point describes a directed tree subgraph that represents a possible site. These constraints are then inserted into an integer pro- gramming framework where the objective is to optimize a linear function whose coefficients are the weights of the corresponding parcels. The solu- tion to this integer programming formulation will be the parcels of the sites, represented by integer points in the feasible space, that minimizes or maximizes the objective function. 3 . 1 An All-Integer Formulation 3.1.1 Formulation of the Initial Tableau It was shown in section 2.2 that a directed tree is defined by the following properties: (1) the directed graph has k nodes and k-1 links; (2) no more than one link is directed toward any node; (3) no directed circuits are formed. The linear space of all possible directed trees will be established by form- ing constraint equations that mirror the above properties. In order to establish the constraint equations, integer programming "activity" variables are attached to the directed graph of a parcel system. Figure 8 shows a portion of a directed linear graph and its associated activity variables. For each node i (representing parcel i), i=l,2,...,n, where n is the number of parcels or nodes, let N. be the activity of including 16 j /a . , w . . N . , U . J J 3 3 Figure 8. The Integer Programming Activity Variables. IT node i in a feasible tree subgraph. Let L. . be the activity of including the link directed from node i to node j in a feasible tree subgraph. Also, let U. be a utility variable for node i. Let, N. = 1, if node i is in the solution tree 0, otherwise 11, if the link from i to j is in the solution tree ij I 0, otherwise and U.= a nonnegative integer All integer programming variables are implicitly nonnegative. Each node i also has a fixed positive weight w. and area a.. .r & 1 1 The requirement that for k nodes there can only be k-1 links or, equivalently, that there must be one less link than the number of nodes is satisfied by n EN.- E L. . = 1 (1) i=l all i,j s.t. L. . in graph -'•J The second requirement that no more than one arc can be oriented toward any node is satisfied by I L <_ 1, k=l,2,...,n (2) all i s.t. L in graph Thirdly, the requirement that there exist no directed circuits is fulfilled by U.- U.+ nL. . < n-1, for all L. , in the graph. (3) i J ij - ij 18 This set of equations can be shown to eliminate all subgraphs with directed circuits while not eliminating any feasible directed tree subgraphs. It has been used in the past as part of an integer programming formulation of the traveling salesmen problem [12], To show that all directed circuits are eliminated, consider any directed circuit possible through k nodes. This requires that L. .= 1 for k of the links. The k associated con- straints are: (0) U. - U. + nL. . < n-1; (1) U. - U. + nL. . < n-1; (k-2) U. - U. + nL. . <_ n-1; X k-2 X k-1 1 k-2' 1 k-l " (k-1) U. - U. + nL. . £ n-1. \-l X ^-l^O " It is well known that for any solution to be feasible, it must also satisfy the constraint formed by the addition of any other constraints in the model. Therefore, the circuit formed by the k links must also satisfy k-1 Z (U. - U. + nL. . <_ n-1) j=0 j j+1 mod k j ' j+1 mod k k-1 k-1 => Z (U. - U. + nL. . ) <_ Z (n-1) j=0 X j 2 j+l mod k x j ^j+l mod k j=0 k-1 k-1 k-1 => Z (U. - U. ) + Z nL. . I s (n-1) j=0 X j X j+1 mod k j=0 X j ,X j+l mod k " j=0 Since both U and -U. for j=0,l,2, . . . ,k-l appears in the leftmost summa- tion above, we have 19 k-l I (u. - U. ) = 0. j=l j j+1 mod k Also, since L. =1 for j=0,l, . . . ,k-l, the above inequality becomes j ' j+1 mod k k-l k-l Z n <_ I (n-l) j = " j=0 => kn <_ k ( n-l ) However, this is a contradiction. Thus, any directed circuit must be excluded, To show that no solution tree is eliminated by constraint set (3), it must be shown that there exist values for the U. 's that satisfy (3) for any given solution tree. Consider a solution tree which includes k nodes and k-l links. The root of the tree is defined to be position 1 and each node is numbered consecutively from left to right, one tree level at a time, and with the lowest levels first. Figure 9 displays this numbering scheme. Let t = p, the p position in the tree for p=l,2,...,k ir and t = p, arbitrarily represent the n-k nodes not in the solution tree where p=k+l , k+2 , . . . , n . Clearly, there exists a 1-1 correspondence between the t 's and the N.'s. Also, there exists a 1-1 correspondence between the N.'s and U. 's by def- inition of the activity variables. Let U.= p where U.<-> N.<-> t =p, i ,p=l,2, . . . ,n. i r i i p The symbol "<->" denotes correspondence. To show that the above is a feasible set of values for the U. 's, suppose L o is a link in the given solution tree. Thus, 20 LEVEL LEVEL 2 LEVEL 3 LEVEL 4 Figure 9- A Node Numbering Scheme for Solution Trees 21 and L = 1 rs N = N = 1. r s From above ve know for some fixed integers a and b "between 1 and k that W <_> u <-> t and N <-> U <-> t. r r a s s b which implies by definition that U = a and U = b . r s By construction of the tree positions t and t, we have a b b>a or U > U . s r Thus, the constraint which includes L , rs ' U - U + nL < n-1, r s rs — is satisfied since U > U and L = 1. Now suppose L is a link that is not s r rs rs in the given solution tree. Thus, L = rs causing the constraint from (3) which includes L to become rs U - U < n-1 r s — which is satisfied because U < n and U > 1. r — s — The previous constraint sets (l), (2), and (3) are not sufficient to define the model. Two more sets of equations must be added. First, the N. and L. . variables must be constrained to or 1. Equation (2) implies -*- J that all the L. 's are less than 1, however, the following must be added ij to restrict the N.'s. l N. < 1, i=l,2,...,n (10 Second, the L. . and N. variables must be forced to interact. The following equations can be shown, by setting up the exhaustive table of possible out- comes, to force both N.= 1 and N.= 1 when L. .= 1 or L..= 1. In addition, L = L = 1 is a directed circuit which can be eliminated as necessary to ij ji formulate equation set (5). Table 1 displays the allowed proper combinations of values for N. , N., L. ., and L.. which is satisfied by i J ij Ji -2L. . -2L.. + N. + N. > 0, for all L.., L.. pairs in the graph. (5) ij Ji i J - iJ Ji Equations (l) through (5) insure that the optimal solution will be a directed tree. However, additional constraints are required so that the directed tree will represent a proper area, path, or point. For instance, the size of an area must be defined before an optimal area can be located. Recall that each node i has an associated area a. . The constraints on the total area required of the contiguous parcels are, n A„ < Z a.K. < A , (6a) I — . , l l — u 1=1 where A is an upper bound, and A„ is a lower bound. u i A path site location tableau is created by adding constraints to sets (l) through (5) that specify the end-points of the path and that force the solution tree to be a path. The end-points can be specified by setting their respective node variables equal to one. By choosing one end-point to be the root of the tree (path) and setting the sum of the links which are oriented away from the root equal to one, we will necessarily force a path between the end-points when minimizing. It should be observed that this summation constraint will cause the root to be forced into the solution since one of the links directed from it will be in the solution. This is guaran- teed by equation set (5). Thus, setting the node variable for the root equal 23 L. . L.. N. l N. J -2L. .-2L..+ N.+ N. Allowed Yes 1 1 Yes 1 1 Yes 1 1 2 Yes 1 -2 No 1 1 -1 No 1 1 -1 No 1 1 1 Yes 1 -2 No 1 1 -1 No 1 1 -1 No 1 1 1 Yes 1 1 ■ -u No 1 1 1 -3 No 1 1 1 -3 No 1 1 1 1 -2 No Tabl e 1. Allowed Outcomes of N., N , , L . , and L . 1 J •*- J J x 2k to one is not necessary. Therefore, only the following constraints must be added to equations (l) through (5) to locate a path between nodes N. and N.. J I L = 1 all k s.t. X L., in graph lk and ( 6b ) N.= 1 J Notice that constraints for path location only work when a minimum weighted path is sought. Maximizing the objective with constraints (l) through (5) and (6b) would encompass every parcel because each parcels' weight in the region would add to the value of the site and there may be no restriction on the total area or the maximum number of parcels in the path. In order to convert from maximization to minimization, the weights w. must be com- plemented by making the largest weights smallest and the smallest weights largest. This can be done by finding ¥ such that W = max {w. , i=l,2, . . . ,n}. The complementary weight, w.', can be constructed for each parcel by w! = W - w. +1, i=l,2, . . . ,n. l l ' In order to locate a single point , the simple constraint n I N.= 1 (6c) i=l x could be added to equations (l) through (5). However, equation (6c) alone would be sufficient to specify the integer programming formulation since adjacency relationships play no role in point location. To conclude the model, the objective function necessary to find the minimum or maximum weighted site is 25 n I v.N. ( T) i=l where the optimal site is formed by the set of parcels {i| N.= 1} . 3.1.2 A Canonical Formulation A canonical formulation of an integer programming problem is -> ->- T minimize c x subject to the constraints: Ax < b x _> ft x e Z where A is an m x n matrix, ceR,beR,Ris the set of all reals, and Z is the set of all integers [ik] . If an integer programming problem is not given in the above form, it can be transformed using the following rules: (1) Replace all equations by the two inequalities <_ and >_; (2) Multiply inequalities of the form >_ by -1; (3) Multiply the objective function by -1 when maximizing. Table 2 displays the canonical formulation for the site location problem. An example will be shown in the next section which shows how the constraints are formulated in practice. Formulas for the number of variables and con- straints required to formulate an area location problem in a p x p rectangu- lar parcel configuration are: 2 number of variables = 6p - i+p and 2 number of constraints = 8p - 6p + k . OBJECTIVE FUNCTION: n MINIMIZE I w.N. i=l SUBJECT TO THE CONSTRAINTS: FOR DIRECTED TREES (1) 2 N. - Z L < 1; i=l X all i,j s.t. 3 L. . in graph n I L . . - I N . <_ -1 all i,J s.t. 1J i=l L . . in graph (2) z L ±k < 1, k=l,2 n all i s.t. L in graph 26 (3) U.-U+nL.. < n-1, for all L. . in the graph (10 N. < 1, i=l,2,...,n (5) 2L..+2L..-N. -N. <0, for all L.., L.. pairs in the graph l.i .11 i .1 — iJ Ji Table 2. A Canonical Formulation of the Site Location Problem, 27 FOR AN AREA (6a) S a.N. < A ; 1 1 — u 1=1 n 1=1 FOR A PATH FROM N. TO I. i J (6b) E L ik- 1; all k s , t . L ik in graph all k s . t . L ik in graph N. «l; - Hj < -1 FOR A POINT n (6c) I N. < 1; i=l X n I (-N. ) < 1 i=l X ~ Table 2 (continued) 28 The sparceness of the initial tableau is defined as the number of nonzero coefficients divided by the total number of coefficients and is estimated by 2 37P - 32p _ n , -2s sparceness = - — * 5 — ' - 0(.p J. (6? - kv)(8v - 6p + k) 3.1.3 A Note on Additional Constraints In the definition of an optimal site given in section 2.3, it was stated that all requirements set forth site must be met in addition to the area, path, or point constraints. Requirements can be handled within the integer programming framework without any additional analysis if they can be formulated as constraints to be added to the initial tableau of constraints (l) through (6). For example, a particular application might require the optimal site to be located where the total population of the parcels must be less than or equal to P. Let p. be the population of parcel i. The con- straint is written by n Z p.N. < P. i=l X X " 3.1.1* An Example Consider the weighted parcel configuration shown in Figure 10. The coordinate triple that describes each parcel is comprised of the parcel number, area, and weight. Let the example problem be the location of the minimum weighted area such that the total size of the site is between k and 6 units. Part of the integer programming initial tableau will be set up in terms of equations (l) through (7) of section 3.1.2. Other rows of the tableau are required by Gomory's cutting plane algorithm which was used in this thesis for solving all-integer programming problems [12, lU]. The term ° .,, J *h P 4 6 5 1 '//. 9 V//A ''/////A Q 1 1 r PARCEL NO. AREA WEIGHT 1 2 4 2 2 2 3 1 1 4 2 2 5 3 5 6 2 5 7 1 2 8 1 3 9 1 2 10 2 3 Figure 10. The Example Problem's Parcel and Weighting Configuration 30 "all-integer programming" refers to problems in which all the coefficients in the initial tableau as well as the feasible values of the activity vari- ables are integers. The ALGOL code of Gomory's algorithm expects the initial tableau to be of the following form [15]: (1) An integer matrix A = [a. .] of m+1 rows numbered to m and n columns numbered 1 to n. (2) The elements of row i, i=l,2,. .., m-n+1 , represent the constraint a. n x n + a. ^x„ + ... + a. n 0, i=l,2,..., n-1, l — i — ' ' ' ' ' which are not implied by Gomory's algorithm. (7) The algorithm will terminate if all entries in the last column, except the topmost, are non-negative. The optimal solution is given by x.= a., ,_ , i=l,2, . . . ,n-l. l i+m-n+l,n 31 (8) All the tableau columns, except the last, must he lexicogra- phically positive. This means that the first nonzero element in these columns must he positive. The program which generates initial tableaus and includes the Gomory integer programming algorithm is given in Appendix A. In order to generate the initial tableau, a tabular description of the directed linear graph model of the parcel configuration must be provided. Each link is assigned an identifying number in the table. Figure 11 displays the linear graph for the example problem. Table 3 shows the tabular description of the linear graph model. Each line of the table is converted to a card image for input to the program. The Table is converted by the program into a two- dimensional array ADJ where [identification number of the link from node I to J, if I ADJ[l,J] =\is adjacent to J jO, otherwise Constraints (rows of matrix A) are generated by procedures that refer to array ADJ. Each procedure corresponds to one of the equation sets (1) through (T). Figure 12 displays a listing of the initial tableau and final solution for the example problem. Figure 13 shows how the tableau is divided into equation types. Note that the node variables are represented by the first 10 columns. The link variables are located in columns numbered by adding 10 (the number of nodes) to the link number given in array ADJ. Fi- nally, the utility variables correspond (by column number) to the corres- ponding node variables by adding 36 (the number of links and nodes) to the node number . Row 38 represents constraint 32 "^ 8 figure 11. The Linear Graph Model of the Example Problem. 33 node i i adjacent node j link i to j adjacent node j link i to j ] adjacent node j link i to j adjacent node j link i to j 1 2 3 k 5 6 7 8 9 10 2 1 2 3 3 5 7 6 1 1 3 5 8 11 15 18 20 23 25 10 3 k 5 1+ 5 8 9 8 8 2 k 6 9 12 16 19 21 2k 26 5 6 6 9 10 7 10 13 17 22 7 lU Table 3- A Tabular Description of the Linear Graph in Figure 11. 3h ? ? 3 J 5 6? 6 S J 2 3 • S • 7 H 1 ? » « ? » » • ♦ 1 2 J • 9 » T I 5 1 2 3 « 5 6 T « 2 1 2 5 5 2 3 2 3 fl D ri c 1) 1 2 2 1 2 3 2 1 ! 1 2 p n e 6 p A 2 -2' ?■ i> 2' 3-2i 1-1-1-2 n (i 0>a 3 -1-1-1-1-1-1-1. .1-1-1 1 1 1 1 1 1 t 1 1 I 1 1 1 1 1 1 s 1 1 i 1 1 i 1 1 ! p A 0.1 a 1 1 1 1 1 1 1 1 1 l-l-l-l-l-l-l-t-l-l-l-l-f .1-1-1-1. 1-1. 1-1- 1-1-1-1. 1-1 1 5 •!• 1 D 1 2 fl 1/ p c R c 6 -1 n 0-1 2 n l) I V r o-i« 1 p I) 2 2 n e g p s (1 o 0' 1' ! p p 2 I p e 9 0" 1 0< 1 2 2 n & IP 0- l« '1 P 3 z n c< 1 1 0- 1 0-1 & ? (J n 2 CI tl p A 1? 0-1-1 n p n p t 2 o o n 11 0« 1 D< 1 & p a u n 2 fi t f) e & e U 0-1 0-1 p 2 a 2 Q 11 0- 1. 1 n a n 2 2 fi U n n. 1-1 R p p & R 1} p R ? % a IT n 0.1 0-1 p fi 11 a 2 2 P 1A 1 R r, 1 19 1 (1 p p p 1 2p n 1 p p r p c 1 2) 1 p fi fl p 1 2? I n R o 1 2? 1 R p p p ft tl fl fl p i) 1 24 1 p f' p O 1 25 p 1 p Ci p ft R A A p 1 <6 1 p ft p fl A o o n o i 27 1 p '0 1 2ft 1 p ft R 1 1 29 R a 1 1 p ft R A o o i Jp n ! 1 1 ft i) R p P 1 ■M n p Ci 1 1 ft 1 a fl 1 3? n 1 1 ft 1 1 R p u 1 33 p 1 fi ! p R p X A 1 3a n ft 1 p J P A 1 3» R p 1 1 1 1 36 p p & ft 1 R 1 1 tr 11 n 1 1} r. ft 5 R s a 1 3p n p R I 1 1 1 1 1 1 1 1 lis 39 c fi A 010 p ft R R p fl A 1-1 A A 9 «0 oto p p ft p O 1 A 0-1 9 «l n p 010 R p -1 p A Q A 0-1 1 A 9 "2 n 010 n p ft p p n 1-1 O 9 u3 010 ft I) 0-1 1 9 44 010 p n R p n o s • 1 9 15 010 p p ft p p I 0.1 9 4ft p 010 (1 ft p R n 0-1 1 9 ^ o a p c c 010 ft p R fl p P p p 1-1 9 4ft n A .) 010 f, e o o 1 0-1 9 49 c p 010 (i ft R p p p c 0-1 1 9 5p o p G 010 ft fl A •1 1 9 *1 D R 01 n © 1 1 9 55 R n (1 a a b •n 010 1 a "10 9 56 n ■j ft ft 01R R is p ■1 1 A 9 ">T £» p nio p •J 1 ■1 9 in 11 n 3 D fl 010 t) ■! 1 fl 9 59 f) fl ft 6 010 n s •10 9 60 fi a A A 010 A a ■j 1 0-1 9 61 p n p CI ft A 010 D a 0-1 (1 1 9 62 fl n a 9 A a 010 A • 1 1 9 63 n ft A a Ci 010 D ■1 1 9 6a D a a CI ft o e 010 • 1 1 9 Figure 12. The Initial Tableau and Final Solution of the Example Problem. 35 0000000polltll»llll222»222222333333333344444444 )2)l1tfhtl2inirMMMMiMH|l)MMMOtnMtr .1 ft ft e 6 0-1 8 ft c> e e e 0-» ft 0-1 ft e ft a 0-1 ft ft ft .1 ft e ft 0- 0-1 e ft ft 0.1 ft e n 0-1 ft e ft ft 0-1 ft ft e ft OM ft ft 0»1 ft n 0.1 ft ft 6 0-1 ft ft ft o.l ft ft ft ft 0' ■1 ft ft 81 0-1 ft ft ft 82 0-1 ft ft ft ft 83 ft 0-1 ft ft ft ft 84 0-1 ft ft 85 0-1 ft ft ft 8A 0«1 ft n ft ft 87 0-1 ft ft fa* ft ft ■ t ft ft ft ft en ft n ft 0-1 ft '0 ft 0.1 »1 n ft 0*1 ft ft ft ft 0-1 ft ft ft ft 0., ft ft ft ft 0" ■1 n ft n ft ft ft 0-1 ft ft ft ft ft 0-1 ft ft 0-1 ft ft ft ft 0-1 ft ft ft ft 0-1 100 ft ft ft n ft ft" •1 n 101 ft ft ft ft ft ft ft ft 0-1 102 ft ft ft n 0-1 103 ft ft ft ft r\ ft ft ft ft 0-1 n 104 ft ft ft ft ft ft ft n 0-1 10? ft ft n 0-1 1 ,0* ft ft ft ft n 0-1 lor ft ft n ft o. ■1 10* n n n ft ft ft 1 n n ft ft 0-1 n !0» ft ft ft ft ft ft 0-1 llo ft a 1 ft n 0-1 SOLUTION NODES ME, NOOC 2 Nonr s NODE 4 SUM OF WEIGHTS. 5 PH0CES50" TIME IN SECOND* 5 I/O TIMf IN seconox NUMBER OF PIvOTS ;2 Figure 12 (continued) NODE VARIABLES LINK VARIABLES RIGHT UTILITY HAND VARIABLES SIDE 12 10 1 II 12 36 1 37 38 46 47 OBJECTIVE JUNCTION (EQU. SET (7)) i i 1 2 SIZE OF AREA SITE (EQU. SET (6)) i 3 4 ONE MORE NODE THAN LINK (EQU.j SET (1)) 5 6 ! NODE-LINK INTERACTION (EQU. SET (5)) 17 I I i i 18 19 i i I i NODE VARIABLES EQUAL 0,1 (EQU. SET (4)) I i 27 i i i i 28 29 ! ; DIRECTED TREES (EQU. SET (2)) ' i 1 37 ! 38 I i ............ ..... UTILITY COLUMNS LEXICOGRAPHIC POSITIVE . 1 1 39 40 1 i NO DIRECTED CIRCUITS (EQU. SET (3)) 1 1 64 1 i i i 65 66 1 ' 1 ALL VARIABLES NONNEGATIVE i no ! ! Figure 13. The Equation Set Structure of the Example Initial Tableau. 37 n C +1 ) I U. < , n = the number of nodes, i=l which is incorporated to meet the requirement that the initial tableau be lexicographically positive. Recall that the proof of equation set (3) in section 3-1.1 showed that it was sufficient to let each utility variable be assigned a different integer in order for the constraints to fulfill the function of restricting all directed circuits. The above constraint allows each of the n utility variables be assigned a different integer from 1 to n. This results in the summation of l+2+...+n = as an upper bound on the summation of the utility variables. 3.1.5 Computational Experience Computational tests were run on small uniform grid configurations in order to demonstrate the correctness of the integer programming formula- tion as well as to determine the computational efficiency of the approach. A published ALGOL code for Gomory's cutting plane algorithm was used to test the formulation [15]. Testing was performed on a Burroughs B67OO [l6]. Al- though the code is a very inefficient implementation of Gomory's method tak- ing no advantage of the special structures found in the initial tableau, it does provide insite into computational characteristics of the model. Weights were arbitrarily chosen for several p x p uniform rectangu- lar grid parcel configurations. Figure lU shows the average results of sev- eral problems of varying size. The computational time is seen to be directly proportion to both the size of entire region as well as the size of the site within the region. It was also noted that the times were larger for problems in which several alternative optimal solutions existed for a site. Other users of integer programming have reported that the ordering of constraints in the initial tableau has an effect on processing time. This 36 3 4 5 6 7 8 SITE SIZE (number of parcels) Figure 1*4. The Average Processing Times of Several p x p Problems 39 was explored with very favorable results — as much as an order of magnitude reduction occurred. The constraint order shown in the example tableau of figure 13 was found to be best for all test problems . Extensions to the code for Gomory's method have been made to incorporate the potentially stronger cuts derived by Wilson [17]. However, tests using the extended code showed no appreciable gains or losses for any of the test problems . It has long been known that Gomory's algorithm for solving integer programming formulations has demonstrated excessive computational times. Unfortunately, the model developed in this thesis is no exception. It is easy to see that large scale problems of hundreds of parcels would generate problems of thousands of variables and constraints. However, the spareness of the tableau, the 0-1 values of most of the variables, and the parallelism of programming algorithms indicate areas for future development of the inte- ger programming approach for the site location problem. 3.2 A Zero-One Formulation It is well known that any arbitrary integer programming formulation can be converted to a zero-one formulation by the appropriate addition of zero-one variables for each nonzero-one variable [12]. The number of new variables added can be controlled if knowledge can be obtained about the upper bounds for nonzero-one variables which will still permit all required feasible solutions. The purpose for reformulating the site location problem from an all-integer to a zero-one problem is to examine the computational differences between the two major integer programming solution techniques. A cutting plane algorithm was explored for the all-integer formulation. In this section an implicit enumeration algorithm for solving zero-one formula- tions will be examined. 3.2.1 Formulation of the Initial Tableau Only a few changes have to be made to equation sets (l) through (7) of section 3.1.1 in order to convert to the zero-one framework. First, equation set (k) can be omitted since the zero-one formulation implies that all the activity variables must be zero-one. All that remains is to convert the utility activity variables U. 's into expressions of zero-one variables. To illustrate how the transformation is made, suppose U. has an upper bound of B. Then whenever U. appears in the formulation it is substituted by the equivalent binary representation U.= 1 U. + 2 U. + h U. +...+ 2 h ~ 1 U. X l X 2 X 3 \ where U. is zero-one and h is such that 2 -1 > B. 1 . J It is important to find a small upper bound B so that the number of variables added to the formulation is minimized. This is accomplished by returning to the section 3.1.1 to study the arguments which established equation set (3), U - U + nL <_ n-1, for all L. . in the graph. It was shown that an upper bound on the U. 's can be determined by numbering the nodes of a solution tree. A smaller upper bound can also be determined by the same arguments. Consider any solution tree. The root of the tree is defined to be position 1 and each node is given the position number ac- cording to its height or level from the root. Figure 15 displays this numbering scheme. Many nodes will have the same position number which was not the case in section 3.1.1. All nodes not in the solution tree are given the position number zero. By following the exact arguments of equation set (3) it can be seen that the maximum position number which represents the Ill LEVEL LEVEL 2 LEVEL 3 LEVEL 4 Figure 15. Another Node Numbering Scheme for Solution Trees k2 maximum solution tree height is an upper bound for each U. . This is true whenever the tree height is less than n, the total number of nodes in the region, which is certainly a safe assumption. It is important to note that the maximum tree height depends on the size (number of parcels) of the site, the size of the geographic region, and the particular parcel configuration of the region. For example, in a 6x6 rectangular grid parcel configuration the maximum tree height B for a site of maximum size of p parcels is given by B = minimum (|p/2J, 12) where f means the integer not less than f . This would be an area site whose parcels took the shape of a coiled path with the root of the tree at the center of the site. For most practical problems you can reduce B. In- deed, restriction of the tree height to be less than the maximum required could be used as a device to control such pathologically shaped optimal sites. Table k shows the canonical zero-one formulation of the site location problem. Formulas for the number of variables and constraints re- quired to formulate a zero-one area location problem in an p x p rectangular parcel configuration are: number of variables = (5+h)p - Up and 2 number of constraints = 7p - 6p + 1+. The sparceness is estimated by sparceness = ( ^h)p 2 - (2U+8h)p m 0(hp - 2)< ((5+h)p 2 - Up)(Tp 2 - 6p+4) where h is the number of binary digits required for each utility variable U. to be expressed in binary form. OBJECTIVE FUNCTION: n MINIMIZE Z w. N. 1=1 X X SUBJECT TO THE CONSTRAINTS: FOR DIRECTED TREES (1) Z N.- Z L < 1; i=l all i,j s.t. L in graph n Z L. .- Z N. <_ - 1 all 1J s.t. 1J i=l X ' L. . in graph (2) Z L. k <_ 1, k=l,2 r ...,n all i s.t. L ik in graph (3) (1U. + 2U +...+ 2 h X U. ) - (1U. + 2U. +...+ 2 h 1 U. ) + nL. . <_ n-1 , X l X 2 X h J l J 2 J h 1J for all L. . in the graph. ij 5 (h) 2L. .+ 2L J .- N.- N. < 0, for all L.., L J . pairs in the graph, ij ji i J - ij Ji See Table 2 for additional constraints for forming an area, path, or point tableau. Table k. A Canonical Zero-One Formulation of the Site Location Problem. kk 3.2.2 Computational Experience Computational tests were run on small uniform grid configurations analogous to the testing procedure for the all-integer formulation. A pub- lished FORTRAN IV code, based on an extension of the implicit enumeration methods developed by Balas and Geofferion, was used to test the zero-one formulation [l8]. Testing was conducted on an IBM System 360/75. Weights were arbitrarily chosen for several p x p uniform rectangular grid configura- tions. Figure 16 shows the average results of several problems of varying size. Just as in the all-integer formulation, the computational time is seen to be directly proportional to both the size of the entire region as well as the size of the site within the region. Although the execution of ALGOL on the B67OO and FORTRAN on the 360/75 are difficult to compare, it can be seen by reviewing figure Ik that the execution times are within the same order of magnitude. Several schemes were provided by the zero-one code for assigning the value of a free variable. A detailed discussion of these schemes can be found in [18]. Each scheme had a profound effect on the execution times — sometimes by two orders of magnitude — with "scheme two" consistently pro- viding the best results. Schemes that take advantage of the site location problem's specific structure may provide future efficient algorithms. As indicated by the graph in figure l6, the computational times explode as the size of the problem expands. Results of tests on a 6 x 6 configuration are given in table 5 to show this condition. Note that the location of an optimal area of size 5 took 182 seconds while an optimal area of size 10 was not found even after 75*+2 seconds had elapsed. It is interesting to observe that implicit enumeration algorithms will determine an optimal solution before it can indicate it is optimal. 2 3 4 5 6 7 8 SITE SIZE (number of parcels) Figure 16. The Average Processing Times of Several Zero-One p x p Problems k6 1 Time (sec) at which at which a best at which total Area elapsed optimal solution feasible equal to a best no. of (parcels) was found optimal was found feasible was found iterations 1 3 3 1 1 73 2 12 12 10 10 311 3 15 15 13 13 383 k 6k 6k kl ^7 1597 5 182 182 155 155 599>+ 10 75^2 - - 2U78 300000 15 1895 - - - 75000 20 1789 - - - 75000 Table 5« Zero-One Test Results on a 6 x 6 Parcel Configuration. hi Also suboptimal feasible solutions can "be indicated as the algorithm pro- ceeds. Perhaps these early results can be explored in the future as a heuristic solution to the site location problem. 3.3 A Zero-One Multiple Site Formulation The initial tableau for the multiple site problem described in section 2.H is constructed by concatenating several single site tableaus. The interactions between each site are expressed within the objective function. Consider the following integer activity variables and coefficients For each node i, i=l,2,...,n, and site s, s=l,2,...,m let s fl, if node i is used for site s i JO, otherwise fl, if the link directed from node i to node j for site s L. . = / is in the solution tree for site s J 10, otherwise h -1 U S = 1 U S + 2 U. + . . . + 2 S U. \ X 2 \ s = the binary representation of the utility variable for node i h used for site s where h is such that 2 s -l > B , the tree s — s height for site s U? = 0, 1 as determined by an integer programming algorithm , \ a. = area of parcel i w? = weight (greater than zero) of using parcel i for site s d. = distance from parcel i to parcel j w = weight of using parcel i for site s and parcel j for site t h8 The weight w . could he determined hy a function of the distance d. . and/or stij 1J a function of the direction with which parcel j is situated in relation to parcel i. A = lower bound on the area for site s if site s is an area site A/ S A = upper bound on the area for site s if site s is an area site A canonical formulation for the multiple site location problem is given in table 6. Note that the objective function is quadradic . This condition can be eliminated by the following well known transformation. If x, y, and z are zero-one variables then z = xy if and only if x+y ^_ 2z and x+y <_ z+1. Therefore, by letting Y + ..= n s n 1 : , stij 1 j where Y . . . is a zero-one variable, and adding the two constraints stij -W S - N* + 2Y ^ . . < l j stij — and ( 6 ) N?" + H* - Y . . . < 1 1 j stij — to the tableau of table 6 for each Y J . . , the multiple site problem will be stij' converted to a conventional zero-one integer programming problem. In its current state, the formulation permits two or more sites to partially overlap or occupy the same parcels. This might be desirable for certain applications. If necessary, it can be avoided by the addition of the following set of constraints. m s Z N < 1 , i=l,...,n (7) s=l Each inequality allows a specific parcel to be used by at most one site. OBJECTIVE FUNCTION: SUBJECT TO THE CONSTRAINTS: ^9 m n s "W. 1 N S 1 m m n n J MINIMIZE Z s=l Z s=l + Z s=l Z t=l Z i=l Z StlJ N S l FOR DIRECTED TREES n (1) Z N B - Z L S . <_ 1; i=l X all i,J S.t. 1J L? . in graph Z LT. - Z N. <-l , for each site s=l,2,...,m all i,j s.t. J i=l L? . in graph (2) Z ^k- 1 ' k==1 > 2 >-"> n > s=l,2,...,m all i s.t. L? n in graph lk h -1 h -1 (3) (1U S + ... + 2 S U S ) - (1U S + ... + 2 S U S ) + nL S . : n-1 , s s g for all L. . in the graph, s=l,2,...,m ■*• J (U) 2 L S + 2 L* - N S - N S < 0, ij ji l j - ' s s for all L.., L pairs in the graph, s=l,2,...,m Table 6. A Canonical Zero-One Formulation of the Multiple Site Problem, 50 FOR AN AREA FOR SITE s n (5a) I a.N S < A S ; i i — u ' i=l n S (-a.)N S < -A S i-1 X X ~ I FOR A PATH FROM N? l to n! FOR SITE s (5b) I (L ik' i x ; all k s.t. lk in graph all k s.t. <- L L> i - 1 • lk in graph N S J < 1J -»a 1 -1 FOR A POINT FOR SITE s n (5c) I N S <_1; i=l 1 n Z (-N S ) < -1 i=l X Table 6 (continued) 51 Formulas follow for the number of variables and constraints re- quired to construct a linear zero-one multiple site location in a p x p rectangular parcel configuration. The formulas are based on a model for multiple nonoverlapping area sites. This includes the equation sets (l) through (5a) of table 6 and equation sets (6) and (7) above. 2 h 2 2 number of variables = m((5 + h)p - Up) + (p - P ) (m - m) = (m - m)p + (6m + mh - m )p - (^m)p 2 h 2 2 2 number of constraints = m(7p - 6p + k) + 2(p - p )(m - m) + p = (2m - 2m)p + (9m - 2m 2 + l)p 2 - (6m)p + km where m is the number of sites and h=h , s=l,2, . . . ,m. s The formulas do not include those variables and constraints for Y , . . where stij W . . .- when s=t or i=j . stij It is interesting to note that if: (1) only point sites are to be located which eliminates the need for equation sets (l) through (U); (2) the number of points to be located is n which is equal to the number parcels in the region; (3) no overlap is permitted (one point is to be assigned to each parcel in the region); (U) the integer and zero-one requirements for variables are dropped then the model for multiple site location becomes identical to the quadratic assignment problem: nn nnnn st minimize Z Z w S K S + I l I Z w N N. s=l 1=1 s=l t=l 1=1 j-1 52 n subject to: E N S = 1 , s=l,2, . . . ,n 1=1 X n Z N S = 1, 1=1,2,. . .,n s=l X This mathematical programming problem "was first formulated by Koopmans and Beckman for the determination of optimal plant location assignments where costs of transportation flows were to be considered [19] • It is also being studied by Ray as part of an urban activity assignment model [20]. The ad- vantages of the model presented in this thesis over the quadratic assignment model are that : (1) areas, paths, and points can be considered simultaneously; (2) high resolution planning is allowed because more than one parcel can form a site; (3) structure of sites are very general due to the linear graph definition of sites; (k) the problem can be reduced from quadratic to linear form because of the zero-one formulation. Computational tests were not run on the multiple site problem due to its excessive size compared with the single site formulations. Indeed, it is apparent from the results on single site problems that the algorithms used in this thesis are totally impractical. Suggestions for future research into finding acceptable solutions to the site location problem are presented in the next section. 3.*+ Suggestions for Future Research Four possible categories of future research into the development of economic site location algorithms are: 53 (1) zero-one algorithms taylored to the specific structure of the site location problem; (2) heuristic solutions to the integer programming formulation; (3) other heuristic techniques; (U) fourth generation parallel processors. Section 3.2.2 discussed the computational effect of different schemes for assigning values to free variables in implicit enumeration al- gorithms. The suggestion was to explore schemes that take advantage of the particular formulation presented in this thesis. Because of the extensive size of the problems formulated in this thesis, it appears that suboptimal approaches to the integer programming formulation would hold the most promise in the immediate future. At the least it is possible to accept the best feasible solution produced at a specific cut-off time by an implicit enumeration algorithm. Techniques other than integer programming can be explored. A simple heuristic algorithm is presented in the next chapter for area loca- tions. The algorithm treats geographic parcels and their weights as a 3-dimensional topography and seeks the valleys formed by low-weighted par- cels as possible suboptimal areas. Critical path algorithms could be used in the case of path locations. This can be done by shifting the weights from nodes to links in the directed linear graph model of a parcel system. The weight of each link oriented into a node would be the weight of that node . All the possibilities that have been explored or suggested so far have an inherent parallel nature which can be exploited by parallel proces- sors such as the ILLIAC IV. Chen studied an ILLIAC IV version of the 5h implicit enumeration algorithm used in section 3.2.2 [21]. It was shown that ILLIAC IV can solve zero-one problems with a speed-up of Ik times that of serial computers which does not take into consideration the additional speed of the ILLIAC logic circuits. The tests for the zero-one formulation were run on a 360/75 which can execute approximately one million instructions per second (l-mip). An ILLIAC IV processing element has been estimated to execute 3-mips . Therefore, we could expect a speed-up of approximately k2 times when solving site location problems on ILLIAC IV. Chen also proposes a special purpose processor for solving zero-one formulations which further reduces computational times. 55 CHAPTER k LANGUAGE CONSTRUCTS FOR EXPRESSING PARCEL WEIGHTS Most users of geographic based information are not computer scientists. For this reason generalized geographic information systems have been developed which provide users with simple but powerful problem oriented languages in order to retrieve, analyze, and display spatial data. Since these users possess the knowledge required to meaningfully weight parcels for site location problems, it is important to explore those language constructs which allow them to most readily create and use parcel weights. This chapter describes the language extensions made to the geo- graphic information system NARIS (Natural Resource Information System) to provide non-programmers with a capability to create weighting expressions. Weighting expressions in their simplest form are analogous to PL/l or ALGOL arithmetic expressions except that identifiers are replaced by a limited set of data element names occurring in the geographic data base. In order to test weighting expression constructs for locating optimal sites, a small interactive system was developed employing a sub- optimal site location heuristic. This system will be discussed and demon- strated with actual data processed by NARIS weighting expressions. k.l An Introduction to NARIS NARIS is a computerized geographic information system which was developed at the Center for Advanced Computation of the University of Illinois at Urbana-Champaign in cooperation with both the Northeast Illinois Natural Resource Service Center and the Northeastern Illinois Planning Commission under a Ford Foundation grant [8,22]. NARIS is designed to 56 provide inexpensive, easy to use, interactive information retrieval capabil- ;ies to agencies and individuals in need of geographically locatable data. l brief description of the system follows in terms of its principle data structures and the major conversational language components provided to users, A complete syntax of the language can be found in Appendix C. Currently, each parcel in the system geographically corresponds to the legal land description of the Public Land Survey and is one quarter- quarter section of land {kO acres). The Public Land Survey was intended to produce a uniform grid parcel configuration. However, a small percentage of parcels are oddly shaped or missing due to survey errors (c.f. figure l). The resulting configuration must necessarily be handled by generalized parcel techniques . Figure 17 displays the WARIS data base structure. The primary units of data are called data elements which are names for the actual data entries in the data base. All data elements are aggregated into data class- es. In the figure, "forestry" is a data class with data elements "type", "acres", and "density". Data element values may either be numerical quanti- ties or character codes. In the forestry example, values for forestry type are the character codes "pine", "oak", etc. The values for forestry acres are numerical quantities ranging from "00. l" to "1+0.0". In the event that the value of an element is not recorded, a special "missing data" value is stored. A single class entry in the data base is called an occurrence. An occurrence has one set of data values for each data element within the data s. For example, an occurrence of forestry data would be the data element alues describing a single homogeneous stand of forestry. The stand might REGION PARCEL PARCEL 2 FORESTRY SOIL CLASSm-I CLASS m REGION T DATA f I BASE ( PARCEL N TYPE ACRES DENSITY PINE 15.0 0.75 PINE 17.0 0.25 OAK 2.1 0.55 DATA ELEMENTS i > OCCURRENCES VALUES Figure IT. The MARIS Data Structure 58 result in the data occurrence: "type" equals "pine"; "acres" equals "15-7"; and "density" equals "0.75". Although the structure for each occurrence is fixed, there can he an arbitrary number of occurrences for each class in a parcel. The scope of a retrieval must he specified before a request can be executed. Scope is defined in NARIS by specifying a region. Internally, a region is simply a list of record numbers representing a subset of parcels. Regions may be created by users in three ways: (1) by explicit geographic description using standard Public Land Survey notation to address one or many parcels; (2) by the data content of parcels using Boolean expressions to specify the conditions that data values must satisfy; (3) by constructing new regions from existing regions using the set operations "exclude", "union", and "intersect". Regions perform a dual purpose. First they allow a user to manip- ulate data using a geographic notion that is ingrained in their thought processes. Second, they provide the associative keying capability necessary for on-line information retrieval. By limiting each request to the parcels specified in a region, serial searching of the entire data base is eliminated. In order to calculate weights for each parcel in a region, weight- ing or arithmetic expressions have been designed to mirror the NARIS data structure. At the lowest level, weighting expressions provide the ability to arithmetically combine values of numerical data elements within the same occurrence. By combining low level arithmetic expressions with Boolean ex- pressions, a single value for a class can be computed on a subset of the occurrences in a parcel. A single value or weight for a parcel can then be 59 computed "by arithmetically combining the values calculated for different classes. A retrieval request specifies a region, the specific primarys to he retrieved, and the action to he executed upon retrieval primaries. A retrieval primary can either be a single data element, an arithmetic ex- pression of data elements, or a list of these primaries. The actions each have a unique verb in the request language: TABULATE, CALCULATE, MAP, and OUTPUT. TABULATE lists information on a parcel-by-parcel basis. CALCULATE displays summaries of data over the complete region. MAP produces scaled and accurate maps of parcels that are gray level shaded according to the computed value of an arithmetic expression. OUTPUT produces a disk file con- taining the value of one or more arithmetic expressions for each parcel. The OUTPUT verb allows other programs such as report generators, statistical systems, simulators, and site location algorithms to manipulate the data outside of WAR IS in ways that would be beyond the sophistication of most users. Another facility in the language, an ABBREVIATIOW, permits a user to abbreviate portions of a request with a single name. This gives the language a text replacement macro capability which permits long requests to be broken into smaller segments and also lets nonsophisticated data users easily' execute requests created by technical specialists. English text descriptions of data classes, elements, and values are available through the WHAT IS request. This mechanism also allows users to recall the defini- tion of an entity. Other facilities in the language are used to manage the various regions, abbreviations, and other entities. For example, these facilities allow a user to save an entity, destroy an entity, or control which users and agencies have access to an entity. 6o k.2 Outputting of Arithmetic Expressions in NARIS The current language constructs in NARIS for specifying weighting expressions and outputting of disk files of parcel weights are presented in terms of their syntax and semantics. Future language concepts will be discussed in section k.h. U.2.1 Fundamental Definitions It. 2.1.1 Syntax ::= a null string : := A |B |. . . |Z : := |l . . . |9 |/|' : := | | |. ::= +|-| : := | | ::= | : := | : := : := | . |. ::= : := : := | : := ::= I I I " is the name of a data class in the data base. A is the name of a data element of one of the classes. A is one of several possible values for a particular can have either numerical or character values but not both. A is a data element which has or values. Each reference to a data identifier in a NARIS request implies the necessary re- trieval of the corresponding data values from the data base. Some of the will contain These values must be enclosed in quotes (") in a NARIS request. 1+.2.1.3 Examples Consider table 7 which shows three possible occurrences of soils data. SOIL NUMBER ACRES SLOPE W103 15 A 27 20 C W103 5 B Table 7. Some Occurrences of Soil Data. SOIL is a s . One possible for SOIL NUMBER is W3.03. SOIL ACRES is a because all of its values must be s. 62 U.2.2 Functional Transformations At times, the arithmetic operations of addition, subtraction, multiplication, division, and exponentiation will not "be adequate for per- forming a desired calculation. For this reason functions are permitted in arithmetic expressions. U.2.2.1 Syntax ::= FUNCTION # : := : := | ::= ( , ) : := < number > : := +|-| ::= THE | ::= IS| U.2.2.2 Semantics A function request is used to define a function to NARIS. The function is used within an arithmetic expression by specifying its' identify- ing name. The coordinate pairs of a function definition represent the end- points of the line segments of a piecewise linear function of one variable. The defining coordinate pairs must be listed by giving the argument (x-coord- inate) first and the function value (y-coordinate=f (x) ) second. Coordinate pairs must be listed so that a function is unambiguously defined by specify- ing the x-coordinates in increasing order from left to right. The limit indicator is used to specify discontinuous functions. The "+" sign after the coordinate "x" in the coordinate pair (x+,y) states that 63 the function value "y" is not given to the argument value "x" hut to the argument value just larger than "x". Similarly, the x-coordinate "x-" indicates a numher just less than "x". U.2.2.3 Examples Figure 18 shows the graph of a function given the identifier TREECUTCOST . TREECUTCOST represents the cost of removing forestry from a parcel of land. The statement for defining TREECUTCOST is FUNCTION TREECUTCOST IS ( 0,0) (50 ,100 )( 50+, 150) (100,200 )# 4.2.3 Arithmetic Expressions Within an Occurrence 4.2.3.1 Syntax | < unary operator> | ::= +|- ::= | ::= | ::= ** ::= | | | () ::= ::= FUNCTION [] () |() 61. 50 100 PERCENT OF FORESTRY Figure 18. The Graph of the Function TREECUTCOST. 65 U.2.3.2 Semantics An occurrence arithmetic expression is a calculation rule to be executed on the numerical values of an occurrence primary. The value of a number is itself. The value of a numeric data element identifier is the data element value represented by the identifier of the data occurrence under evaluation. For occurrence functions, the value is the result re- turned by the transformation defined by the function. Finally, the value of an occurrence arithmetic expression enclosed in parentheses is the result of the arithmetic calculation defined by the recursive analysis of values of primaries of the other three types. All integers are converted to reals and all arithmetic is real. The precedence of arithmetic operations are defined by the syntax. It is important to note that the expression is evaluated only on the data within the same occurrence which is data that necessarily belongs to the same class. An occurrence arithmetic expression can not be composed solely of numbers. At least one numeric data element identifier must be included within the expression and at least one data element identifier must include a class identifier. 14.2.3.3 Examples Consider the class FORESTRY with numeric data elements ACRES, TOTALPARCELACRES, and DENSITY. Some examples of occurrence arithmetic ex- pressions are: (1) FORESTRY ACRES (2) ( FORESTRYACRES / TOTALPARCELACRES ) * 100.00 ( 3 ) TREECUTC0ST( (F0RESTRYACRES/T0TALPARCELACRES)*100 ) where TREECUTCOST is the function identifier defined in section U.2.2.3 66 (h) -DENSITY**FUNCTION[ (0,0) (10. 0,0) (20. 0,5)] (DENSITY) i+ . 2 - U Boolean Expressions Within an Occurrence Each parcel will probably have several occurrences of data for any particular class. Arithmetic expressions can be defined that perform calculations on the values of an occurrence arithmetic expression evaluated on a portion of the data occurrences within a parcel. In order to specify which occurrences should be included in a higher calculation, a Boolean facility is provided which returns a TRUE, FALSE, or MAYBE value for each occurrence in the parcel. MAYBE values occur when relations can not be re- solved due to missing data or execution time errors such as divide by zero. 4.2.U.1 Syntax j0R ::= | AND ::= | () ::= | () | | I |() EQUAL 67 | WOT EQUAL |DOES WOT EQUAL | EQUALS |EQ I WE |NQL |WEQ ::= IS| ::= TO| : := OWE OF| WOT OWE OF : := | WOT | | OR ::= GREATER |GT |GTR | LESS |LT | LSS ::= THAW | < empty > ::= |, ::= | , U .2 .i+ . 2 Semantics An occurrence Boolean expression is a rule for computing a logical value over the data within one occurrence. The rules of evaluation are analogous to the rules for evaluating arithmetic expressions. Occurrence relations are given the value true if the relation is satisfied for the arithmetic expressions or data elements involved. If the relation is not satisfied then the value is false. If the relation is indeterminable because of missing data or execution errors then the value is maybe. The precedence of Boolean operations are defined by the syntax. The meaning of the logical operators "AWD" and "OR" are defined in Table 8. Comparing the value of an arithmetic expression to an integer list is accomplished by rounding the value to the "entier (value + 0.5)". 68 OPERANDS OPERATIONS bl b2 bl AND b2 bl OR b2 true true true true true false false true true maybe maybe true false true false true false false false false false maybe false maybe maybe true maybe true maybe false false maybe maybe maybe maybe i maybe Table 8. The Meaning of the Logical Operators AND and OR 69 U .2 .U .3 Examples Consider the class FORESTRY with numerical data elements ACRES and DENSITY and the character data element TYPE. Some examples of occurrence Boolean expressions are: (1) FORESTRY TYPE IS PINE (2) FORESTRY ACRES IS GREATER THAN OR EQUAL TO 15 (3) FORESTRY TYPE IS ONE OF (OAK, MAPLE, PIKE) (k) (FORESTRY ACRES * DENSITY) LT 10.0 AND (TYPE IS NOT PINE OR ACRES GT 5) k .2. 5 Arithmetic Expressions Within a_ Class 4.2.5.1 Syntax | ::= WHERE : := SUM | TOTAL | AVE | AVERAGE | MIN | MINIMUM | MX | MAXIMUM | COUNT 4.2.5.2 Semantics A class arithmetic expression is a rule for computing a single result on the data within some of the occurrences in a class in one parcel. A vector of values is produced by the evaluation of the occurrence arithme- tic expression on each qualifying data occurrence within each parcel record. TO If a where clause is not expressed then every occurrence -within the class is a qualifying occurrence. When a where clause is included in the class ex- pression the Boolean expression is evaluated on each occurrence. If result- ing value is false then the data occurrence does not qualify, if the value is true then the occurrence qualifies, and if the value is maybe then the computation is terminated on the tract and the user is notified. The resulting vector of values are operated upon by the algorithm associated with the specified functional designator. SUM or TOTAL causes the final result of the class arithmetic expression to be the summation of values in the vector. AVERAGE or AVE computes the average value. MINIMUM or MIN and MAXIMUM or MAX finds the minimum or maximum value respectively. COUNT returns the number of values in the vector (equal to the number of qualifying occurrences ) . If a class expression contains a where clause which when evaluated on a parcel shows that none of the occurrences qualify, then a value of zero is assumed for the result regardless of the functional designator. This condition will be noted by the system and will be indicated to the user if necessary. U.2.5-3 Examples Again it should be noted that all the data elements specified in a class arithmetic expression must belong to the same data class. Consider the class POPULATION with numeric data elements SIZE and AVESALARY and character data element RACE. Some examples of class arithmetic expressions are: (1) TOTAL POPULATION SIZE (2) MIN (POPULATION SIZE * AVESALARY) Tl (3) TOTAL POPULATION SIZE WHERE RACE IS SPANISHAMERICAN (U) MAXIMUM (POPULATION AVESALARY * (SIZE ** 2)) WHERE (SIZE*AVESALARY) LE 10.0 AND RACE IS NOT CAUCAISAN k.2.6 Arithmetic Expressions Over a Parcel k.2.6.1 Syntax | | ::= | ::= | ::= | | | () ::= ::= FUNCTION [ ] () |() U.2.6.2 Semantics A parcel arithmetic expression is a rule for computing a single result, which could represent a weight, based on all the data within a single parcel. The rule expressed by a parcel arithmetic expression is executed on the numerical values of parcel primaries. The rules are com- pletely analogous to the rules of occurrence arithmetic expression. The value of a number is itself. The value of a parcel variable is the result of the class arithmetic expression calculation on the data element values 72 of the specified class. For parcel functions, the value is the result re- turned by the transformation defined by the function. Finally, the value of a parcel arithmetic expression enclosed in parentheses is the result of the arithmetic calculation defined by the recursive analysis of values of primaries of the other three types. If a class arithmetic expression primary of the parcel expression does not contain a class identifier then the class is assumed to be the class of the class arithmetic expression preceding it. In order to determine the class of the first class arithmetic expression used in the parcel ex- pression, the first data element identifier in the class expression must include a class identifier. U.2.6.3 Examples Consider again the example classes and data elements defined earli- i er. Examples of parcel arithmetic expressions follow: (1) 10**2+5.0 ;' (2) TOTAL FORESTRY ACRES ! i (3) (TOTAL FORESTRY ACRES )/( TOTAL SOIL ACRES )*100 (k) (MAX (POPULATION SIZE*AVESALARY) WHERE RACE IS NOT CAUCAISAN) - MIN AVESALARY (5) (EC0L0GYWT( TOTAL FORESTRY ACRES ))/ (TOTAL (EC0N0MICC0ST( FORESTRY ACRES ))WHERE DENSITY GTR 5-0) where EC0L0GYWT and EC0N0MICC0ST are previously defined function identifiers U.2.7 The Output Request U. 2.7.1 Syntax ::= OUTPUT ON FILE "" 73 # ::= FOR : := see Appendix C : := ::= | , U.2.T.2 Semantics The output request provides a user the capability of forming a file of calculations on NARIS data. A record is produced for each parcel in the region. Each record contains a geographic locator and the values of each arithmetic expression written in "E" format. The file can be read by pro- grams other than NARIS. U.2.7.3 Examples An example is: FOR COOKCOUNTY OUTPUT OK FILE "WEIGHTS" (ECOLOGY¥T( TOTAL FORESTRY ACRES ))/ (TOTAL (ECONOMICCOST( FORESTRY ACRES)) WHERE DENSITY GTR 5-0), TOTAL FORESTRY ACRES# where ECOLOGYWT and EC0N0MICC0ST are previously defined function identifiers. ^.3 A Weighting Expression and Heuristic Area Location Example In order to explore the use of weighting functions for site loca- tion problems over regions with large numbers of parcels, a suboptimal heur- istic area location algorithm was developed. U . 3 .1 A Heuristic Area Location Algorithm The central idea behind the algorithm is to view a parcel system and its parcel weights as a three-dimensional topography. The x,y-dimensions Ik represent the geographic coordinates while the z-dimension represents the elevation which is established by the weights of each parcel. The "valleys" of this topography are incrementally "flooded" in order to locate suboptimal low-weighted areas. At each level of flooding, every "puddle" is examined in order to determine if any satisfies all the specified constraints. The most important constraints will be those that dictate the final surface area of a puddle which has the same size as the site represented by the puddle. If no puddle satisfies all the constraints then the flood level or watertable is increased enlarging each puddle and merging many together. The algorithm terminates when one or more puddles at the present watertable satisfies all the constraints. The puddle whose weights sum to the minimum and satisfies all the constraints represents the suboptimal area. Adjacencies are determined by a table that represents the linear graph model of the parcel configuration. Puddles are created by referring to this table. Since a linear graph model is incorporated into the algorithm, adjacencies can be specified or ignored without regard to geographic parcel contiguity. Figures 19 and 20 shows the flowcharts of the heuristic area location algorithm and the puddle location subalgorithm. Appendix B contains code for the interactive heuristic program. U.3.2 A Housing Subdivision Example The example problem is to suboptimally locate a site for a housing subdivision. The region under study is Marengo township located in McHenry County within the State of Illinois. This township is composed of 576 par- cels of land in a rectangular grid configuration where each parcel is approximately one quarter mile square (kO acres). The only constraint will be on the number of parcels that compose the site. (begin) INITIALIZE WATERTABLE LOCATE PUDDLES FOR EACH PUDDLE CHECK CONSTRAINTS INCREMENT WATERTABLE (end) ALGORITHM FAILED TO FIND A FEASIBLE SOLUTION (end) Figure 19 . The Flowchart of the Heuristic Area Location Algorithm, 76 (begin) 1 i GET FIRST PARCEL GET NEXT PARCEL 1 1 i YES 1 YES YES GET AN ADJACENT PARCEL YES i REMEMBER ITC Dl IPlfM c 1 1 O r I. D. MAKE THE PARCEL A NEW PUDDLE NO NO MEND YES COMBINE ADJACENT PUDDLES Figure 20. The Flowchart of the Puddle Location Subalgorithm, 77 Actual data from the NARIS data base will "be used to establish each parcel's weight. Detailed descriptions of the data element values used in the weighting expression will not be given. This information can be obtained directly from NARIS. Only a general description of each part of the weighting expression is necessary to understand what the request is do- ing. The abbreviation text replacement capability in the NARIS language will be used to segment the weighting expression in order to facilitate the explanation. An abbreviation request allows a user to specify a single word that represents an arbitrarily long text string. The word can be used in any request by following it with a period ( . ) . The system expands the text as it compiles the request. For example, THE ABBREVIATION ABBR IS ABBREVIATION # will allow a user to specify "ABBR." instead of having to type out the word ABBREVIATION. The object of the weighting expression is to establish a weight for each parcel which represents the parcel's relative suitability to be included as part of a housing subdivision. Each segment of the expression will weight a parcel high if it is very suitable for housing with respect to the data under consideration and lower if it is not suitable. Since the heuristic site location algorithm finds minimally weighted sites, the final weights will be multiplied by -1 in order to make the least weighted parcels more desirable. The following function will be used repeatedly in order to negativ- ly weight parcels with poor characteristics. THE FUNCTION IGNOR IS (0,0) (0+, -1000 ) (100,-1000)# 78 A parcel will receive an extremely low weight whenever this function en- counters an argument whose value is greater than zero. The following abbreviations will make up the final weighting function. THE ABBR. FLOOD WT IS (IGN0R( TOTAL STREAMS FLOODACRES) )# Any parcel that is subject to flooding will be ignored. THE ABBR. CONSTRUCTWT IS (IGN0R( TOTAL GEOCONSTRUCT ACRES WHERE TYPE IS NOT ONE OF (G2, G3)))# Any parcel which contains poor geological conditions for construction must be ignored. THE ABBR. BADLANDUSEWT IS (IGN0R( TOTAL LANDUSE1 ACRES WHERE CODE IS ONE OF (33-0, 6k. 0, 71-0, 72.0, 9^.0) ))# Mines, cemeteries, sewage disposal works, refuse dumps, and marshlands are extremely undesirable and any parcels containing them will be ignored. THE ABBR. SOILWT IS (2* TOTAL SOIL ACRES WHERE SLIGHTSEPTICLIMIT . AND SLIGHTURBANLLMIT . )# Parcels are weighted porportional to the amount of soil with only slight urban and septic limitations. SLIGHTSEPTICLIMIT. and SLIGHTURBANLIMIT . are abbreviations created by a U.S. Department of Agriculture Soil Conservation Service scientist. THE ABBR. OPENLANDWT IS (2* LANDUSE ACRES WHERE CODE IS 8l.0)# Open land is desirable. THE ABBR. FORESTRYWT IS (80* FUNCTION [ (0,0) (10,1 ) (U0,-2) ] (TOTAL FORESTRY ACRES) )# Parcels with 10.0 acres of forestry are best. Parcels with less may require tree planting for aesthics and those with more may require clearing. 79 THE ABBR. DRAINAGEWT IS (2* TOTAL GEOWATER ACRES WHERE TYPE IS Gl)# Good drainage characteristics are desirable. The final expression is defined by: THE ABBR. SUBDIVISIONWTS IS -(FLOODWT. + CONSTRUCTWT. + BADLANDUSEWT . + SOILWT. + OPENLANDWT. + FORESTRYWT. + DRAINAGEWT.) + 273# vhere the factor 273 is an adjustment so that the lowest or "best parcel weight is zero. The final weights are output to a disk file by FOR MARENGOTWP OUTPUT ON FILE "SUBDIVISION" SUBDIVISIONWTS .# The constraints on the number of parcels for the site are constructed from a file in which the coefficient "l" is output with each parcel's geographic locator. FOR MARENGOTWP OUTPUT ON FILE "PARCELS" 1 # After the weights have been output, the heuristic program is in- voked. Figure 21 shows the conversation between the user and the algorithm. A colon is used to signal the user that a response is expected. A map of each parcel's weight is output to the station as a 2k x 2U matrix of three digits. Three asterisks (***) represent a digit greater than 999- It is interesting to note the asterisk pattern outlines a stream and its flood banks.' The next map shows all the puddles found when a solution was detected. The final maps display all the suboptimal areas. k.h Future Language Concepts The weighting expressions provided in NARIS form a preliminary approach to the problem of providing a comprehensive user oriented language for generating parcel weights. Additional language and system concepts which require future research are briefly discussed in this section. 80 RUN AREA/HEURISTIC/OBJECT; END 17:25??*// STATION=SELECTRIC OF AREA/HEURISTIC/OBJECT=2987 OfENED IHt 2987 ARF,A/HEURISTIC/OBJECT@50*BOJ WHAT IS YOUR NARIS USER NUMBER? :U004 WHAT IS YOUR FILE NAME FOR THE PARCEL WEIGHTS? : SUBDIVISION CONSTRAINTS HAVE THE FOLLOWING SYNTAX: ?FILE NAME??BLANKS??LE OR GE?? BLANKS?? NUMBER WITH A DECIMAL POINT? WHAT IS YOUR FIRST CONSTRAINT? : PARCELS GE 20.0 WHAT IS YOUR NEXT CONSTRAINT? TYPE NO IF YOU HAVE NO MORE TO ENTER. : PARCELS LE 24.0 WHAT IS YOUR NEXT CONSTRAINT? TYPE NO IF YOU HAVE NO MORE TO ENTER. :NO THE PARCEL WEIGHTS ARE: 185193190196194179189******193131***************162136139138152128170189 187***193195195193*********175******113113103105131 93142155161109151140 ******i79 1642 10*********191 102******1131 13 87145193159195207176237167132 *** 193348207*********195103******1 151 131 15140175185167249200202136226273 ***1 93 196********* 195105 77***115115134176186155235227195268269249273*** *** 1931981b 1******143 115******1 1315319318317 1165 1421 77 193259273199409265 200185143*********113111***173149157197185175195194113139182236217353209 20b 193*********1 15 122******20220219 1195 195176236 155185203265235 19 1273244 *********191 99115122***233228197195195196195165123273265261211231433321 *** 1791931 35 115 95******176170194169193163156233191*********236206131385 i72185149119 73 71***133170193237***175192 369273******234171199273425433 206119 51 46 54******129181191211***172146189241******181289195257329194 94 69 55 57****** 74132193154171***154156149******140155245233183188224 65 50 81****** 48 64 83137117129***117113************158186180123***210 62********* 57 37 33 43 52********* 33********* 33*** 73127163194***198 ********* 42 4a 44 46 54 48 42*** 58*************** 44 42 52 72 66 82 78 ************ 85*** 0*************************************************** ************************************************************************ *************************** 55 53 51*** 35 37 47 62 37******113 35****** ************************ 43 33 29 37 39 45 51 82 73*** 39****** 74 35 60 173253112 69 65101 54143 72 47 70 85 50 50 46 55164***123143151****** 93 ********* 93136H3 85 85 71 82 57 57 54 54 51133188191179153113********* 143***196175107 83105 85 45113113 49 39 33 95172173189200235241193149131 195193193175111 81 67 43 57 49 39 47 79 69163174165149211273273223207154 ALL THE AREAS ARE: Figure 21. The Conversation Between a User and the Hueristic Algorithm, 81 113113103105 . 93 . . . 109 . . 102 . . 113113 87 103 . . 115113115 105 77 . 115115 . 115 .. 113 113111 113 115 . . . . 99115 I ... 115 95 ... ■ . . . 119 73 71 . 119.51 46 54 94 69 55 57 .. 74 65 50 81 . . 48 64 83 . 117 . . 117113 62 . . . 57 37 33 43 52 . . . 33 . . . 33 . 73 . . . 42 48 44 46 54 48 42 . 58 44 42 52 72 66 82 78 . . . . 85 . 55 53 51 . 35 37 47 62 37 . , 113 35 . . 43 33 39 37 39 45 51 82 73 . 39 . . 74 35 60 112 69 65101 54 . 72 47 70 85 50 50 46 55 93 . 93 . 113 85 85 71 82 57 57 54 54 51 . . . . . 113 . . . . . 107 83105 85 45113113 49 39 33 95 . . Ill 81 67 43 57 49 39 47 79 69 AREAS THAT MEET CONSTRAINTS ARE: 115 . . . . 99115 . . . . 115 95 . . . 119 73 71 . 119 51 46 54 . 94 69 55 57 . . 65 50 81 . . . 62 SUM OF WEIGHTS = 1605 TYPE YES IF YOU WANT TO KNOW WHICH CONSTRAINTS ARE VIOLATED FOR AREAS NOT IN THE SOLUTION. TYPE NO OTHERWISE. :N0 PROCESSOR TIME = 7 SECS. Figure 21 (continued) 82 U.U.I Distance and Direction Calculating a distance from a parcel is tedious in the current NARIS system. A data class called MAPDATA with data elements X and Y is part of the data base. Each occurrence of MAPDATA is an X and Y coordinate of a corner point of the polygon defining the parcel. The center of a parcel is approximated by the average X and Y coordinates of the parcel. The follow- ing expression uses the formula for calculating distance between two coordin- ates. Suppose the distance from coordinate (123, U56) is to be formulated. The expression for accomplishing this is ((((AVE MAPDATA X)-123)**2)+( ( (AVE MAPDATA Y)-U56)**2) )**0 . 5 It is apparent that this is not user oriented. Distance should be a primi- tive construct within any generalized geographic information system. Within the NARIS syntax, it could be treated as an addition to s defined in section U.2.6.1. The syntax could be ::= | | |() | : := DISTANCE ::= FROM| : := | : := , | The distance expression in the example would become THE DISTANCE FROM 123, U 56 83 The above construct could easily be added to the NARIS language. However, distance from a collection of parcels, such as a NARIS region, presents a significant problem. The problem arises when the parcels are not all contiguous. In this case the definition of distance can be formu- lated using many schemes. Each algorithm must be studied with respect to speed and user acceptance. The notion of direction can also play in important role in parcel weighting. For example, being down wind from a factory would have an effect on the optimal location of a housing subdivision. Direction and distance could be combined together to form a polar coordinate factor for weighting. k.k.2 Numerical Associations for Non-numerical Data Only numerical data elements can be manipulated with arithmetic operators. In order to increase the power of weighting expressions, a mechanism for attaching numerical values to the character values of a non- numerical data element should be provided. A possible construct could take the following form. Association request>:: = ASSOCIATE# Association identifiers := Association list>::= | Association list>, Assoc iation> j Association list> Assoc iation> Associations := : An example with the data element FORESTRY TYPE might be ASSOCIATE FORESTRYRANK WITH FORESTRY TYPE AS PINE:-1, OAK: 5-5, MAPLE: 2# Qk An association could then "be permitted in any expression in which a character or numeric data element identifier was allowed. For example, the following could be legitimate parcel arithmetic expressions. (1) (TOTAL FORESTRY ACRES)* (AVERAGE FORESTRYRANK) (2) TOTAL FORESTRY ACRES WHERE FORESTRYRANK GTR Associations could he handled within the NARIS system in the same way as the other entities — Regions, Abbreviations, and Functions — are processed. All entities have a structure characterized by some information corresponding to a user specified identifier which is analygous to the structure of asso- ciations. 4.ii.3 The Influence of One Parcel on Another Activities and conditions that occur in parcels within the sur- rounding region of a particular parcel may have an effect on the final weight that a parcel is given. The ahility to calculate a factor for a parcel "based on data in parcels that are within a specified distance should he studied. One approach to this problem would be to allow a of the following form. ::= |etc. see section k.2.6.1 : := WITHIN MILES Some examples are: (1) WITHIN 2 MILES AVERAGE FORESTRY ACRES (2) WITHIN 3.5 MILES TOTAL LANDUSE ACRES WHERE TYPE IS FACTORY Another important concept is related to the requirement for "searching upstream" for various conditions. The purchaser of a parcel of land might wish to know if a factory is polluting the stream that runs through the parcel. This desire leads to the notion of a linked data "base 85 where data elements within one record can point to data in another. Mechan- isms for tracing pointers and retrieving information along the way could provide a powerful search mechanism. i+ . U . U Optimal Regions Section k.l provides an introduction to the NARIS concept of a region . Recall that a region is a name associated with a list of parcel numbers which can be created by geographic location, data content, or set manipulations. Since an optimal site is also defined as a special set of parcels it would be natural to incorporate site location within a NARIS region request. This is, of course, a hypothetical discussion until effec- tive site location algorithms can be developed. One possible form of an optimal region request could be ::= REGION : := see Appendix C | IS optimization typexconstraint list> ::= PATH FROM TO | AREA BETWEEN AND ^unsigned number xarea unit> : : = ACRES | SQMILES optimization typo: := MAXIMUM | MINIMUM •^constraint list>::= SUBJECT TO |, | : := 86 For example, the housing subdivision problem of section k.3 with an addition- al population constraint would be expressed as THE REGION HOUSING IS AREA BETWEEN 800 and 960 ACRES WHERE SUBDIVISIONWTS. IS MINIMUM SUBJECT TO TOTAL POPULATION SIZE LESS THAN 200 # 87 CHAPTER 5 CONCLUSIONS The linear graph integer programming formulation of the site location problem provides several flexibilities that might not occur with other approaches. First of all, it was shown that path and point location can be viewed as special cases of the more general area location problem. Another important characteristic is that the algorithms are system independ- ent. This means that these techniques can potentially be added to existing generalized geographic based information systems. The condition that sup- ports system independence is the fact that the model and algorithms are linked to the geographic structure of the data instead of the particular geographic coordinate schemes used in data collection and referencing. Only characteristics of adjacency are important. It is important to note that adjacency can be arbitrarily defined. Optimal areas were defined in terms of a linear graph which was not required to be planar. Two parcels that are not necessarily contiguous can be linked together for special applications. For instance, in urban regions it may be more important to link parcels with respect to transportation accessability rather than just adjacency. Other linkages may occur due to communication capabilities. Just as important as adding links is the ability to break links. For example, in regions of highly varying topographies two adjacent parcels could be separated by several hundred feet of average elevation which would prohibit the two parcels from being part of the same site. All of the examples thus far have dealt with two-dimensional parcel spaces. Ths is not a restriction since the linear graph model can easily 88 incorporate a three-dimensional volume system as well as an n-dimensional system of space and time adjacencies. The links of the graph in the integer programming model have asso- ciated variables which can he weighted in a manner similar to node weighting. These weights could represent degrees of connectivity. By incorporating the link weights into the objective function, site locations could optimized not only "by parcel weights hut by the interactions between adjacent parcels. It was also shown that the addition of other constraints is a simple matter in the integer programming model. This feature also allows particular parcels to be forced into the solution. Their respective node variables merely have to be set equal to one in the initial tableau. The same is possible for link variables. It was demonstrated that the shapes of optimal areas can be con- trolled. For instance, long narrow areas would be quite undesirable for many applications. This condition can be eliminated by easily implemented restrictions on the height of the solution tree. A major feature of the multiple site formulation is that the seemingly inescapable quadratic nature of the problem was overcome. The zero-one variables of the formulation provide a key to reducing the problem to a conventional linear form. The most serious problem with the formulation is the large compu- tational times required to solve integer programming formulations. Future research is required into optimal and suboptimal techniques that capitalize on the unique structure of the models presented In this thesis. Of course, the special properties of paths and points can be exploited to develop lo- cation algorithms more efficient than integer programming. For example, critical path techniques could be used to locate optimal paths. Location 89 of an optimum weighted point would be trivial since a point is defined as a single parcel. Only a simple sort has to "be performed on a list of parcel numbers and their associated weights. Positional relationships are not important since questions of contiguity do not arise when searching for points . User oriented language constructs for expressing parcel weights were demonstrated. They have been successfully implemented with a system that has gained user acceptance. However, several concepts are still lack- ing and require further research. 90 LIST OF REFERENCES [I] Tomlinson, R.F., Environmental Information Systems , The International Geographical Union Commission on Geographical Data Sensing and Processing, Proceedings of the UNESCO/ IGU First Symposium on Geograph- ical Information Systems, Ontario, September 1970. [2] Tomlinson, R.F., Geographical Data Handling , Volume 1 and 2, The Inter- national Geographical Union Commission on Geographical Data Sensing and Processing, Proceedings of the UNESCO/IGU Second Symposium on Geographical Information Systems, Ottawa, August 1972. [3] Warntz, W. , et . al., "Laboratory for Computer Graphics and Spatial Analysis Selected Projects", Laboratory for Computer Graphics and Spatial Analysis, Harvard University, Cambridge Massachusetts, 1970. [k] Alsberg, P. A., et . al., "IRIS Illinois Resource Information System Feasibility Study Final Report", Center for Advanced Computation, University of Illinois at Urbana-Champaign, April 30, 1972. [5] Steinitz, C, et . al., "A Comparative Study of Resource Analysis Meth- ods", Department of Landscape Architecture Research Office, Harvard University, Cambridge, Massachusetts, July, 1969- [6] Belcher, D., et . al . , "New York State Land Use Natural Resource In- ventory Final Report", Volume 1-5 » Center for Aerial Photographic Studies, Cornell University, Ithaca, New York, 1971. [7] Pfaltz, J. L., "Pattern Recognition VI - MANS, A Map Analysis System", Technical Report TR-67-^2, Computer Science Center, University of Maryland at College Park, February 1967 • [8] Alsberg, P. A., et. al., "NARIS A Natural Resource Information System", Center for Advanced Computation Document Number 35 » University of Illinois at Urbana-Champaign, August 1972. [9] Arms, S., "MAP/MODEL System - System Description and Users Guide", Bureau of Governmental Research and. Service, University of Oregon, at Eugene, May 1970. [10] Tomlinson, R.F., "An Introduction to the Geo-Information System of the Canada Land Inventory", Canada Department of Forestry and Rural De- velopment, Ottawa, 1967. [II] Parker, J.L., "information Retrieval with Large-Scale Geographic Data Bases", Report Number 1, Department of Computer Science, University of British Columbia at Vancouver, June 1971. [12] Wagner, H. M. , Principles of Operations Research with Applications to Managerial Decisions , Pretice-Hall, Inc., 1969. 91 [13] Mayeda, W. , Graph Theory , Wiley, 1972 [ik] Muroga, S. and Ibaraki, T., Integer Programming and Advanced Linear Programming , Manuscript, Department of Computer Science, University of Illinois at Urbana-Champaign, 1972. [15] Langmaack, H. , "GOMORY 1 [H]", Algorithm 263A, Collected Algorithms from CACM , Association for Computing Machinery, 1971 • [l6] Burroughs B_ 67OO Extended ALGOL Language Information Manual , Burroughs Corporation, Detroit, Michigan, 1971* [17] Proll, L. G., "Certification of Algorithm 263A [H] GOMORY l", Collected Algorithms from CACM , Association for Computing Machinery, 1971. [l8] Liu, T. K., "A Code for Zero-One Integer Linear Programming by Implicit Enumeration (A Programming Manual For ILLIP)", Department of Computer Science Report Number 302, University of Illinois at Urbana-Champaign, December 1968. [19] Koopmans, T. C, and Beckman, M. , "Assignment Problems and the location of Economic Activities", Econometrica, Volume 25, 1957, pp. 53-76. [20] Ray, R. M., "A Proposal for an ILLIAC IV Urban Land Use Optimizing Model", Working Paper, Center for Advanced Computation, University of Illinois at Urbana-Champaign, September 22, 1971. [21] Chen, C, "Solving Large and Sparse Zero-One Programming Problems on Parallel Processors", Ph.D. Thesis, Department of Computer Science, University of Illinois at Urbana-Champaign, 1972. [22] Corbin, C. C, et . al., "The IRIS/NARIS Users Manual," Center for Advanced Computation Document Number 38, University of Illinois at Urbana-Champaign, June 30, 1972. 92 APPENDIX A OPTIMAL SITE LOCATION CODE 93 BURROUGHS R6T00 ALGOL COMPILE" LEVEL I 1 , 0? a 00 , 01 5 • THURSDAY. 06/29/?2t t?i5l AM, OPTTM*L/»"EA REr.IN xxxx*TXx«xxxnx*mxTxxx»xxxx*xxxrxxi**xxxxtxxxi*xxxxxxxx»xxxx*nxnxsxx * TUNING 0JP4METFRS txxxxxxxrxxxxxxxxxxtxxxxxxxxxxxxxrxxxxxxxxxxxxxxtxxxxxxxxtiiixtxxixtxxxx oEF TNE MUMIFNOOES" 10 f • t number nr nodes 'l.r. parcels) nUMIfIInhsb ->6 t . X NUMUfR OF LINKS ..UmTtER. A I. I NUMBER OF ITER»TTONS.-E*CM WILL HAvE » DTFFERFNT X »RE» CON$TR*lNT nUM"FCONSTRAINTS» n I, X NUMBER OF CONSTRAINTS OTHER THAN AREA BOUNDS mAxMmEs ibco ti t MA X 1MUM CUMULATIVE PROCESSOR TIME IN SI»TYITHS OF A SEC ilkl'.lt ARRAY HlGHBDAREASC A»5. 3>?.«»6 ) I t UPPER ROUNDS OF 'OLUTtON AREAS IMOEy BY ITERATION I NUMBER i/AL'IE ARRAY LO"iBDARE*Sf £•3.1.2,4.6 1 I » LOwER HOUNDS nF SOLUTION ARFA IuPExEO X BY ITERATION NUM'ER ulL 'E ARRAY N0nEARE4S( 5.2.1.2.3.2.1.1.1.? ) I X AREA Or EACK NOOr (DjprFL) ( ,AL IE ARRAY WElGHTSt 000 oonoi RLOCk IS SEGMENT 00002 00? OOfiO" 002 OOOO 1 00? n > 002 00001 00?" oono 0O2J0000 00? 0000 00? OOno 00? oooo 00? 00001 00? OOoO 00? 0000 00? oono 00? 00001 002 0000 00? "OOpO 00? •OoO 90? lOOnO 00?«00o0 MliOOoO 00? OOnO •0? oono 00? i0«00 oo?ioono 00? [OOpO 00? [OOpO oo?Joooo 00? iOCoo 10 00? iOOpO lO OATA IS 100* -°Nr, 00? ;oooo 00? [0000 00? 10000 10 00? ioooo 10 oo?toono 00? i OOno lO DATA IS 100a -Onc 00? ;00oo |0 00? t 0000 |0 00? • o o o o 00? i OOnn lO 00? •OOno 10 00? i" o o o n D'TA IS 100» .ONr. 00? [OOnn 00? , oooo |0 00? iOOoo rO 9U o . 2 . 1 . 2 . 5 . 5 . 2 . 3 . 2 » 3 )l * "Eir.HT or EACH PARCEL rlLf LlNE(MYUSE»2.Klig0»135.flurFri>S«?« M * ) 'RfCst z E«22.INTM0nE"«5« riL r eARni define NU u COL<"(Z*NUNOFNnDE**NUMOFllNK«*l ) *• t NUMBERS OF ACTIVITY VARIABLES PLUS 1 FOR * THE RIGHT HAND S'OE COLUMN Nu - R0*S»(5*2»NuM0FLINKS*NUM''FLINKS DIV 2»«*NUNOFN00ES ♦hUMOrCONSTR»INTS) ft f NUMBER or constraint* needed to s*tisft ArEA « AND C0NTI6UTTV RfSUIBrMrMTS tNTFGER ARRAY *PJr> lNUMOFNODfS»l INUHOFNODESv * TELLS IF NOOE "FIRST INDEI" IS ADJACENT TO t node "SEcONn rN»r«« * h en Tur v*i uC is t GREATER THAN 2tRP. THE » VALUE IS THE LIN* HUMMER TAtllNUHCOLS.OlNUMROXS]' DEFINE *tI»jJ»T»tJ.I] f| ( THE INTE6ER PROG»»MfNr, TABLEAU MATRi* INTEGER I.Jl INTEGER TIN, « PROCESSOR TIHE OF EACH ITERATION INTFbER 1TERI * ITERATION NUMBER INTF6ER CUMTIMEl I CUMULATIVE PROCESSOR TIME Or ALL PROCESSING ( NOT COUNTING DATA INITIALISATION INTFGER ICTIMEl « CUMULATIVE I/O TTME INTEGER PIvOTNUM, t NUMBER OF INTEGER PROGRAMMING PTvOTS L*8fL NOSOLuTION.STOPI LABFL NE»Tl DEFINE STEPl(ItL.U).FOR ILL STEP 1 UNTIL U 00 II DEFINE STArTLINK" NUM0FN0Df>*l *• I TABLEAU COLUMN MMERE LINK VAPlARLES START ENnLINK«NUHoFNnoES*NUMO r LlNt 1 LINK NUM8FR OF LINK RnlNTlNG TO NODE J FROM NODE I DEFINE STARTNDDE«1 fi t TABLEAU COLUMN WERE NODE VARIABLES START ENONODF'NUMoENnOEs •» t TABLEAU cnLUMN WERE NODF VaRIArlES ENO 00? oonn 00? OOflO DATA IS 000s 1 .ONfi 002 .0000 00? iOodo 10 002 'iOOnO DATA IS )00r .ONft 00? tOOnn DATA IS )00* -ONf, 002 "0000 00? oono 002 ]oono 00? oono 00? OOno 00? ooon 00? oono 00? 0000 00? "oono 00? 10003 00? 00d3 00? "0003 00? r0003 00? 0003 00? 0006 002 |00fl6 002 1OO06 00? 0006 00? oon« 00? 00D6 00? i'OODA 00? |00d6 00? |00n6 002 l'00n6 00? 0006 00? 1OOD6 00? 00A6 00? 0006 002 0006 00? r00n6 00? '0006 00? 0006 00? oonA 00? 00p6 00? ■"oonft 00? 00D6 00? "00n6 00? 0006 00? OOr* 00? 0Cn6 002 OOrA 00? 00n6 00? :00D6 00?i0006 00? lOOoft 00? 00n6 00? OOn* 005 nont 95 ntrtue oo?,oooaio LlNKPOSU >"I*NUM0FNn0E5 f> OOjMOOnAlO t T»BLE*U COLUMN nr l!N K | 00?,OOoaiO »xxxxxn«xxxxxnxxi»xxxmxxxxxxx»xxxxxxxxxx»xxx*xxxxxxxxxxxxxxxxxxxx*xx oo?,oon*iO PROCEDURE CREATEADJI 00?|00n6l0 X CREATES THE ADJACENCY MATRIy ADj FROM DATA CARDS 00?iOOo«lO REGTN 00?|0006'0 INT'GER ARRAY TENP[0I8J| 2 OOj^OOftftlO CREATfADj IS SEGMFNT oooor STE # 1( !»l»Nl)MOFNOOES) 0OTt0Oo2l0 REGIN OOfiOOoJ'O READ(CARD.<9I5».STEPl(J.0.B) TEMP[JI)I 3 OOTiOOn2l« TOR J I ■ 1 STEP 2 UNTIL 7 DO 007,'0015|2 IF TEMPtJJ 8TR THEN 007 t 00l6i0 ADJCTEMP[01,TtMPtjni«TEMPtl*l)l OOTiOOmO end I oor,ooini5 END CREATEADJI 3 OO7i'00?0«l CREATfADJ(OOr, IS 002a LONG IIIIXXlIMIXIXIXIIIXIXtXIIXXXXXXXtXIXXXtlXXXlIXIIXIXXXXIXIIIXXIIIIXIXXXI 2 00?«OOn»lO PROCEDURE riLLHATRIXl 00?T00{)*l0 I THIS IS * MODEL SPECIFIC TABLEAU MATRIX GENERATOR. 00?iOOO«lO ( CONSTRAINTS ARE «ENFRATEO IN CLASSES THAT 00?,00n6l0 X CORRESPOND TO THE EOllATION TYRES SPECIFlfO FOR 00?jOOft«lO X THE MODEL. 00?iOOo«lO RE»»Ii| 00?i00fl6«0 INT»4ER R| 2 00?i00ri6l0 FILLM»TRIX IS SEGMfNT OOOOA X .......... OOitOOcC PROCEDURE luBMTMi 00»jOOoO I OOA,*0«pC I ONE MORE NODE TH'N LtNKl OOijOOftO I OOiiOOoO » M OOliOPnO * !•■ i»- oo»ioooo t > *tJ] . » LfT.j) . i OOiJOOoO X /*- /•• 00»,QO{|0 I I»i all E I • J J In graph oo^oooo I OOijOOoO nEGTN OOiiOOQC sTERKJiSTARTMODE.ENONODE) 3 OOjiOOnO REGIN 00»700ftO AtR»JJI«"JI * oo«Toooo A(P*i.j]i»n oo«i00n2 EN n( oo t ;,'oons $TEP1( J.STApTLlNK«ENOLtNK) • 00»j00o? REGtN OOnOOnT »[».j]nu * ootioonR A[R*1, Jj l»"ll 00»7000A fndi ooi^oopc *tR.NuMfOLSi»»-n « oohooof AtR*l.NUHCflL$5 |.1I OOjVOOll ql.».2j 00«,0013 rNO SUBHTXli 00 4 ,"00l« » .......... 3 OOijOOlA PROCEDURE SUBMT*2i 00t t 00)4 X OOt'iOOlA X DIRECTED TBFFSi OOjiOOM 96 I oo* j oo i at a I |>> OOttOOtt'* I > Ltl.Jl LEO 1. J»1.2 N OOiiOOjM* I /•- 00»,00l«i* t *LL LtI»J] In GR'RH OOijOOi*,* I OOiiOOfti* „C6tN oo»Tooi»i* TNT'GER TEMPI 3 00»,00l»l« submtx2 is segment oooob *te»i(J,i.nunofnodes> oobiooooio BEGIN OOBiOOpOlO STERKI»I»NUMOrNODES> * OOBiOOoOl* IT TEMRipLINKO.J) BTR OOBiOOOOl* ThEN AtR»LlNK*OSl 00 C £000A|° *tR,NUMCnLSlloNllMOFNOOES»l» OOciOOnO'O R I «R* 1 ■ OOClOOor'S ■ ENni 00 C iOOiO|l TNO *UBMTX3| • 00 C| 001«»5 SUBMTX3(OOC1 IS 0017 LONG .......... 3 OOjlOOM'* PRO'EOURE SUBMTX«| 00i,"00l4l» 1 O0i t '00|«i* t NOOE VARMBELs **£ O.li 00»7001«I* * OOtt'OOjtt* * Ntl] LEO l, I,t,?,,.,,N 00|i00l»<« t f i o u ; o o i o i * dEG'n 00* iOO*l«l° ^TE»] (J,STARTN0DE»ENnNOOr) 3 00»:'00l4i« REGIN 00*;00|«i* »|piJJ»»1» » 00n"00i5'2 Af R,NUMCOLS]l»Ir 0O»,00lT|2 9!.R*1| 00t,00l9|0 ENni 00» t 00l«|2 F*«0 SUBMTXAl « OOAiOOlC<< .......... 3 00»:001C'5 97 pROtEOURE SUBMTX5I MODE-LINK iNTERAfTIONl 2*LtI.JW*LC J.Il-Ntli-Nf Jl LEO 0*FOR All LtI.Jl.LtJ.I3 PAIRS IN GRAPH -iEGTN iNTfGER TEMPI STE^KI.J.NUMOFNODCS) STERt(J.!*l.NUMOfNOOtS) IF TEMPI«LINK(I.J) 4Tr THEN BEGIN *fR.LINKROS(TtMP))lpZI At».LINKROS(LTNK(J.I))l|"2| »fR.STARTMOoE*I-t}l»»l| AtP»ST»«TNOnF*J-Il«»»ll M»R*1» ENDI rND SUBMTX5I procedure submtyai « I AREA CONSTRAINTl I IN I I"- I LEO UPPERROUNO I > /•• I 6F0 LoHERPflUND « I»l I bEGIm sTE^HJ.STARTNOOE.ENCNOOf ) BEGIN AtR. J) I •NODE ARE »St J-STARTNQPf 1 I A[R*l,jJI«-NOOEAREASt J-«TARTNOn£]l ENDI AtR.MUMcOLSl'^MIOHBOAREASt ITtR'l II 4tR*t .NUHCOLSlM-LOWBOAREASt 'TtR-III Rla**2l fND SUBMTX6I PROCEDURE SUBMtxTi TO MAKE TABLEAU L E X'C6R*RHlr PO«'TIvEi N Utl] LEO 5 OOAjOOjClS O0aiO0jC«5 3 OOaiOOKIS OOtlOOtClS « OOaiOOid' 3 00a]0O;0|3 OOa'JOO?«iO A O0ai0O?6I2 00ai00?9iO 00a700? c |J ooa tOoynt * 3 00Ai00?f)l5 oOAt"oo?ni5 00A,00?n|5 00^,00?nl , 00Aj00?ri5 OOa i00?ni5 0OAi0O?0l5 00aT00?h|4 oo 4 ]oo?ni5 OOa t00?ni 5 OOA:00?m5 OOa i00?.*M 5 3 00AiO0?nl5 00Ai00?fll5 98 p i - 3 » 1 1 rN(j suBiTxfi oRO'EDUBE SU8HT»8I » TO COMPLETE TABLEAU FOR GOMflRVt i t J nil) GEO O.T.1.2 H * I IM. j) GEO o.rnR all in«JJ Iw sraph t > utn see o.!»i.?.....w * qEgM <;TE»1( J.l .NuMCOLS"!) BEGIN » :». ji i»*t i E»wi rNO SU8MTX8I pRO'EOURE OBjFCTi I * OBJECTIVE niNCTt-Ni t IN M 1 I •• | -- | •• J > wEIGHTCI)«Nt*J ♦ > OUMiJl ♦ > 0*UfI) « /-- /-» /•' * I»l ALL L t T . J 1 T«l * TN GRAPH I aEGf N OE»l ( J.STARTNOPE.ENONOnF) At O.J] l«*EIGHTStJ-START«OOEl ( FNO OBJFCTl PROCEDURE ZEROAl » CLEARS OUT THE T'RLFAll = EG'n "5 I Sl'H*TX« I SUB u T*2l r, U R * T X 7 I eUB«T>'3| djS-TXIi | 00« i00t3 OOj ; o o ■? a l5 00 4 t'0016 l) OOa t"00l6 \2 OOa iooift 2 OOa 1OO36 12 00* »00l« ■ 2 OOi I00S6 ■ 2 oo« |00<6 2 OOi |"0016 |2 00* J0016 ,2 OOi t00S6 12 OOi t'OOU 2 OOi 700^6 2 00* t'0036 2 OOi 100*6 2 OOi l0016 2 OOi 10037 00« 70039 1 00a tOOlA 3 OOi J003C l5 OOA 10030 OOi tOOjn 00a t'OOin OOa jOoin 00a too^n OOa Tooin OOa • ooin OOA iOOin 00a 1OOI0 OOa t'OO^n ooa rooir ooa toom hO ooa 1OO3M ooa ioo^n OOi :003n OOi t 00t2i 5 ooa tOOaJ ooa lO0a3 OOa ■ 00«1 OOa i00a3 OOa 100431 OOi i 00a 31 OOj .'00«3i 4 OOA ; 00am OOa lOOARl 1 ooa 1 a R 1 1 OOj t'OOapi 5 ooa iOOaf 1 3 ooa : ooan< 1 00a 1 a 1 5 00a iOOan 3 OOi :00ar 1 1 ooa lOOaFI 5 ooa lOO^O' 3 OOA lOOM 1 1 00a lOOM 1 5 99 rNO rlLLMATRlXl XIlXXlXXXXXIXXXXXXXXXXIXXIXXXXXXXfXXIXXXIIflllllKIIKItllKXIXlXXXXXXxXXX pROtEOURE OUTPUTI * OUTPUTS THE TABLEAU BEGIN DEFINE M.NUMROWS »• N.NllMCOLS *l INTEGER ARRAY INT r 1 16*1 | INTEGER I| FORMAT rt(X«»6«l2)l FORMAT F2fI3«Xl »64T?}| I PRlTEfLINCISKIP |]1| FOR Il.l STEP 1 UNTIL N on IN T tI)i«I OIV 101 *RlTE(LINe»ri tFOR T|»i sTfP 1 UNTIL N 00 lNTfIi)l FOR I'"I STEP 1 UNTIL N on INT(Ill»I»((I OIV 10)M0)» «RlTE(LINE,rt ,FOR T,»l STEP 1 UNTIL N 00 INT[In» WRlTE(LlNE)l FOR I l"0 STEP 1 UNTIL M pn *RITE(LINEiF2i IiFnR Jl"l STEP 1 UNTIL N 00 »CI.J])> END OUPUT, XXXXTIIKXXXXXXIXXXXXXXIXIXXXIXIX'XXXXXXX XXXX* XltXIXXXIXXXXXIXXXXXIXXXXI pROCEOURE OuTFUTSOLNl X OUTPUTS NOOES IN SOLUTION RESIN INT'QER TEMPI INTPGER SUMI TEMPI ciNuMROhS-NUNCOLS + STARTN^OEl wRlTE(LINE,«//. "SOLUTION NOOES ARfi"//»)I ^TEPl(I.liNuNOFNODEs) nEGIN TEMPI. TE«R»l< IF AtTEMP.NUHCOLS) EOL 1 THEN REGlN wRITE(LINE.• T)l SUMI«SUM*KEIGMTSf T - 1 1 I ENOl ENOi wRITE(LINE,,$UM)| rNO OUTPUTSOLNl XXXXXtXITXXXXXXXXXXXXIXXXXXXXXXXX'XXXXXXXXXXxXXXfXXXXXXXXXXXXXXXXXXXXXX PRO'EOURE GnHORYii X X ALGORITHH ?fr3» NTTH wjL^nN's CUTS I FROM, X COLL^CTEn algor' t hm^ from cach X PAGES 263A-P1 ,P?.P3 X nEGTN DEFINE M.NUMROWS «■ N.NIMCOLS •» INTEGER I.«..i > L»R»C»T.S»L»MRn»NIJMi lAMrdAOEnOM , ROOLC'AN NULL.NrLAGI OOt ,00*?l3 FILlMATRI*(00A) IS not* LONG 2 00?i00n6l0 00?i00o6l0 007 :00f|6 10 00?iOOo6iO 2 OOjiOOnAtO Output is segment noons oor tOOnoii' 00f,00o( i« O0r,00nl i* OOFtOOnl 1* OOfiOOoI >* OOf iOOpl »« 00f]00(16i5 ooFlooor ! 1 oop 1 00 1 r * 4 oof ;oo?5 |0 00f,003Ti» O0E,"001ct i OOf lOOlC '' OOf iOOSA I 3 OUTPUTCOOE) IS 005f LONG 2 00?t00r>6«0 00?|O0oAl0 00?i'00n6l0 00?t0O06'0 2 00?i00nftl0 OUTPUTSOLN IS SEGMfNT oOOftF OOfiOOqOIO OOfiOOoO«° OOF700nO|5 OO r jOOo6|2 00FT00n6l2 3 OOFtOOoTlO 00F|00n8|2 00Fj00r>9|2 « OOFiOOnAll 00Fl00l8ll 00 r j00il|2 « oofi'ooiai2 3 OOfTOOiCI* O0FiO0?AI* 0UTPUT5OLN(OOF> IS 0031 LONG 2 00?i00o*>0 00?i00n6t0 00?i00n6»0 00?r OOftAiO oo?7oon*»o 00?,00o«|0 002:0006*0 00? ,'OOnft tC 00?:00flM0 ? 00?i00ft6t0 G0MORY1 IS SEGMENT flOOtO 1 ft i" n 1 c oiftlrono tc 100 L*B r L LI I LABfL Ll»L?iL3tLS.L*»Lr,$T0P.L«» L»i INTEGER PROCEDURE EUCL I "U U. V 1 1 VALUE U'Vi INTEGER U. V I "EGIN INTEGER Hi LABEL L««L<»» NI«ENTIEH(U/V)| If w»v gth u Then rEgin WIM-1 I GO rn LB' FNDl IT M»XT!*E IF (CUMT» M r*TlME(2)'Tl*'>"AX T I H F THEN fiO Tn STDPI FOR I l"l STEP 1 UNTIL M 00 IF Atl.N) LSS THFH «Fr.tN Pl.II r.n Tn l?i Evn» GO TO STOPI FOR Kl»l STEP 1 UNTIL N«l nn IF *f ». f 1*0 TNFN G" TO I 4| GO To NOSOliiTIUni L * -K i NULLI.TRUEI FOR Jl.H*J STEP 1 UNTIL N-i no If *t».JiTlO 010|00»Bt2 1 V ? B : 5 « 010:005615 3 010:00?9I2 010,00?t|0 01 i009R t » 3 0l0t00?C 1 1 OlOj 00?ni 3 101 ENUI L*MBD»rEN0Mi«l I FOR J I ■ 1 STEP 1 UN IF A[R,j)<0 T BEGIN for .*! L?i eu r ueLio THEN End NULL 1.L» TIL L»ltl*l STEP J UNTIL N-l 00 HEN ll»0 STEP 1 llNTu S-l DO IE • [ I , J i NEB THEN GO TO L7» TinEUCLIO(»tS.j).»tS.Lni IF f T*»rs»Ll"»f S»J1> ANO (T>1) THEN RERTN p. SI M"U1I TF T,»tI,L)«»tt.jl THEN GO TO L6 ELSF IF T*A t I.Ll>»t I, J] THfN T t -T-1 | ENni -A[R. Jl*L»HBB*OENnM » LAHPDAN||H»T THEN BEGIN LAHPO«NUM|..AfR.J]l LAhmO*DENOMI«T| ENOI ElSE •■FALSE! HIOAnENOH.LAMPPANUM) I IF TO UNT n PEGI Cl"E IF S LIOI IL N« N UCLt »ACR THE 1 00 D EnPi Lloi jF S.LAH"OANUH < T»LAMBnAnEN"H THEN BEGIN LAHB0«NUM|,IF NFLAR ThEn 100*t-1 Fl »E T| LAHB0»0EN0hi«IF NFLAG THEN 10o*S FLSE SI ENOI FOR Ji.l STEP 1 UNTIL L - 1 » L * 1 STE° 1 UNTIL N Pp BEr.lN ei»ir lamboaoenoh nEo o THEN EUClIDCArRi Jl*L»MBnADENnM.LAHBDANUH) ELSE IF »tR, n < TmFN •! El«F Oi IF C NEU THfN FOR Ii.O STEP i UNTtL M 00 OJOt oi r>, 010 t OlOi 010 t 01(1, 010! 0101 oini OlOi 010 i OlOt 010: 010,' OlO; OlOi 01 oi 010, 010 t OlOi OlO: OlOi 010, 010, 01 i OlOi 010: 010: 010, 010, otoT 01 Oi OlOi 010, 010: 010: 010: 1 i 010, OlOj OlO- OlO: 010:" 01 0, 010." oi o i oioT Olo: 010: oloj 0l0| OlOt oio; OlO," 010." 010! OlO? 00?F 00?F 0010 0030 OOiO 003F ooir 00a« 00«* 00a R OOaF OoaF OOso 00s? 00^5 00S5 00*9 OOSR 00«B oosr 00«;r 00*0 00*1 00*1 00*1 00*1 oo*s 00*9 OOAa 00*r 00*0 00*0 00*r 00* r 0070 OOra 007* 0077 0079 007 t 007B 00»B 0070 OOrn OOrr 00*0 00*3 00«* 00** 00o3 009i 0093 0096 0099 009s 009B OOor : 2 102 » 1 1 . ji i.*r t . Jl*c**r t .D i EUDl GO TO 111 STORt TtNl«(TlH£,J)«T!M) 0!V «0| tnTtnEi.(TlNE|3)»tOT!i»E) olv 60| t N0 GONf)»Yll tun tint |llltIIIIIUUtlUllllllllI1>lll>tt> MRITE.TIM) I writeuine^M/o Ti»r !" srrnNo»«.iio>,iOTiME)i mrite(iIne.«"NumrEr or »Ivot. rIvotnumii IE CUMt IME|.CUHTIHE*T!N«»0 GEO MtXTIME THEN GO TO STOPl GO TO NE«Tl ilTIINI «>i!te(line.<"n0 solut i " - > ) i enoi iiiiiiiKuiiiitiiiiiiiiiiiiniiiiuiiiiiiiiiiitititiiuiimiitsiiitiii STnRi tun, i NUMBER Of EURO'S DETECTED • 0000. NUMBER or SEGMENTS • Ol». T0T4L SEGMENT SIZE • O07?« KfiRDS. CORE ESTIMATE • O0?33o nORDS. PROGR«» S I ?f . 000509 C»»OSi 00?5'5 SYNTACTIC ITE"S> OP0O«« OISK SEGMENTS. pROgR'h fUE n«mEi O p TlM«L/*RE»i COMPILATION I|<[ • 00001« SECONDS El»PSEP. 00000* SECONDS PROCESSING. NO^OL nEkT, 01 n , 00?n i 3 1 j « 5 1 1 1 010|00|8|3 01 n lOOt? i o OlOiOOigi oio;Oo. p,,» 010i00nri2 GOHnoTKOlOi IS oORa LONG 2 00?lOOfl«IO 00? t'OOr.6 lO O0?i00nt 10 00?Joon*i« 00? : oonr i2 I 00?t00o9l0 00?iOOnRI« 00? iOOo' ■ 2 O0?i00n«>0 OOjiOOoi'* oo?ioonri l 002:00|0ll 00?,00?R|1 00? ,00191 1 00? lOoir i2 OO21OO1C 15 OOjiOOlClS 00?,00«2|2 00? t 000?l2 8 00?iOOnai» 00?t00a4 l» 00? lOosai* BLOCK(002) IS 006n LONC, D»Ta IS 00?5 lOnc, ST»CK ESTlM»TE.00P(Ml5 103 APPENDIX B HEURISTIC AREA LOCATION CODE 10U ■•ijRiiniir.HS I'ftrnn ai r,ni cflM»ii.rp LFvEl. 1 1 ,o?.O0,0l s. FRIOAYf 06/30/f?. 09|3* AM. ApFAZ-iEllRTSTlr/ntf lErT o t r. i n • HJ t E TRUf PI) -EG'N t TUNING o»r»mETFRS * pEFTnF mAXMiimPaRCElS" S7* «, 1 THE MAXIMUM NtlMpfR fir PARCFLS Al L OwE n»USFD Tn « UEMTNSlriN ARRAYS uAXMilMCNSTRNlS" 1 A I. * 1HE MAxlMIIM NUMpfR Of CONSTRAINTS uAX«l)MNP.ORS> u *. r THf MAylMUM NUMBER pf A0|ACENT luflSHBORS THAT A * PARFFU C»N HAVE -AXMi|HP|lO()LES"MAXNIIMPARCFLS "IV ? fl I THE MAXIMUM MUMPER OF PIIOOLFS EvPECTFO »il*t»«*»»»JUl!T*»t»l»!S**»t*I»»»«»«i:X»1t*f««l*»*XI»»tm***»Ttj;»l;»»»ttX»tt1i nEF'NE L!nE»!>TaTIPN tl FlL r STsTIPK ( KlVn»RFMPTE,MAy l 'ECS?7E,lZ.MYllSF,T0), FlL r DI S"< < KINP«niSK,MAXPFCSI'E«la,BLOCKsiZE»«20)l mR»AT F1(.l1>Xl,lI,yi,i2,X9.ri9, )?) | INT r GER ARRA» T«P1 f ! tMAXN|IMP»RCEI <;1 . TMp2f1|MAXNUMP»RCELSl. T^VI iMaXNUMC^StRNtS.I |M,xNUmPaRCEI-S). TMP1(1 IMfXNi|MpARCELS.l IMAXNIIMNCPPSI. r-psri iMaxnijmcvstantsii iEr'\ir ■ T[OAoCELNUf I* T"P| C PARCFLMIMi a, % AN ARRAY THAT HPinS THE INTfF.ER ^FIGHTS tNOEYFl) t ny THE 1'iTFPK'AL °AHfF| muMPFRS oUU">LFNUMfPAi0 OO3 . OOoOtO O03',00o0|0 003 tOOoDiO 003l00ool0 003t00o0«0 003t00o0>0 003j00o0|0 OATa Is 000* LONG 003|0000|0 PATa IS 000* LONG 003f OOoOtO 003,000010 003 ; '00n?|0 003t00o«l0 O03;0007tl 003;00PAf2 O03;00or|2 003.00o r s2 O03:00ori2 003,00OC:2 003:00or :2 003iOOnrt2 OO3,00or-.2 003,00o r i z O03:00oc>2 0O3iO0oCl2 003;OOor«2 003,00o c ,2 . 105 X FOR EACH PARCEL. THFRF IS A COEF. FOR EACH X CONSTRAINT (FIRS' INDFX) OVfp EACH PARCEL (SECOND INOX) pHSrNUM]" TMP5(NUMJ *. X A ArrAy INOExEn *Y CONSTRAINT NiiMOEr THAT HOLDS ThE % RIGHT HAND SIDE i'ALUFs THAT FACH CONSTRAINT MUST BE X LESS OR GREATER THAN NBO*[NUM,PARCElNUM]« TMPAfPARrELNUM.NUH] ft I AN ArrAy HOLDING THF INTERNAL PApCEL NUMpErs OF THE * NEIGHBORS OF PARCEL PARCELN||M (SECOND INDEX) INTEGER COUNT' t CURRENT INDEX TO THE WATERLEVELS ARRAY lNTrGER NUMOFPARCELS.NUHDFCNSTRNTSfPRTlMEl X RESPECTIVELY X NUMBER OF PARCELS TOTAL. X NUMBER OF CONSTRAINTS ENTERED. j; PROCESSOR TIME USED Tn LOCATE A SOLUTION (DOES NOT X IN C LUD E nATA INITIALIZATION TlMF) INTEGER ARRAY HATERLEVELSC 1 I "AXNIJMPARCELS 11 X AN ARRAY HOLDING UNInuE HEIGHTS ORDERED FROM X SMALLEST TO LARGEST. THF VALUES ARE THE SUCCESSIVE X DEPTHS OF THE WA'ER LFVELS INTEGER *ATERLEVELSPOS» X POSITION OF THE LAST FNTRY IN ThE NATERLEVELS ARRAY INTEGER *ATERTABlEi X CURRENT WATER DE»TH INTEGER ARRAY PDLlONuMt I IMAX«UMPUDDLES 1 I t CURRENT ID NUMPE» Of FACH PUDDLE. X THE INDEX INTO THE ARRAY X HAS NO SIGNIFICANCE INTEGER PDLIDNUMPOSI X POSITION OF THE LAST ENTRY IN THE PDLIDNUM ARRAy INTEGER NEXTPUOOLENUMl X THE LAST PUDDLE »D NljMPER AssIfiNEO TD A NEW X OR COMBINED PUDDLE INTFGER ARRAY SnLNS t H MAXNUM'UODLESI I * THE PUDDLE ID NU«rERS OF THE PUDDLES THAT X MEET ALL THE CON'TRAInT^ INTTger SOLNSPOSI X POSITION OF THE LAST FNTRY IN THE SOLNS ARRAy INTEGER ARRAY Tmp7 (0 1 1 2»MAXN JMCNStRNTS-11 I DEFINE CNSTPNTNAMFri l«TMP7t ( '2*( t-1 )) 1 II | THE T2 CHARACTER sTrIngS CONTAINING ThE » THE CONSTRAINTS FNTERFP BY USERS INTEGER ARRAY TMP6[1 IMAXNIIMPU5DLFS.1 iMAXnIIMCMSTRNTSI I nE F 'NE cSUMrPDLlDNUMlNDEx.CN^TRNTNUM]«TMp6f pDLlDNUMlNOEx. CNStR^TNUM) »> X THE SUM nF THE COEFFICIENTS nF CONSTRAINT NUMBER X CNSTRNTNliM (SECOND INDE*' FDR EACH PUDDLF (FIRST INnFX- % INOFX INTO THE P^LIDNiiM ARRaYI I Ar'l STOPi BOOLEAN S0LM * IRllF WHEN A PUDDLE HAS qFEN FOUND THAT MFETS ALL THE * CONSTRAINTS nEFTNE STFP1 ( I .L.U)»FOR I 1 -L STFP 1 UNTIL U DO A| »»«*»*XX»XXX*X*X»**XXXXXXXXXt**1l*r»ITt**tXX***»HlH*X*X»ttli»l[t*»*XX»«Y* OO32 00(1C«2 003, 000CI2 0031 oooe«2 003, oonei2 003 OOnci 2 OO31 OOoc«* 003 OO0C«2 003 000C>2 003 000C|2 003 OOoct 2 003 oonc» 2 003 00OCI2 003 000C«2 003 000CI2 003 OOoCl2 003 000C»2 003 000CI2 003 000Ci2 003 00n r i2 003 000CI2 003 000El2 003 00ori2 003" 000Et2 003 000F«2 003 000FI2 003 ooori2 003 000FI2 003 ooori2 003 00l0»2 003 OOlOl 2 003 001012 003 10010*2 OO3 001012 003 |0010«2 003 |0010«2 003 |0010«2 003 i00l0«2 003 ,00i2|2 003 [00l?|2 003 j00t2>2 003 I 00 1 2 1 8 003 t 1 2 I 2 003 |00l«|2 003 ,00l4 t 2 003 t00)«|2 003 t 00 i Ai2 003 ,00t7|3 003 t00l7i3 003 iooiri3 003 i00iri3 003 i00l7|3 003 |00l7|3 003 •001 71 3 003 ; 0017|3 003 iO017i3 003 }00l7i3 003 t 00l7«3 106 i-wn-f-Hilof FG'N rOp'TE jMR* Y lillliH 7FrATAl < ,ufolF<; usFp FPR NAptc; msEr MIMbFp.FTLI f'AMFi; rnk PApCL f riMr.HTS amp rilNS"»»T» l TS.»Nn THF RIGHT hAmO SinE v ALlir S , for CONSTRAINTS, THru AS";EMp|f8 THE pis* FHF TITLES * uNp HFAr.s ThF oa'A into TNTfpNAi DATA STrucTiirFs. ♦ ALSO SFTS HP NEI'HBpR AOlACFNCT nATA F I L f T I I L f r o I 1 1 1 I / nN ARRAY IN WHtfw Fl|F TITLES ARF BUILT B PF ILETITLF: FILF N4*E ["» 1 11 i v AN ARHA„ USFP TM HPl P STATlpk' ImpllT e W -i * E -EG'* TILE oEP L » RI T F rF a"*( oFUE BEP W A CNN I PURE U ITISLlZFrlLETlTI r l * 1MTTALT7FP ThF riLFTfTir Array TO % "NABJS/oiSEB NHM»Ffl»'» Tn CpNFOeP TP THF PBEFI" * ADPTi BY NAP1S T -1 fltF NAME* QlifFN IN TuF i *apts output vfh* TlTLFI.P0INTFB(FILETITL r 1» CE PHIETITLFIPFILETITL 1 " Hy »»MRIS/»I (STATIP'«. ) I ST»TlMN»«A1>tPriLFTTTl.FM TITLI l-PF I L.ETITI F*4| CE PFILETITLEIPF!LETITL«" BY-/-I NITIALUEFlLtTTTLFi pBp-EOURE sF lFILETTTLEl » CUMPLETFS THF F I (. T T T T 1 C ARHAY GTvINC, THF FORM Si "NARIS//^FTLF NAME t'SEO (h PUTPuT STMT,, * ANp USES Tut. PES 'LTlK'r, F'LE nAmF TO SET ThE * UIjK FI| F TITI.F r E G ' V pEP.ACE PFIiLTITLF By POTNTF ' ( F T I FN A«E ) UNTll.«" ","."1 REPLACE r>IS».TITlE «Y PP I t.TF ' ( F 1 1 f T T TLE i , rNr, sFTfUFTITlFi lNT-r,pH PHOCtOURE I'ABCFLNHMI 3P,sFr ) I * *FT IWNS TMr INTE B NA| PARCEL MUMrfR UA$EP ON TME ■ iUPVFV Qi|tRTFR«r iahtfp SFCTlPN AND SFCTIPN PATA 1 iiUTPHT FBPM T'*F '»»!< sySTFm >'AL '( n.SFf . TNT-i.ew UCfSLC; ' E r, t n >AL 'E ARRAY i< 61 pAw-FL''UiM. I( s,[rppw./i»(;f)Rpwro-n»?ii* , ;Fcrpi*« 4 ciocriLiwPT*ji 00l,00i 001.001 003:001 003 .001 00->|pO( 003:001 003 :001 3 001;001 Initial wf nATA is segment 00 00 00 00 00 00 00 00 00 00 00 4 00 00 00 00 00 00 00 « 00 00 00 00 00 00 00 4 00 00 00 (j 00 00 00 00 00 00 00 00 1 00 PARCFLMJM IS SEG DATA IS paTa IS PO paTa IS 00 00 00 00 00 OOP OOP OOP OOp OOP OOP OOP OOP OOP S,00o S:00p S;00o ■>:00p OOp OOP •mOOi S:00l S ; 00? 5;00i S : 009 ■>:00? ^|00? 1.00? ■;.oo? SiOO? ^:009 S;00? •^sOO? ^:00? "i :00? •i : 00? S :00? S:OP? S:00? S : 00? * : 00? S:00? "FNT POOF OOlP 7 :00n OOJp 7:00o r : P0n 7 .PPp 7:00o 7 :00n 7 .000 7i : ?t- 7 :: 7j: 7: 7: 7: 7:^ POOOS i2|0 2)0 .?:0 8:0 «tO 4:0 a iO a i o a iO a iO (■0 4 10 ft-0 9.1 f:« m2 F«0 It? 4>4 4,4 a i4 414 4|« 4,4 a:4 414 8«l A.3 AI4 4 l4 4:4 A>4 A t4 Al« a:4 Al« Al« 00007 LOur, LOur, OlO LOW, OtO o:0 1,5 H5 T« 7,2 107 FN|1 PA«rFL Niimj pwn'F.nuof gf i «t s » * f(E4r,S ThF pancfl * T * TiiTPuT from n*r'S an d *i.s° * UROFRS T H F IINIQIK" WFTfiHT* FflR ThF MTEPLFvELS ApRAY ■'EG' J |M r GFR I . J, K J rEA'. 01,0? I » KESRECT1VFLV. » i/A-i/1 section ^ata. t 1/4 SECTION OATA TNT r GFR TEMP.sfri I SEC IS FnR SFCTT1N r>ATA *ET THE Nl'MpEH nr PARCELS TO RE CrNSIDFRFH NUMTFPARCELSI'MAXNUMPARCELSI r.ET DATA FDR ThF PARCELS WEIGHT* IM T IALT7EF1LFTMLEI rLO'EtniSt- )» wRI'ECSTAT InN. /•"!". 1«n*"> ) | EAi(sTATION»l''«FlLFNAHEr«ni SETMLETITLFI PEA->(nISX)l STE'1 ( J. UNtlHUFPARCFLS) RESIN REAn(0!S".Fl,0l,6?,SEC. T FMPi| WTtll^PARCrLNllMtCllO^fSipl.UFCIll'TF^Pl FNm rLnSI«*ATERLEVFiSPOs»l 1 I "NT Ml FlSF TF MTFRlFVfl «f Ji rl* «T fl) thFn .,Ff, >N rno K l.w»TFpLFvFLSPOS STEP -lUNTTL J fl" WATTRLFVEl sf K*l ll»KATFRLEVFLStKl> *AT«-RLFVFl«;f Jl l.*Tr I u wATFRLEvFLSpOS|.wATFRLFvElSpns*li rw" ■ FN. II rNfi '.FT - T $ : I'RnvniiRF GrKMtTRNTsi i w. 'FBI'S nSPfc FOB rn»'A|« 00*.00?A|4 OOSlOOjAll 4 00*tOO?At« GFTKTS is SEGMFNT OOOOA 00a lOOnO SO ooa iOOooiO 00a jOOnOiO 00a jOOpOlO 0OA:O0nOlO 00a ;OOoOlO OOa tOOnOlO ooj :Oonoio OOa :00fll |0 ooa sOOol iO 00a tOOnl l* 00a :00n3 iO 00a i 00n« i 5 OOAtOOnAl? 00a :00on I* OOaiOOoEIZ 00a : OOi 1 i 2 OOA : 00 | 3 J 2 5 00A:00l7l5 OOa :00?C 12 00( t 0031 |0 5 OOj .0011 ! 3 OOa |00i?l5 OOa :003?i5 OOa :00l3l3 OOa.OOiSiO OOAtOOl? |0 5 OOs : 0019! 3 00 S : 00i» tl OOa ; O0im2 OOa :001FI< OOa : 00aPi2 OOa :OOao I 1 00/- .00«7i0 6 00, ,OOo»|0 OOAiOOaf iO OOa :00aF)2 OOa .00*1 |S oo» .oo*ii l 6 00- ; OOsJi 1 5 OOfl r OOlli 4 fit T»TS(OOA > IS 0050 LONG 4 00*:00?i il 00*.00?A |4 00* ;00?A |4 00* .00^8 :« 005:00?» 14 4 00* :00?» |4 108 GETcNSTpMs IS S pnj i am TNT «h» pri f L T H V A li f-r.E" son l I * I i.NA mF. I A J N, "JPHPBF ; SFT TO 1 IF -1FS C THM' nP t r. I ' A L TO" CONSTRAINT s fT Tn -1 IF "GpfATFp THAN pp EnuAL Tfl" CONSTRAINT uSE AS A MULTIPLIER Tp REVERSE "Cf" TO "LE" CONSTRAINTS * i.E. A r,r H TS E"lll| AVFNT Tp -A LE-R oEA TNT ,RI • r,ET -PI pEA SIE T R i A r, A I N > t*V < r,ET . "1 .121 fr.FP TEm TECSTATI FIRST C TE( STATI i(ST»TIO •if I.l.M tE r; It 1 V . SEC . TEmpI i PN," "">)I PNST9AINT PN.)« N. 12. FILENAME r .)>» ArNU u CNSTpNTSl » pt f PFILENAMEl»PniNTEP(FILF , 'AMF>; r CONSTRAINT TEXT REPLACE POINTFRfCNSTRNT^AMEr T 1 ) RT PFIlENAMF Fpp 12 WtlRPSI rRMlNF VALUE OF Sc,N SCAN PFllFNAMFiPFILFNAMr UNTIL fQL " "l SCAN PfILENAMEiPFUFnAmE UNTTl NED " "I IF PF1LEN*ME,-LF - THEN ' Til, TEMPI i«P«RCFl k.|iM Sf T » .1 I CLn^f RICwT SCAN pFA ,

1 t MOE vALl'F.An HIST IF "fiF» CONSTRAINT NAME |PFH FNAMF l|MT T L NFO « » | amE.. TFmPI , m ♦ T r m p : VTSiaNIIMPF CMStBNTS*1 I A1NT inN .< // . "WHAT IS VfHIB NEXT CPNSTRA I P 'T?"» nP IF YPH HiW'E kin mibF TP F'lTI H". ". " . . «"n*»> ) ; Tm . t ? . F 1 1 F»jAM r (*i). I FIlFkiAMF )s«Nl« fill Tn Npk.npF I EGkfnt noonc 00c OOnni 00c OOflO OOr OOPOl OOr OOnoi 00 r OOoOl OOr OOoO 00c OOPO OOr OOPO 00 r OOPO OOr OOpP OOr 00P1I i 00c OOpl 5 OOr 00P5 3 OOr 00p5 3 00c OOPR OOC 0010 2 00 r 00)01 2 OOr 0011 00c oou 00c ■0012 3 00c 0012 3 OOC 0015 3 00c 001? 3 00c iooir 2 OOC 0019 I OOr |00l9 4 oo r 001c I oor loom b 00c i00?0 I 00c |00?1 3 OOC |00>3 2 00 r ,oo»r 00c oo?c 2 00c 1002c 5 OOC |00?C 5 OOr ;oo?f 3 OOr ,00?r 3 oor iOo?r 1 00c i00>« 1 OOC •0014 1 00c :00l6 4 00c t 00«C b 00 r :00^2 5 OOr 00*3 2 oor :'00*4 4 OOC :00*4 4 OOr 00*6 3 OOr 00*4 1 POc :00*ik 3 OOr :00n7 5 OOr ;00*7 5 OOr tOO*9 14 oor ]00n9 4 00 r lOOtp 2 ooc :007? 4 00c :0P?J |4 109 fnpi ND-npF • FNO GETCNSTKNTSl pRP-EPURE GETNBORSl * IhIs PHfleEoUPf S^TS T M E pAcFt NFIGHBOR OR Ap,|ACENcY * UATA BY LAYING O'lT A TOWNSHIP In CORE ANp X NUMBERING THF PARCELS FROM i TO S76.LS.rT TO RIGHT, AND * TOP TO ROTTPM. T"ESF NUMBERS REPRESENT THE INTERNAL X PARCFL NllMRFRS. THE TpHNSHIP IS ASSUMEO TO HAVE A » PERFECT GRIP STR'.ICTllRF WITH NORMAL AOJACENCY pE l < TlHM- * SHIPS. THIS HAS ^ONE TO SIMPLIFY OUTPUT, THE ALGORITHM X THAT FINOS SOLUTIONS DOFS NpT OFBFNO ON THE P«RCEL X STRUCTURE REGULARITY ASStlMFn HERE. oEG'N INTEGER I. J.K.N. TEMP) I INTEG nEFtN NlaSQ STE»> Hi" 1 ! STE'l ER ARRAY TEMPr0l(S8RT(NJM0FPARCELS)*?)*«2»l H E TtI»j)"TEMPt(N*2)*(I)»,)l fj (»T(NUMnFPApcELs)J ( I . 0. N. 1 ) TtI»OJl"T( T.N+1 1 I "Tf 0» I 1l»Tf n*I iHliDl (I.I.N) STEPKj.I.n) T[ J. J)I«K|«K*) | STE»1(I.1.N) STEPl(J'l'N) BEGIN KiaOl TFMPl I.Tf I.Jll Np.0R[KiaK»1.TFMpl]i B Tf f-I.JJI NPURtKI"K*l»TEHPlll"TfT*l'jll NBURtKI"K*1 .TEMPI) <»TtT. J-l 1» NBU«t l 'HORSl FNf) INITIALUEPATAI I tftxxxxi(«x*txyxx»xx«xttti*t«t*ixr«ttf»ixiiMXtlxttSltttxxiifxx*xstitxi PHO'EOURE nuTPllTITSl % JUMPS PARCFL .iEI'-HT To USER STATION -'FG'N TNT^GER T.J. TEMP. N| wl «S'JRT (NUMPF PARCELS M t{ K' laOl *RITE(STAT lpN»«//."THE PAPCEl "Ftr.HTS ARfl".//>)l STE-M ( I . 1 .M) >FG [i «Hnt (SI ATTMN.O«Il>. OOciOOTAI 1 i 0Pfi007Bl3 OOClOOTM 3 GETCNSTRNTSfOOC, IS 008p IOnG « 005tOO?AI« O05i00?Al« 00"S t 00? 4 ,« 005,00?AI« 0OSi00?4l« OOS,00?At» 005,00?A I* 005,00?A«A 005,00?A|« O05 t 00?At« 00;,00?»lA 00S,00?A|» A 00*t00?AI« GFTNPPRS IS SEGmfNT OOOoO OOniOOOOlO OOp^OnAtS 00ni000««5 00pt00o«i3 00p|00ft6i3 00n t 00l6|5 OOPiOOl 7t3 00p ; 00)7l3 OOPjOOlCJO OOp s 00?S i 3 00p,00?5t3 OOp |00?A lO 5 00p|00?E«3 ooptOO?rii 00p,00l?|0 OOP tOOi'l 5 OOP iOOIO '* OOP |00«3t3 00 p ,00«9|2 5 00p s 00«»j2 GFTNRPRS(OOD) IS 0050 LONG A 005:00?A«R 005 ( 00?A|A 00«;,00?a|2 005 t 00?ri0 005iO0?r «A IS 003p LONG OOliOOlTlS 003:00l7i3 003:00) 7«3 003t00l7»3 3 003:00)713 OliTPllTwTS IS SEGMENT OOOOF POr rOOOOiO OOr :0001 I A 00F:0Oo2l2 OOr tOOpTl 5 OPFt'OPpTiS a P0F|0OnCl2 NITlALlZEPATA(005i « 3 110 STFPHJ.l.N) WTrTFMP|«TFMP*1 ])l FNni J uFm<-mBEk T I Kt KwfN START LOfl'INf, m» SOl.nT InNS dRT tMFl.TIMf (?) I FNO OilTPIITKTb' oRO'EnURF NF*ThATFRTARir I * SUPPLIES THF wF-X» HatfRTaBLF sEGTm » ("HE** FOR NH SflLUTinN TF »nUNTl«CPUNT»l GTR «ATFRLtVEL«PPS TMFN RF'.IN *PlTFnlNFf)| PRT IMFI"(TIMF(?)-P»TI«F) "TV AOI wPITEf LINE,. PPT I M£ ) I Gn Tn stop, EM'I ■ ATPRTABLf l""*TFRUEVELSfmilNTl| rNn mexTwATektarlEi oHn'EnUPE L. CATFPUOnLFs' t OETFRHjNs WHICH 'ARCHS FLnflOFO AND * AGGREGATES THFM 'NTn PUnnl,Es (I.E. AREAS) -EGTN I AR^L NFXTPAKC ELI 0UTPUT»TS(00F> 3 INTEGER I. J.KiPARCFL.TEKPI i TNTff.ER ARRAY TFHPf 1 I MA * NIIMN °0RS 1 , i ncATFPunnLEs is oRn r E0URf NF*PUnnLF, « CREATES A NFW PU1HLF MAnE Or A SINGLF PARCEL ^EGT N DU0iLENll M rPAKCEL1 : »NFXTPIi0n|FNUM| = NEXTP|innLFNIIM+1J DDL , ONllMCPl)lIO N, lMpnS|«pniInN»Mpn« 4 .lj l «NFi,TpuoDLENUl'i rNO NFWPllDDLt i oRo'rnijRE CtiW-IMFPUnnLESi » COMBINES THF nFw|.V Fl.OOnEn PARCF|_ KITH A L L ThF t EXISTING PIJOIUFS THAT NFTGHonR THE PARCFL ANn * blVrs THF EXFANflt" p linnLF A NF* TO Ni|Mb(rR i ET, T H a D n •_ F A N F I R 5 T I tEmoqpArIly ASSIGN NF NumrFR mExtpijuhi FNiii.MFXTPunni fnhm* 1 1 SlF. n 1 f I, I .NI'MOFPABCFl S) STFPKd . 1. J) I< PllinLFMiMfll EOL TFMPfKl then piinruFNM u [iii r NfXTPiinr)LrM)Mi nPRATF POl.l(«VIIM ARRftv By GlV'NG THE ID NIlHBFRS OF THF rnwaiNEn PuinLFs THF NFW Plin^I.E i'i|MBFR «TE°1 C 1 . I . J) CnMRiNEPUnnLE.s IS OOF, OOFI OOr, OOF! OOF: is o 00? t 00.1: 003: 003: 003, 003, 003, oo?; 00?, 003, 003, 003, 003, 003; 003i 003, 003, 003, 003, 003i SEGmE 1 i 010: olo, 010, olo, 010: 010, 010, olo, 010: 010, 010, 010: OlOi 01 0:" 010:' SEGmf OH',' 011 • Oil: Oil : Oil:' Oil: Oil : Oil; Oil , Oil , Oil t 011 : 011 , OOnF 0091 00?? 00?? 00?3 Off 00)7 ooir ooi r ooir 0017 0017 0019 001 A OOlF 00?? 0030 0032 00?2 00?4 00?7 0037 0037 0037 0037 0037 « 1 1 5 ONG 3 3 3 3 3 3 2 2 5 3 4 2 2 4 « 4 4 4 4 NT 000)0 OOOO'O 0000:0 0001:« 00ol:« 0001 54 0001 14 0001:4 00n?,0 OOO'i 5 000»«0 OOOfllO OOo*,0 OOnHiO OOOMO 000«:0 OOoA «0 NT OOOH OOoOlO OOnO'O OOoOtO 00o?:0 00o?i0 00«2lO 00o3l2 0003, 2 00n7»5 OOOFlO 001 1 15 001 1 >5 001 1 '5 Ill stfp 1 (k , l ,pni. inniiiMPPR) IF PDLIONUMtK] FOL TE"Prn thFn pnLinNUHrKii»NFKTpunnLE»iiiMi CLEAN UP POllDNUM ARB4Y HY F L T M 1 M A T t NG nilPLTTATE PUnDLENllM ' S * I »1 I J I » •« I rlR*Ti*TRuE» STE°1< I. l.PDLIONUMPns) BEGIN IF PDLIUNU 1 *! I 1 NFS NFXT°UDni FNUM Dp FIpsT THEN BEGIN IF PniirtNtlMfli E"l NEXTPunnLFNlIM THEN first<»f»lsfi pnLinNiiMtKii»»nLinNiiMtIli * l«K», I END El SE Ji.J+il ENni pOL T ONUMP(isi«POLinNiiMPns*Ji FNfl COMbINEPUDDLESI COMBlNEPUUnt FS<01 1 ) sTE°l(P»RCELi 1 •NUMOFPAHCf LS) BEr.I* « FIND NF« PARCELS UNDER "ATFP 1 IE WTCPARCFLI MF1 W»TERTABLF THEN fin Tn NEXTPARfELI * CHFCK IF NFIGHqORS BELONG Tfl punOLFS » SAVE THE PUDDLE ID NHS. IF ThE* DO Jl.l I STFPI ( I.l.HAXNllHNBDRS) U TE"PJ |.NBDR[ I .P'RCEl 1 GTR THFN IF TEHPtJ] «»PUDni,ENl|MrTFMpt 1 GTP THFN oFfilN * CHECK IF ID NiiHBEP WAS SAVED BEFORE 5 x I •) I WHILE TF^PfKi NFO TFHPtJJ DO KI,K*1| IF K FOL J THTN J | - j + 1 I FNOl IF Jl-J-1 FOL 5 I NflGHBfiRS nnNT BELONG Tn PUOOL F S . SF T UP Nfw PUnnLF THEN MEJPlinDLF * CI'MHIIOF ALL PnnnLF« Thit NFIf.HBOR PARCFL ELSE rnMBinEPimnLF« i Nf 1 1 n n i_ r 'HE ppnrFDUPF Chfck if ml tuf > (DNRTRAinTS ARE "FET, IF n>oF OR HORF "UnnLEs SATISFY 1 ,.(INSTRA!NTS TuFfi A snil)Tl!l K i HAS BEEN FOllNO AMI PROCFSS- i JNf. STn«^ •IJi'v |An"LNF»TP|'ini.r: 3 f hECCNSTunTS IS lNT r iFH "AMflL.t.J.K, Fl'H f AC" mi-STHAINT rlNO THf SUM pF THF ffiN^TPAIkiT rnEFIrlfNTS 01 t . 00 M I 5 01 1 |C0)M2 Oil |00irt3 Oil I00?0l2 Oil i00?0l2 01 1 l00?l to Oil |00?1 l« Oil iOO?2i2 Oil |00?2l2 01] |00?615 Oil t00?fil2 Oil :00?9l2 01 1 ,00?r |0 Oil :00?Fl3 Oil i009Fl5 Oil iOO?Fl5 Oil ,00111* Oil ,0032ll 011,00331* IS 003d LONG OtOtOOOAtO 010|000"lO OlO-OOOSlO 010 lOOor I 3 010 lOOpc l3 010|00ori3 010iOOpFt3 OlOiOOOFl 3 OlOiOOOFI 1 0l0,000F|l 0l0,00i?|3 OlOiOOl Si 3 010,001ft l2 01 n i 00 i ft i2 OlOtOOl TtO 010,001 p|3 OlOiOOlFI 1 010 ,00?0l3 010,00?! |5 9l0i00?l |5 010:00?Jil 0l0:00?3l 1 01n,00?A I 3 0lO:00?4l3 010;00?5i0 IS o02n LOwr, 003:OOl7i« 003 ,0037 14 003 :0017 i« 003 :0037 l« 003 ,00i7 |4 003,0037,* 003 ,0037 1* 003;0037t« SEGKFNT 000)2 01? ;00o0l0 01 ? ; O0nO ,0 IIS » n» r 4C« parcel In Each PimnLF < Tf = 1 f K . 1 .PnLlnMIJMPns) STF P 1 < i.l.^ijMfirr.NSTPNTSi rSnit k • ! ] i «n i *TE B 1 (PARCEL ■ 1 »NUMnFP»RCFLSl if jiaPuonLENUMtPaRrcLi c,tr o T^EN "EfilM K l«1 t WHILE J NFO PUlnMHMrK) OO K I «K*| I STEP If I.l.NUMVCNSTPNTS) CsUMrK.niacsilMfK»!j*CNsTRNTtl>P FNIM » rHF-K IF ANY PlinoLFS HEFT ALL CONSTRAINTS sOL'^POSLOl sTE'l rK.l.PPLlDMUHPns) *EG in STEPl(I»l«^UMnFCNSTRNTS^ IF CSUMIK.H GTR R^Sln then gh to NF'TPnonLF, SOlNibTRUEI SOLNSt SULNSPnsiaSnLNSPn«*l1laPnLlONI|Mt»r1 I POL IDN|iM[K] laOl MExTpuOOLE, FNni FNL) CHFCKCNSIRNTSI »ttx»rxx«xxxtxxx» XXXXXXIXf XtItX((r(lt««|t»ItXS»l*I«SItSt( pRO'EOURE OUTPUTSOLNSI X PRINTS OUT SOLUTIONS ANO OThER t PUOOLFS THAT FAILEO TO "EET ALL THE CONS oEG'M inttger parcel, ARRAY AfOIll J I oDI^TER PTRAi INT r i;Es N»SU»'I«J»K| PRO'EOURE KRlTAf VALil. I iPTRI I X HANnLES VARIABLE FORMAT OF ni|TP|iT LINE i/*L IE ''At U. I I oEAL VALU) TNTT.ER II o n i >j r f r p t r i . E r, » m SWITCH FORMA 1 FTI.( A3 ). ( 13) I vAL 'E ARPAY FTSIZE( 3.3) I *R] T E(PTR,f Tf I 1 .VALil); pTR,.PTR*f TSWFf I) I FNj] *R I TA ; „Fh.- MOf B PROCESSOR TtHE FOR riNDT»'C, thf solution p^T 'HE l«( TI»'L(2)-PRTT M F ) HIV 601 ~Rl T £ ALL T i-t P'lOOLFS 01?,00o0,0 oi?,oonniO 01?,00n0i0 01 ? j00o4i 3 01?i00nci2 01?,000C«2 1 2 t 001 2 « 3 1 01?i00l3i2 01? sOOiarO 01?,0017,5 ArCEDI 01?.00l7,5 01?,00??l« « 01?,00?3ll 01?,00?3ll 01?iOO?3l5 01?,00?3i5 a 01?,00?6l2 01?,00?B,2 01?,00?r|l 01?, 0030l« 01?, 0031 l2 01?,003*l5 01?, 0036,2 01?,003»l2 4 01?,003*l5 CHECKCNSTRMT5(012> IS 003« LONG XXXXtXtXXXlXX XX 3 003,00371* 003»0037l« 003,00371* TRAINTS 003,00371* 003100371* 3 003,00371* OUTPUTSflLNS IS SEGmfNT 00013 013 iOOnoio Ol3,00o2|0 Ol3,00o?i0 Ol3(00n2l0 013t00p?«0 Oi3,oon?,o 013:00o?i0 Ol3,oon?i0 0l3,O0o2"0 Ol3,00n2l0 O13:00o2«0 4 0l3l00n2»0 ■VRITA IS SEGMENT 00014 Ol4:0005«3 oata IS 0051 long n«T« IS 000? LONG 014 ,00o5l 3 014,001 3 1 3 0l4,00l5|5 HRITACOl*) is oojr long 4 013,000?'0 013 ,00n?|0 0131000210 01 3 ,00n4 ,4 113 Nl««SRT(NUMnFPARCELS)l wRITE(STATlON«>» STEP1< K .1.N) BEGIN PTRA|«P0INTFR(A )» STEPlf J.I.N) B EGIN PARCEL««2«* I FNn ELSE WRITA(« . ".O.PTRA)l ENOl WRITE»STATI0N»12.Af*l)l ENOl WRITE ALL THE SOLUTIONS WRITE(STATI0N.)l STE s l(I.l.SOLNSPOS) BEGIN WRITE(STATION)! SUMI.OI STE P H*»1.N) BEGIN PTHAI«POlNTER(A)l STEPt(J.l.N) BEGIN PARCEL»"2«*(K-1)*J| IF PUOOLENUMtPARCFl ] EOL SOLNStI] THEN BEGIN WR! TA(WTr PARCEL l.l.PTRA) I SUMI»S|JM*hT[PArCELTI ENO ELSE WRITAC" '. ".O.PTRA1I ENOl WRlTEf STATION. 12. A\ T • ] > I ENDl HRlTE(sTATTON.. SUM ) I ENni WRITE OUT PUDDLES THAT ARF N"T SOLUTION iNQ THE CONSTRAINTS THAT THE" FATl wRITE(STATION.'l REA->(STATION.12.At»l)» TF B OINTEP( A)""vES " T H EN BEGIN wRITE(STATIPN.>» STE°l(I.l.PnLIONUMPOS) IF P|)LlUNU u t IT r,TR THLN oEGlN SllMt.or K°ITF(STAT!nN^ I STEPl (K, 1 ,Ni "EG IN PTRA laPnf NTFRf A 1 I STEPH J.' .N) Ol3|OOOAI« 0l3l00o6«2 Ol3,OOOBt« Ol3 t O0ORl* 01 3 iO0l 1 1 0131001 1 14 Ol3i00ll |« 0131001611 0l3t00i8l3 013,0019|3 Ol3i00i*t2 Ol3iOOlC»« OlSiOOiC* 0l3s00lFl5 013t00?0l2 0l3i00?3ll Ol3,00?5l« Ol3tOO?5t« Ol3,00?Bll 013|00?R! 1 013:00?FI» 013l003»H 013)003Al5 013i003«l5 0l3l00J9l2 0l3»003»l5 013,0034*5 0l3 ( 0C-lFl2 0l3t00«ll« 013i00«3i2 013t00«*l2 0t3|00«6l* 013j'00««t5 0l3i00««t5 0l3t00«Rl5 013iOO*C«2 013,00^1:1 013,00*1:» Ol3:00?F«« OlSiOOaoil 013:00*01 1 013:00*0:1 013,00*2,0 Ol3:00*2»0 013i"00*?«« 0l3,00*Rl0 013 : 00* C ,0 0l3|00*Fil Ol3i00r«i« oi3!'oor»i« 01 3, "0071:1 013.007n«0 013!'007RI« 0l3:00»0:l 013:OOAO:1 Ol3:00»«:* 0l3:'00«6l 1 111+ n r r, i n ir »unn rmuMf pjpfEii toi polIonmmI i i Twr.. iftlw VRlT» «HMi,silM*fcT|P«HCrL !l r«JO CUT WPITtf" . •iH.PKDI runi WRITFiSTtTInM, t?.«r»l)| r>4ni ■ jITFf ^T»T!nN'«//i»f nns'cllMTs Th»T »rE VTm.iTEt)» . STFPI ( .lr 1,121 TUPff l««(K-t >*J-1 ) 11 ■•■I 'FIIIT ■ "P0prFS5PP TI'F ,I«." «FC«.">iPR'I»£)l uniiXMiiimi intiiitiiiHiit'iimxii'iimitmjitujimnuim iM'ULlZf 1»t»l OUT »UT"TS I Hl.r not sctw in ■»Ef,J»i NE»T*»Tt!«T«Hir'| LnrATEFuRDLFSI rxrci'OsTaiiTSi FS'il onT'ijTSiLt.St i^tiiii'iutiniiiiiiiiiiiiiiiiiiniiiitniiitiitumoHintmtitiu ".UMpfP. OF [DPd^S, llfTr' l"UMBE H rt SF'i» r MS . i TF.1 » "100, ?l. T'lTiL Sfl.-rMT r i »rF»/jEi'»T*TI( /Mm lErT, COHPItiTIUK Mil s lentil' t.FrnM,t ELinSFn, oi.noo, sErnun* RPnf FSMNG . OPSO/A wnpns. oi i-oopa; 1 7 OlliOOPll* 01 3:00»nt0 oiitoour i« * ot3i0o»fi» I'Ii,OOr?iO r>i 3:0oo«t i A 0l3tP0«»tl 01 JiOoor i5 7 013,00oAi2 01 3 , 009m 1 * ::= a null string ::= A|b|...|Z ::= o|l|...|9 : := |/|' : := | | | . ::= +|-| : := | | «cdigit > ::= | ::= | ::= ::= | . |. ::= : := : := | ::= I | | "" 117 2. Functional Transformations ::= FUNCTION # : := | ::= (,) : := : := +|-| ::= THE| ::= IS| 118 3. Arithmetic Expressions Within an Occurrence | | ::= +|- ::= +|- ::= | ::= *|/ ::= | ::= ** : := | | | () ] () | () 119 k. Boolean Expressions Within an Occurrence occurrence Boolean expression>: := occurrence Boolean term> |OR ::= | AND ::= | () ::= |() | | I |() : := Is|lS NOT| EQUAL | NOT EQUAL |DOES WOT EQUAL | EQUALS | EQ | NE | NQL | NEQ ::= is| ::= TO| : := ONE OF| NOT ONE OF : := |NOT | | OR ::= GREATER |GT |GTR | LESS |LT | LSS : := THAN | 120 ::= |, ::= | ,< integer list> 121 5. Arithmetic Expressions Within a_ Class : := | ::= WHERE : := SUM | TOTAL | AVE | AVERAGE | MIN | MINIMUM | MAX | MAXIMUM I COUNT 122 6. Arithmetic Expressions Over a_ Parcel | | ::= | ::= | ::= | | | () ] () |() 123 7. Boolean Expressions Over a Parcel : := | OR ::= | AND ::= |() 12U 8. Regions •cregion requests : = REGION: := I I ::= WHERE : := INTERSECT | OVERLAP | UNION | COMBINE | EXCLUDE | WITHOUT | ::= REGION | : := ::= |, | | ::= | , |& | | () ::= SEQl S¥Q I NEQ I N¥Q I NE I SHIEhIWH 125 : :=

SECTION
| SEC
::=
|
,< sect ion numbers>
: :=
|
-
: := TR ::= |-^ : := n|s|u|l ::= | - : := E|w
::= X | 2 | . . . | 36 ::= | 1 | 2 | . . . | 63 : : = | 1 | 2 | . . . | 63 126 9. Primary Requests ::= # | # ::= | | | | | | | ::= ON PRINTER | ON FILE " : := : : = TABULATE | CALCULATE | MAP | OUTPUT ::= || | ::= FOR | ::= | , | :: = | ::= | : := | 127 ::= | | | | | : := ::= , | AND : := TOTAL | SUM j AVERAGE | AVE | COUNT | PERCENTAGE | PERCENT | PCT ::= | ::= BY | BY | ::= | AT l: | AT l: ::= I , 128 10. Secondary Requests ::= | < what request > | | < save request > | | | ::= | | abbreviation request>::= ABBREVIATION abbreviation identifier>: := : := | ::= WHAT ::= IS |ARE ::= | VERSIONS | FUNDS | SPACE | ::= |, | AND ::= : := REGION | REGIONS | ABBREVIATION | ABBREVIATIONS I FUNCTION I FUNCTIONS 129 ::= |, | AND ::= | ::= ::= CLASSES | | : : = DATA | ::= | , | AND : : = ELEMENTS | | ::= VALUES | < value list> ::= I , | AND ::= LIST ::= I ::= | | : : = PRIVATE I SEMIPUBLIC I PUBLIC 130 ::= CLASSES | ELEMENTS | VALUES ::= SAVE ::= FORGET ::= ::= SUSPEND | SUSPEND|END 131 VITA Stewart Arnold Schuster was "born in Chicago, Illinois on November 1, 19^5 • He received his B.S. in Applied Mathematics and Com- puter Science from Washington University at St. Louis, Missouri in 1967 ; M.S. in Mathematics (Statistics Program) from the University of Illinois at Urbana-Champaign in 1969; an d Ph.D. in Computer Science from the University of Illinois at Urbana-Champaign in 1973. Mr. Schuster is a member of Sigma Xi and the Association for Computing Machinery. While at the University of Illinois, Mr. Schuster was engaged in operation research studys of the University for the Office of Adminis- trative Data Processing from 1967 to 1969. During 1969 > he contributed to the ILLIAC IV project with a study of the information retrieval capabilities of the ILLIAC IV computer. From 1970 to 1972, Mr. Schuster was involved with the preliminary design and implementation of NAEIS - A Natural Resource Information System - at the University of Illinois' Center for Advanced Computation . IBLIOGRAPHIC DATA HEET 1. Report No. UIUCDCS-R-73-573 2. 3. Recipient's Accession No. Title and Subtitle 5. Report Date June 9, 1973 Locating Optimal Sites in Geographic Information Systems 6. Author(s) Stewart Arnold Schuster 8. Performing Organization Rept. N °'CAC Document No. 72 Performing Organization Name and Address Center for Advanced Computation 10. Project/Task/Work Unit No. ARPA Order No. 1899 University of Illinois at Urbana-Champaign Urbana, Illinois 61801 11. Contract/Grant No. DAHC04 72-C-0001 2. Sponsoring Organization Name and Address U. S. Army Research Office - Durham Duke Station, Durham, North Carolina 13. Type of Report & Period Covered Doctoral Dissertation | 14. j i 5. Supplementary Notes 5. Abstracts This thesis is concerned with the problem of computer oriented objective formulation for geographic site location and the analysis required to locate one or more optimal sites based upon that objective. For most practical purposes, a geographic region is a two-dimensional Euclidian space. A site within a region can either be a single point, a continuous curve or path between two points, or any continuous subset of points that forms an area within the region. This paper will deal primarily with the location of areas. It will be shown that the problem of locating an area can subsume the problems of path and point location. '. Key Words and Document Analysis. 17a. Descriptors Geographic Information Systems Information Retrieval Graph Theory Integer Programming b. Identifiers/Open-Ended Terms c ( OSATI lie Id/Croup • Availability Statement i Copies may be requested from the address given in i (9) above. BM NTI3-3B (10-70) 19. Security Class (This Report) UNCLASSIFIED 20. Security Class (This Page UNCLASSIFIED 21- No. of Pages 139 22. Price NA USCOMM-DC 40329- P7 1