Professional Documents
Culture Documents
Ver 2.00
April 2010
Graduate Program in Operations Research and Industrial Engineering, 1 University Station, C2200,
University of Texas at Austin, Austin, TX 78712.
Copyright
2010 Michael Ciarleglio, Sahotra Sarkar, and J. Wesley Barnes at the University of Texas Austin.
Licensing Information
The use of ConsNet and any original ConsNet source code is restricted to Research Use and other Non-
Commercial Use. "Research Use" means research, evaluation, or development for the purpose of
advancing knowledge, teaching, learning, or customizing the software for personal use. Non-Commercial
Use expressly excludes use or distribution for direct or indirect commercial (including strategic) gain or
advantage. Proper attribution is required for both Research Use and Non-Commercial Use. All other rights
are reserved by the copyright holders.
ConsNet requires the following publicly available Java libraries, which are included in the distribution: a
graphing utility called JFreeChart (Gilbert, 2000). As JFreeChart is released under the LGPL license, the
source code and LGPL license terms are also included in this distribution.
Disclaimer
Although the ConsNet software package has been tested and run successfully on computer systems at the
University of Texas at Austin, the software, data, and related materials contained therein are provided AS
IS, without warranty of any kind, either expressed or implied, including, but not limited to, the implied
warranties of merchantability and fitness for a particular task.
University Affiliation
Biodiversity and Biocultural Conservation Laboratory (BBCL)
Section of Integrative Biology
University of Texas at Austin
1 University Station, C 0930
Austin, TX 78712
Websites
ConsNet, this manual, and an example dataset can be downloaded from:
http://uts.cc.utexas.edu/~consbio/Cons/consnet_home.html
Cover Graphics
A illustration of ConsNet output, for a dataset containing the modeled distributions of 184 amphibians and
reptiles in portions of Burma and India (Pawar, Koo, Kelley, Ahmed, & Sarkar, 2007).
-ii-
TABLE OF CONTENTS
1 INTRODUCTION............................................................................................................................... 1
1.1 WHAT IS CONSNET ........................................................................................................................... 1
1.2 WHATS NEW IN CONSNET V2? ........................................................................................................ 1
2 GETTING STARTED ........................................................................................................................ 2
2.1 LICENSING INFORMATION ................................................................................................................. 2
2.2 MINIMUM SYSTEM REQUIREMENTS .................................................................................................. 2
2.3 INSTALL JAVA ................................................................................................................................... 2
2.4 INSTALLING CONSNET ...................................................................................................................... 2
2.5 RUNNING THE SOFTWARE ................................................................................................................. 3
2.5.1 Launch from batch file ............................................................................................................ 3
2.5.2 Launch from command line .................................................................................................... 3
2.5.3 Properties file ......................................................................................................................... 4
3 LOADING A PROBLEM .................................................................................................................. 5
3.1 PROBLEM PROFILES .......................................................................................................................... 5
3.2 NEW OR EXISTING PROBLEM ............................................................................................................ 5
3.3 SETTING UP A NEW PROBLEM........................................................................................................... 5
3.4 LOADING THE INPUT FILES................................................................................................................ 7
3.5 DELETING OLD PROBLEMS ............................................................................................................... 8
4 FILE FORMATS ................................................................................................................................ 9
4.1 REPRESENTATION FILE: REGULAR LAT/LONG GRID ........................................................................ 9
4.2 REPRESENTATION FILE: REGULAR DISTANCE GRID ........................................................................10
4.3 REPRESENTATION FILE: ARBITRARY SHAPE ...................................................................................11
4.4 REPRESENTATION FILE: NO GEOMETRY..........................................................................................12
4.5 ADJACENCY FILE .............................................................................................................................13
4.6 REPRESENTATION TARGETS FILE .....................................................................................................14
4.7 REPLICATION GOALS FILE ...............................................................................................................15
4.8 COSTS FILE ......................................................................................................................................16
4.9 CELLS FILE ......................................................................................................................................17
5 CONSNET OVERVIEW ...................................................................................................................18
5.1 PROBLEM DISPLAY TAB ...................................................................................................................18
5.2 INIT SOLN TAB .................................................................................................................................18
5.3 PORTFOLIOS TAB .............................................................................................................................20
5.3.1 Importing Solutions ...............................................................................................................20
5.3.2 Exporting Solutions ...............................................................................................................20
5.4 SOLN DISPLAY TAB .........................................................................................................................22
5.5 OBJECTIVES TAB..............................................................................................................................22
5.5.1 Working with the Objective Table .........................................................................................24
5.5.2 Search in Progress.................................................................................................................25
5.6 SEARCH TAB ....................................................................................................................................25
5.7 SETTINGS MENU ..............................................................................................................................25
5.7.1 Memory Management and Purging .......................................................................................25
5.7.2 Auto-Save ...............................................................................................................................26
5.8 LOG MENU AND STATUS PANEL ......................................................................................................27
5.9 SHUTTING DOWN .............................................................................................................................27
6 OBJECTIVES ....................................................................................................................................28
6.1 OBJECTIVES IN CONSNET.................................................................................................................28
6.2 CREATING A NEW OBJECTIVE ..........................................................................................................29
-iii-
6.3 MINIMUM AREA PROBLEM ..............................................................................................................29
6.4 MAXIMUM REPRESENTATION PROBLEM ..........................................................................................29
6.5 MULTI-CRITERIA OBJECTIVES IN CONSNET.....................................................................................30
6.5.1 Measures Available in ConsNet.............................................................................................31
6.5.2 Weighted Multi-Criteria Scores .............................................................................................33
6.5.3 Using Constraints ..................................................................................................................34
6.6 MULTI-CRITERIA MINIMUM AREA PROBLEM ..................................................................................35
6.7 MULTI-CRITERIA MAXIMUM REPRESENTATION PROBLEM ..............................................................36
6.8 LOADING CRITERIA FROM A TEXT FILE ...........................................................................................37
7 SEARCH AND OPTIMIZATION....................................................................................................38
7.1 TABU SEARCH..................................................................................................................................38
7.2 SEARCH WINDOW ............................................................................................................................38
7.3 NEIGHBORHOOD SELECTION STRATEGY ..........................................................................................40
7.4 CORES TAB (ADVANCED FEATURES) ................................................................................................40
7.5 BEST PRACTICES AND TECHNIQUES .................................................................................................41
8 PERFORMANCE AND MEMORY ................................................................................................43
8.1 LARGE PROBLEMS ALLOCATING MORE MEMORY ........................................................................43
8.2 LARGE PROBLEMS MANAGING THE SOLUTION ARCHIVE ..............................................................43
8.3 PERFORMANCE USE THE SERVER VM ...........................................................................................44
8.4 PERFORMANCE SPATIAL CALCULATIONS ......................................................................................44
9 KNOWN ISSUES ...............................................................................................................................46
10 REFERENCES ...................................................................................................................................47
-iv-
1 Introduction
1.1 What is ConsNet
ConsNet is a comprehensive software package for the design and analysis of conservation area networks
(CANs) to represent biodiversity. The conservation area network design problem has many variations
which depend on the specific goals of the planner but the basic problem assumes a common structure
(Sarkar et al. 2006). The study region is partitioned into "cells." For each cell, there are data on the
expected presence or abundance of appropriate biodiversity surrogates, the potential costs (or benefits) of
placing each cell under a conservation plan, and the spatial properties of the cell. A conservation area
network is assembled as a set of cells which collectively best meets the goals of the planner (Margules &
Sarkar, 2007).
ConsNet contains new search techniques for designing conservation area networks using multiple criteria.
In particular, ConsNet can handle a variety of spatial criteria including size, compactness, connectivity,
replication, and alignment. Additionally, ConsNet allows users to introduce an arbitrary number of other
criteria, including socio-economic criteria.
ConsNet uses a metaheuristic search algorithm called tabu search. In general, metaheuristics do not
guarantee an optimal solution (especially for large problems), but they are capable of finding high quality
solutions when other optimization techniques would fail. The optimization problem behind conservation
area network design is already NP-hard, and the spatial criteria add an extra element of difficulty. In most
practical cases, the conservation area network design problem is not tractable using exact optimization
techniques.
The tabu search in ConsNet is implemented with the RISE optimization framework (developed by Michael
Ciarleglio). Tabu search is a metaheuristic that relies on memory structures to organize and navigate the
search space intelligently. In RISE, parallelized search algorithms can take advantage of multiprocessor
machines with shared memory, such as dual core or quad core processors. RISE also supports innovative
tabu search strategies such as rule based objectives (RBO) and dynamic neighborhood selection (DNS).
These techniques can improve search performance by directing the search to promising regions and
reducing the number of required evaluations.
Beyond the considerable search capabilities, ConsNet also functions as a general decision support tool that
enables ongoing interactive analysis; planners design their own searches, analyze the results in real time,
create portfolios of preferred solutions, and save their progress. Users may explore the problem from a
variety of different perspectives, which enhances problem understanding. Since ConsNet is designed to be
extensible, the software will expand in future versions to accommodate even more problem types.
This manual describes the basics of using ConsNet. The software is also supported through the ConsNet
Google Group http://groups.google.com/group/consnet/.
1 - Introduction pg 1
2 Getting Started
2.1 Licensing Information
ConsNet uses two software libraries licensed under the Gnu Lesser General Public License (LGPL). In
compliance with the LGPL license, we include a copy of the source code for these libraries, along with the
terms of the LGPL (http://www.gnu.org/licenses/lgpl.html).
JFreeChart v1.0.9
CheckboxTreeCellRenderer by Timothy Wall
2 - Getting Started pg 2
2.5 Running the Software
2.5.1 Launch from batch file
If the proper Java Runtime Environment is installed, Windows users can run ConsNet by double
clicking the consnet_client.bat file in the installation directory. This file contains a command line
that will execute the program. This file may be edited to modify the runtime settings of ConsNet,
described in the next section. The consnet_server.bat file contains a command line to run
ConsNet using the Java HotSpot Server Virtual Machine (if available). This advanced setting is
significantly faster (more details can be found in Section 8.3).
This should be sufficient to get started, but there are several command line arguments that can be
used to configure the Java Virtual Machine (JVM). Users with large datasets or multiple
processor computers need to be familiar with some of these options, summarized below. Since
typing the commands is somewhat tedious, a .bat file can be created to automatically run the JVM
with the appropriate settings.
Here is an example of a command line that contains several JVM arguments, followed by some
arguments specific to ConsNet. We will discuss some of the more important options below.
java Xms256m Xmx1024m -verbosegc -jar consnet.jar properties consnet.properties
java opens up the JVM on the machine. If the computer does not recognize this command or
the user would like to use a JRE other than the default, it may be necessary to set a path variable to
point to the proper JRE. For a full specification of this command, including all valid arguments,
see: http://java.sun.com/javase/6/docs/technotes/tools/windows/java.html
JVM arguments
-Xms256m specifies 256MB as the initial heap size (the amount of memory given to the
program). Any value may be used, but the initial heap must be smaller than the maximum heap
size. 256MB is the lowest recommended value.
-Xmx1024m specifies 1024MB as the maximum heap size (the maximum amount of memory that
may be consumed by the program). The maximum heap size cannot exceed the physical memory
(a JVM requires physical memory, and cannot use virtual memory). In addition, the maximum
allowable heap size on a Windows 32-bit machine hovers around 1300-1400MB, even if 2GB or
2 - Getting Started pg 3
more is installed. A 64-bit machine (with a 64-bit JVM) is not subject to these limitations, and
may be required for larger problems.
For larger problems on memory constrained machines, we recommend setting the maximum heap
size as large as possible, and setting the initial heap size to the same value. If the program runs out
of memory, it will slow down and eventually display an out of memory error. If the maximum
heap size is too large, the following message appears:
Could not reserve enough space for object heap
-verbosegc is a flag that tells the JVM to print out memory usage information during garbage
collection (GC). This is very useful when memory shortages are an issue. A typical report looks
like this:
[GC 136693K->81337K(553792K), 0.0090701 secs]
This means that the garbage collection reduced the memory consumption of the program from
136,693KB to 81,337KB. The number in parentheses is the amount of memory currently reserved
for the program. This number may grow or shrink within the bounds set by the Xms and Xmx
flags. The time shows how long the garbage collection took. If the program is running out of
memory, the amount consumed will approach the total amount reserved. If memory cannot be
reclaimed and the heap is at its maximum allowable size, the garbage collections will become
more frequent and take longer until the program throws an out of memory error.
-server instructs the JVM to operate in server mode, which runs significantly faster. To read
more about server mode, see Section 8.3.
-jar consnet.jar tells the JVM to run the program contained in consnet.jar.
ConsNet arguments
-properties <filename> loads the ConsNet settings in the specified properties file.
Users may modify the existing properties file or create new properties files. The original settings
are contained in consnet.properties.bkup
2 - Getting Started pg 4
3 Loading a Problem
This section assumes that you are familiar with the steps of a systematic conservation plan. Loading a new
problem requires a lot of data and a lot of planning. You should be able to answer the following questions:
What biodiversity surrogates will be included your study?
What is the surrogate representation in each cell?
What representation targets should be used?
What costs are associated with each cell?
What type of spatial characteristics do you need to measure?
If you have not already prepared your input files, see Section 4.
Introduction Panel
load new problem? Select this option if you would like to set up a new
problem profile.
load existing problem? Select this option if you want to restore a problem
that you have previously loaded
3 - Loading a Problem pg 5
Representation File Formats
regular grid, evenly spaced lat/long The cells are rectangular in shape, and occur at
points regular intervals on a lat/long grid. You will need to
supply a representation file in the regular lat/long grid
format (see 4.1: Representation File: Regular
Lat/Long Grid)
regular grid, evenly spaced at a regular The cells are rectangular in shape, and occur at
distance regular distance intervals. You will need to supply a
representation file in the regular distance grid format
(see 4.2: Representation File: Regular Distance
Grid).
cells are irregularly spaced, with When the planning units are arbitrary shapes, users
arbitrary shape must supply two files. The representation file will be
in the arbitrary shape format (see 4.3: Representation
File: Arbitrary Shape). The spatial components
(perimeter, area, adjacency) are defined in an
adjacency file (see 4.5: Adjacency File)
ConsNet does not provide graphical displays of the
conservation area network in this mode.
no spatial component for this problem If the problem has no spatial context, users must
supply a representation file in the no geometry format
(see 4.4 Representation File: No Geometry).
ConsNet does not provide graphical displays of the
conservation area network in this mode.
Representation Type
presence-absence This option indicates that the values in the
representation file will be either a 1 (indicating the
presence of a surrogate) or 0 (absence). For presence
absence data, ConsNet does not permit values other
than 0 or 1.
expected values This option indicates that the representation file
contains expected values for the occurrence of
surrogates. ConsNet prefers values between 0 and 1
(inclusive).
3 - Loading a Problem pg 6
Interpreting Expected Values
round the value to the nearest 0.01 [recommended] If the values in the representation
file are between 0 and 1, and rounding to the nearest
0.01 is allowed, then this option saves both memory
and time. The representation data will be stored as an
integer between 0 and 100.
use the values in the file This option uses the floating point values found in the
file (without alteration). Compared to the
recommended setting, this option requires about four
times more memory.
3 - Loading a Problem pg 7
ConsNet will now process your input and check for errors. When you finish the setup wizard, ConsNet
stores your problem profile on the hard drive. This may require several minutes for larger problems. The
next time you start ConsNet, you can load your problem profile rather than having to enter in the
information again. If you want to make changes to your problem, you will have to create a new problem.
3 - Loading a Problem pg 8
4 File Formats
4.1 Representation File: Regular Lat/Long Grid
This type of input file will be used for grids with rectangular cells that occur at evenly spaced
latitude/longitude points. The header consists of five values, followed by the names of the surrogates in the
problem. Each subsequent row represents a single cell, and contains the ID, location, and representation
data for that cell.
header contains (comma or tab delimited)
nSurrogates, dLong, dLat, worldWrapOption, <reserved>, surrogateName1, surrogateName2,
body contains (one row per cell, white space delimited)
cellID longitude latitude row col surrogateRep1 surrogateRep2
field description:
nSurrogates the number of surrogates that will be found in this file
dLong the regular spacing in the longitude direction, measured in decimal degrees
dLat the regular spacing in latitude direction, measured in decimal degrees
worldWrapOption a value of 1 for this field indicates that the grid wraps around the globe, and the east
and west edges will be connected where appropriate
<reserved> this position is not currently used and should contain a zero
surrogateName surrogate names may not have spaces or the following characters: /\:*"<>?|;
cellID a user assigned integer ID number for each cell. These numbers do not have to be sequential, and
numbers may be skipped. ConsNet uses this ID to report which cells have been selected.
longitude the x-coordinate of the centroid of the cell (longitude, decimal degrees)
latitude the y-coordinate of the centroid of the cell (latitude, decimal degrees)
row if the cells were to be arranged on a grid, which row would contain this cell. The row number
should be smaller in the north and larger in the south. If this field is zero for all cells, then ConsNet will
attempt to place the cells on the grid automatically using the x- and y-coordinates (described below).
col if the cells were to be arranged on a grid, which column would this cell be in. The column number
should be smaller in the west and larger in the east. If this field is zero for all cells, then ConsNet will
attempt to place the cells on the grid automatically using the x- and y-coordinates (described below).
surrogateRep the representation for surrogates may be decimal or integer values
COMMENTS: If users do not provide the row and column data for each cell, ConsNet will attempt to
place the cells on the grid using the latitude and longitude data. There are some considerations when using
this feature:
If the dataset crosses the 180/-180 meridian, then users must specify the row and column data.
If the grid spacing is incorrect by an integral factor (for instance 0.01 instead of 0.1), then ConsNet
could build the grid incorrectly.
In order to use this feature, the latitude and longitude should contain the proper number of decimal
places. The grid positions cannot be located precisely otherwise.
4 - File Formats pg 9
4.2 Representation File: Regular Distance Grid
This type of input file will be used for rectangular cells that repeat at an evenly spaced distance. The
header consists of five values, followed by the names of the surrogates in the problem. Each subsequent
row represents a single cell, and contains the ID, location, and representation data for that cell.
header contains (comma or tab delimited)
nSurrogates, dx, dy, <reserved>, <reserved>, surrogateName1, surrogateName2,
body contains (one row per cell, white space delimited)
cellID X Y row col surrogateRep1 surrogateRep2
field description:
nSurrogates the number of surrogates that will be found in this file
dx the regular spacing in the horizontal direction (any unit). The value of dx will be used to calculate
both perimeters and areas within the conservation area network
dy the regular spacing in vertical direction (any unit). The value of dy will be used to calculate both
perimeters and areas within the conservation area network
<reserved> this position is not currently used and should contain a zero
surrogateName surrogate names may not have spaces or the following characters: /\:*"<>?|;
cellID a user assigned integer ID number for each cell. These numbers do not have to be sequential, and
numbers may be skipped. ConsNet uses this ID to report which cells have been selected.
X an x-coordinate for the centroid of this cell, should match the units given for dx
Y a y-coordinate for the centroid of this cell, should match the units given for dy
row if the cells were to be arranged on a grid, which row would contain this cell. The row number
should be smaller in the north and larger in the south. It is not required that the first row is 0 (counting may
start at any integer). If this field is zero for all cells, then ConsNet will attempt to place the cells on the grid
automatically using the X and Y values.
col if the cells were to be arranged on a grid, which column would contain this cell. The column number
should be smaller in the west and larger in the east. It is not required that the first column be 0 (counting
may start at any integer). If this field is zero for all cells, then ConsNet will attempt to place the cells on
the grid automatically using the X and Y values.
surrogateRep the representation for surrogates may be decimal or integer values
COMMENTS: The area of each cell is interpreted to be dx*dy, and the perimeter is assumed to be
2(dx+dy). The units of area and perimeter are the same as the units on dx and dy.
Structurally, this file is identical to the Regular Lat/Long Grid.
4 - File Formats pg 10
4.3 Representation File: Arbitrary Shape
This type of input file will be used for cells with arbitrary shape or irregular spacing. The header consists
of three values, followed by the names of the surrogates in the problem. Each subsequent row represents a
single cell, and contains the ID, location, and representation data for that cell.
This file will be paired up with an adjacency file which contains information needed to compute areas and
shared boundaries. The X and Y coordinates below are not used to perform calculations in the program.
field description:
nSurrogates the number of surrogates that will be found in this file
<reserved> this position is not currently used and should contain a zero
surrogateName surrogate names may not have spaces or the following characters /\:*"<>?|;
cellID a user assigned integer ID number for each cell. These numbers do not have to be sequential, and
numbers may be skipped. ConsNet uses this ID to report which cells have been selected.
X an x-coordinate, any unit
Y a y-coordinate, any unit
surrogateRep the representation for surrogates may be decimal or integer values
4 - File Formats pg 11
4.4 Representation File: No Geometry
This type of input file will be used for problems that do not have a spatial component. Users will be able to
access basic features of the set cover problem (including costs) but the spatial analysis will not be available.
The header consists of three values, followed by the names of the surrogates in the problem. Each
subsequent row represents a single cell, containing the ID and representation data for that cell.
This file does include a column for x and y coordinates (longitude and latitude), but those fields may be
zero if not available, or could contain some other identifying information.
This file is structurally identical to the Arbitrary Shape representation file.
field description:
nSurrogates the number of surrogates that will be found in this file
<reserved> this position is not currently used and should contain a zero
surrogateName surrogate names may not have spaces or the following characters /\:*"<>?|;
cellID a user assigned integer ID number for each cell. These numbers do not have to be sequential, and
numbers may be skipped. ConsNet uses this ID to report which cells have been selected.
X an x-coordinate, any unit
Y a y-coordinate, any unit
surrogateRep the representation for surrogates may be decimal or integer values
4 - File Formats pg 12
4.5 Adjacency File
The adjacency file defines how neighboring cells are arranged on a grid containing arbitrary shapes or
irregularly spaced cells. This input file does not contain a header, and has one row per cell. Users will be
prompted for this file when using the Arbitrary Shape representation file.
no header line
body contains (one row per cell, white space delimited)
cellID area perimeter nNeighbors neighborID1 sharedBoundary neighborID2 sharedBoundary
neighbor 1 neighbor 2
field description:
cellID the user defined cellID will be used to match this record to the record contained in the
representation file
area the area of the cell (the units must be consistent with the perimeter)
perimeter the total perimeter of the cell (in distance units consistent with the area)
nNeighbors the number of cells that are considered adjacent to this cell. For each neighbor, this line
must specify a neighborID and a shared boundary
the following two fields are repeated for each neighbor
neighborID the cellID for the neighboring cell
sharedBoundary the boundary shared between this cell and the neighboring cell (may be zero)
COMMENT: ConsNet allows some flexibility when interpreting the adjacency file. If two cells are listed
as neighbors in the adjacency file, then they will be considered adjacent when computing connectivity and
clustering properties. There is no requirement that adjacent neighbors share a boundary (in this case, put a
0 for the shared boundary). Similarly, there are no stringent requirements on the perimeter. If users do not
need to calculate the perimeter or boundaries, then these fields may be left to zero.
An example of an adjacency file. The nNeighbors field appears in red. If there are 4 neighbors, the line
must contain the ID and shared boundaries of all four neighbors.
4 - File Formats pg 13
4.6 Representation Targets File
A representation target consists of a desired representation level for each surrogate. This file defines one or
more representation targets. Each column represents a different representation target, and the rows
represent the required representation for each surrogate. In the header line, names can be given to each
representation target.
The file must contain one row per surrogate, and a representation value must be specified for each target
(although 0 is allowed). Because the surrogate names are used to match up the records, the surrogates do
not need to be listed in the same order that they appear in the representation file.
The targets for each surrogate may be specified as floating point, but if the representation in the problem is
expressed as an integer, then the targets are rounded up to ensure that the target is actually met. ConsNet
will check each target to make sure that it does not exceed the actual representation in the network.
In the event that a target is too large and cannot be satisfied, ConsNet will issue a warning and adjust the
target value down to the largest feasible value. (This could happen on problems with permanently excluded
cells. If too many cells are excluded, then it may be impossible to attain the specified representation
target.)
field description
<reserved> this token must contain a non empty string, but it will be skipped. Since it is the header for
the surrogateName column, a logical value might be surrogateName,
targetSetName1, targetSetName2 . . . a string specifying the target set names, cannot contain the
following characters: /\:*"<>?|;
surrogateName the name of the surrogate for the data in this row. Every surrogate must appear in this
file.
targetForSet1 targetForSet2 . . . the targets for each set may be specified as floating point, but if the
representation in the problem is expressed as an integer, then the targets are internally rounded up to ensure
that the target is actually met.
4 - File Formats pg 14
4.7 Replication Goals File
A replication goal specifies a desired replication level for each surrogate. In this file, each column
represents a different replication goal (there can be multiple goals). The rows, keyed by the
surrogateName, represent the required replication for the surrogates that appear in this file.
Since computing the replication is time consuming, it is only done for those surrogates which have non-
zero replication goals. Thus, surrogates that are not listed in this file (or have a 0 specified for each
replication goal) are ignored during the replication computation.
field description:
<reserved> this token must contain a non empty string, but it will be skipped. Since it is the header for
the surrogateName column, a logical value might be surrogateName,
replicationGoalName1, replicationGoalName2 . . . a string specifying the names of the replication
goals, cannot contain the following characters: /\:*"<>?|;
surrogateName The name of the surrogate for the data in this row. It is not necessary to list every
surrogate in this file. Surrogates that are not mentioned will not be assigned replication goals.
replicationGoal1 replicationGoal2 . . . The targets for each set may be specified as floating point, but if
the representation in the problem is expressed as an integer, then the targets are rounded up to ensure that
the target is actually met
4 - File Formats pg 15
4.8 Costs File
ConsNet allows multiple costs or benefits to be associated with each cell. Each cost is assumed to be
additive; that is, the total can be found by summing the cost in all of the selected cells.
The costs may take on any floating point values, positive or negative. In ConsNet, you will have the option
to minimize or maximize each cost individually.
It is not necessary to list every cell in the costs file. Cells that are not listed will be assigned a value of zero
for every cost.
field description
<reserved> this token must contain a non empty string, but it will be skipped. Since it is the header for
the cellID column, a logical value might be cellID,
costName1, costName2 . . . a string specifying the target set names, cannot contain the following
characters: /\:*"<>?|;
cellID the user defined cellID will be used to match this record to the record contained in the
representation file
cost1 cost2 . . . The costs are interpreted as floating point values.
4 - File Formats pg 16
4.9 Cells File
This input file is used to provide a list of cells to ConsNet. This file is required if the user wants to specify
a list of permanently included or excluded cells. This file is also used when importing a solution into
ConsNet.
The first line will be skipped if it contains alphabetic characters [a-z][A-Z]. Each additional row represents
one cell. The first token on each line must be the cellID; any additional information is ignored.
field description
cellID the user defined cellID will be used to match this record to the record contained in the
representation file
4 - File Formats pg 17
5 ConsNet Overview
This walkthrough discusses the features and buttons that can be found on each tab in the program.
5 - ConsNet Overview pg 18
Place a check mark next to each solution (or group of solutions) that you want to build. When you click
OK, the selected solutions will be queued on the initial solution tab. The program will move through the
list, building each solution when a processor becomes available. After the solution has been built, you can
click OK to remove the box or review to see the results of the computation. By default, initial
solutions are saved in the ConsNet portfolio so that you can find them later.
In the upper right hand corner, there is an input box labeled number of processors. This controls the
number of solutions which may be built simultaneously. The maximum value is the number of available
processors on the computer. If the value is set to four, then up to four initial solutions may be built at once.
This box applies only to the initial solution tab, and does not affect other parts of the program.
For large data sets, building two or more solutions at a time could cause an out of memory error. Thus, for
memory intensive problems, it is recommended to use only one processor.
5 - ConsNet Overview pg 19
ILV4 This algorithm InterLeaVes the rarest and the most deficient
ILV4 adjacency surrogates. It alternates choosing cells that contain the rarest
surrogate with cells that contain the most deficient surrogate. This
algorithm creates solutions that are substantially different from both
the MDS and RF algorithms.
ALL cells selected Builds a solution where all cells are selected (except those which
have been permanently excluded).
NO cells selected Builds a solution where no cells are selected (except those which
have been permanently included).
DROP empty cells Builds a solution that drops all cells that do not contain any
surrogates, except for cells that are permanently included.
5 - ConsNet Overview pg 20
exported
solution
5 - ConsNet Overview pg 21
5.4 Soln Display Tab
The solution display tab contains tools to review individual solutions and perform visual comparisons.
Currently, the graphical display on the right panel is only enabled for problems in which the cells are
arranged on a rectangular grid.
To load a solution onto the solution display tab, use the send to solution display panel option available on
both the portfolios tab and the objectives tab.
The solution will be displayed on the right panel. It is possible to save this picture as a .png image. The
image will be saved at the size indicated by the zoom slider. The compare button can be used to compare
the current solution to another solution from any portfolio. The differences between the two solutions will
be colorized.
A table on the left hand side lists some of the numerical attributes of the currently displayed solution.
Users may add or remove information from this table using the edit table button.
5 - ConsNet Overview pg 22
this system which allows ConsNet to manage multiple objectives, perform simultaneous searches, and
initialize new objectives with previously discovered solutions.
objective B
central
solution
archive
objective A
When you start ConsNet, there are no objectives available. You will need to create a new objective (see
Chapter 6). When you create a new objective, it will not contain any scores.
5 - ConsNet Overview pg 23
Switching Objectives. When you have more than one objective, you can switch between them using the
combo box in the upper right corner. All of the buttons on the right hand side refer to the currently selected
objective.
Sync Scores. The number of scores that are currently evaluated for the selected objective is displayed
below the buttons on the right hand side. If this number is 0, then no scores are currently evaluated (and
the table will be blank). The total number of solutions in the archive is also shown. It is possible that the
solution archive contains some solutions that have not been evaluated for this objective. In this case, you
can synchronize the objective with the solution archive using the sync scores button. This will
evaluate an objective score for all of the solutions in the archive.
Update. While the search is running for a given objective, the number of scores grows as the search
evaluates each solution that it visits. Hitting the update button during or after the search will refresh the
table. New solutions will show up at the top of the list (if they are highly ranked). To see more solutions in
the list, change the show top value. The default value is 50, which means you will see only the top 50
solutions on the list.
Purge Scores. The purge scores button can be used to remove scores from the objective. Users must
specify how many of the top ranking scores should be kept. The remaining scores are removed from the
objective. Purging will not remove any scores which have been marked with a save checkmark (on the
table). The purge scores button does not delete any solutions from the solution archive.
Clear Scores. With the clear scores button, users may remove all currently evaluated objective scores.
A dialog box will ask the user to confirm this action. The clear scores button does not remove any
solutions from the solution archive.
Delete Objective. The delete objective button will completely remove the objective from the program.
This action is not reversible. Deleting an objective will not remove any solutions from the solution archive.
5 - ConsNet Overview pg 24
5.5.2 Search in Progress
If a search is in progress, all of the buttons on the objectives tab work as described above.
However, you should be aware that solutions stored in the archive are constantly changing as new
solutions are discovered and old ones are removed. That means that the data on the objective table
may be out of date. The update button will show you the most recent contents of the archive (but
if the search is running, they may already be out of date by the time they are displayed!).
ConsNet will periodically purge solutions that are no longer relevant. If you try to perform an
action with a solution that has been purged, the program will tell you that the solution is no longer
in the archive.
The purge will always keep the top scores for the objective, as well as any scores that you have
saved (either in a portfolio, or by using the save checkbox). For more information about the
purge, see Section 5.7.1.
5 - ConsNet Overview pg 25
that it visits, slowly filling the solution archive. Occasionally, the solution archive must purge the
irrelevant solutions. If the purge does not happen in a timely manner, the program will run out of
memory. For large problems, you may want to tune these settings by hand.
To change the memory and purge settings, click on the Settings menu memory management.
You will see the following settings:
trigger solution purge when size exceeds A purge will not be attempted unless the
archive contains at least this many solutions.
polling interval (milliseconds) The frequency at which the program will check to see if
a purge needs to be performed. For example, if set at 4000, the program will check every
4 seconds to see if a purge is necessary.
solution archive cache size The number of solutions that are allowed to be held in
memory. If the archive grows beyond this size, solutions will be written to the hard drive
(and users will receive a warning). As long as purges are occurring frequently enough,
the solution archive should never grow larger than this number. For large problems, you
may want to reduce the size of the solution archive cache. This means you may have to
change other settings to work with the smaller size of the solution cache.
baseline objective size The number of top objective scores that should be kept during a
purge.
A purge removes all solutions except:
The solutions that correspond to the top n scores for each objective (the default value for
n is 100)
The solutions that correspond to any objective score that has been marked as save
(using the checkbox on the objective table)
All of the solutions in the portfolios will be kept. They cannot be removed with a purge.
5.7.2 Auto-Save
Auto-save provides a way to periodically save the best solutions found by the search. There are
two ways to use this feature:
If you are running the search unattended for a very long time (i.e. weeks), it is a good
idea to save your progress as checkpoints. Remember, Windows can automatically
restart for updates, programs can crash, or the janitor might unplug your computer.
You can use this feature to record intermediate solutions found by the search, which may
be very different from the best solution (but almost as good). This will provide you with
a more diverse portfolio of solutions.
To turn on Auto-Save, click on the Settings menu auto-save settings. You have a few options:
The frequency (in iterations) to perform the auto-save. If this number is 100,000, the
search will automatically save the solution at iteration 100,000 then 200,000 then
300,000. Dont save too frequently, or you will be overwhelmed with solutions. Large
searches may run for millions of iterations.
The portfolio in which to save the solutions. I recommend creating a separate portfolio to
hold the auto-save solutions. That way, they do not clutter up your other portfolios.
When auto-save is enabled, the search will save two solutions: 1) the best solution known at that
iteration and 2) the current solution at that iteration. Keep in mind that the current solution can be
arbitrarily bad, especially if the search is in a bad region of the space (it has to cross the bad
regions to get to the good regions!)
5 - ConsNet Overview pg 26
5.8 Log Menu and Status Panel
ConsNet has a log that can print information to a log file, the console, or the status panel. The status panel
can be accessed through the Log menu. Since it takes up a portion of the usable screen, it is hidden by
default.
The status panel will automatically appear when a warning or error message is thrown. Users are advised
to read the warnings and errors carefully. After an error is thrown, the log panel can be hidden again.
5 - ConsNet Overview pg 27
6 Objectives
6.1 Objectives in ConsNet
In ConsNet, an objective is a set of comparison rules used to evaluate and compare different conservation
area networks. Each objective considers the conservation area network as a whole. That is, the objective
considers how all of the selected cells perform together as a conservation area network. When the
objective compares two different solutions, it is comparing two complete conservation area networks that
have different cells included.
Objectives serve two primary roles. First, they are used to rank the solutions that have been discovered by
ConsNet. Second, objectives are used to drive the search and discover new and potentially better solutions.
The search engine attempts to optimize the objective by finding the solution which outranks all others
(similar to an objective function).
There are several types of objectives that can be created for use with ConsNet. Some of these objectives
are pre-defined; they are already configured to solve a specific problem without any special input from the
user. These objectives are easy to set up and use, but they are not highly configurable. To provide more
flexibility, ConsNet also allows users to define their own multi-criteria objectives. These user-defined
objectives are highly customizable, but take more effort to set up.
There are two main categories of problems that conservation planners worry about:
minimum area problem minimize the area of the conservation area network subject to the
constraint that the solution must include a specified target level of biodiversity representation (also
known as the set cover problem)
maximum representation problem maximize the biodiversity representation given a set of cost
or area constraints that cannot be exceeded (also known as the maximal cover problem)
ConsNet can solve both the basic problems and multi-criteria versions of these problems (including spatial
analysis). This section of the instruction manual explains how to use the following objectives in ConsNet:
Before creating multi-criteria objectives, users should explore their problem using the basic objectives to
understand the range of solutions that might be possible. This information will be useful (and necessary)
when creating the multi-criteria objectives.
6 - Objectives pg 28
Finally, most real world problems have elements of both the minimum area problem and the maximum
representation problem. Once you understand how to build multi-criteria objectives, it is fairly
straightforward to create hybrid objectives which can address aspects of both problems.
6 - Objectives pg 29
On the second panel, you will select a representation target. The search is not required to meet the
representation target. In fact, it may only be able to satisfy some of the representation target. The
following options provide different ways to measure a representation target that is only partially satisfied:
Maximize the smallest percentage for any surrogate [recommended]: For each surrogate, we
calculate the percentage of the representation target that has been achieved. For example, if the
representation target for a single surrogate is 40 and the representation is 8, then we have satisfied
20% of that target. Then, we attempt to maximize the smallest such percentage across all
surrogates. The goal is to achieve at least some base level of representation for all surrogates. For
example, if the smallest percentage is 50%, then we have satisfied at least half of the
representation target for each surrogate. If the representation target for each surrogate can be
100% satisfied, then you might consider using the minimum area problem (or multi-criteria
minimum area problem).
Maximize the total percentage of the satisfied targets Attempts to maximize the percentage of
the total representation targets that have been met. For example, if the total of all the
representation targets is 80,000 and we have achieved a representation of 72,000 (counting all
surrogates), then the representation target is 90% satisfied. This calculation will not include
representation in excess of the targets. If the representation target is 100% satisfied, then you
might consider using the minimum area problem (or multi-criteria minimum area problem).
Maximize the number of surrogates that meet their representation target Attempts to
maximize the number of surrogates that have met their representation targets. For example, if we
have 80 surrogates, this value will be somewhere between 0 and 80 (and higher values are
preferred). If all of the surrogates meet the representation target, then you might consider using
the minimum area problem (or multi-criteria minimum area problem).
How will solutions be displayed on the objective table (ranking)?
All of the options above will attempt to maximize representation as the single most important criteria. The
solutions with the most representation will always be ranked at the top of the list. In general, ties are
broken by selecting the solution with the lower costs. But the exact formula for tie breaking is not relevant
in this basic formulation: the only requirement is that we do not exceed the cost constraints. If you want to
also minimize the costs, you will want to use a multi-criteria objective.
If a solution exceeds the cost constraints, it will be shaded gray indicating that it is not feasible. Infeasible
solutions are always ranked below feasible solutions.
What is the best way to run a search with this objective?
Usually, it is best to start the search from one of the initial solutions generated by the heuristic algorithms.
You may also start with no cells selected. I recommend using the neighborhood selection: standard since
spatial characteristics are only of secondary concern for this objective.
If you have permanently included cells, the inclusion of these cells may cause you to violate
your cost constraints. ConsNet does not currently check this case, but you will notice that it
cant find any feasible solutions.
6 - Objectives pg 30
6.5.1 Measures Available in ConsNet
A measure is just a single numerical attribute of the solution. These serve as the building blocks for the objective score and constraints. The
following table lists all of the measures available in ConsNet.
measure description
number of selected cells The total number of selected cells in this solution.
total representation The total representation in the selected cells, summed across all surrogates
area The total area of the selected cells in this solution.
perimeter The total perimeter along the boundary of the conservation area network.
shape The ratio of perimeter to area. (i.e. perimeter divided by area)
number of clusters The total number of clusters in this solution. The number of clusters is the number of individual unconnected areas in the
conservation area network. For example, if you have 500 selected cells, and 300 are connected together in one area, and
the other 200 are connected together somewhere else on the map, then the number of clusters is 2. While calculating
clusters, two cells are considered connected if they share an edge.
average cluster area The ratio of the area to the number of clusters. (i.e. area divided by the number of clusters)
6 - Objectives pg 31
total satisfied The total (in units of representation) of the representation target that has been satisfied. For example, if the total of the
for target set j representation targets (summed across the surrogates) is 80,000 and we have achieved a representation of 72,000 towards
that target, then the value reported by this measure is 72,000. This calculation will not include representation in excess of
the targets. The minimum value is 0 and the maximum value sum of the representation targets (across all surrogates).
smallest % satisfied For each surrogate, we calculate the percentage of the representation target that has been achieved. For example, if the
for target set j representation target for a single surrogate is 40 and the representation is 8, then we have satisfied 20% of that target. This
measure reports the smallest such percentage across all surrogates. The minimum value is 0 and the maximum value is 1.0
(the percentage is represented as a decimal).
total deficit The value (in units of representation) by which we fail to meet the specified representation target. For example, if the total
for target set j of the representation targets (summed across the surrogates) is 80,000 and we have achieved a representation of 72,000,
then the deficit is 8,000. The minimum value is 0 and the maximum value sum of the representation targets (across all
surrogates). A value of 0 indicates that the representation target has been met.
total surplus The value (in units of representation) by which we have exceeded the representation target. This is summed across all
for target set j surrogates.
largest deficit For each surrogate, we calculate the deficit, which is the amount by which the surrogate fails to meet its representation
for target set j target. For example, if the target for a single surrogate is 40, and the representation is 30, then the deficit is 10. This
measure reports the largest such deficit across all surrogates.
6 - Objectives pg 32
6.5.2 Weighted Multi-Criteria Scores
This section describes the process used to construct the weighted multi-criteria scores used by
several objectives in ConsNet. It should be noted that the scoring procedure borrows heavily from
the modified analytic hierarchy process described in Moffet, Dyer, and Sarkar (2006). The basic
steps to define a weighted multi-criteria score in ConsNet are:
Select which measures to include in your score
For each measure, decide whether you want to minimize or maximize the value
For each measure, choose an upper and lower bound that will be used for scaling
For each measure, specify a weight that will be used to calculate the objective score
In ConsNet, these steps can be performed manually in the user interface, or the user can import
settings from a text file (see Section 6.8). We will walk through the manual steps:
Select which measures to include. Users will be prompted to select which measures (or criteria)
they want to include. The list of available measures is shown as a collapsible tree on the left
panel. To add the criteria to the objective, drag and drop the criteria onto the panel on the right.
The order of the criteria does not affect the score (but it does affect the order of the columns
displayed on the objective table). Use the remove button to remove a measure that was added by
mistake.
Minimize or maximize. On the same panel, you have the option to minimize or maximize each
measure (see the drop down combo box). If you choose to minimize the criteria, then the search
will prefer smaller values. If you select maximize, then the search will prefer larger values.
Min and max values. Users must provide a min and max bound that will be used to scale the
criterion while computing the objective score. The max value must be strictly greater than the
minimum value. The min and max values should not be interpreted as constraints. They are only
used to score the solution, and the search is allowed to explore solutions outside of these bounds.
How do I select appropriate min max values?
For each measure that you have included in the objective score, go through the following steps to
establish the min and max values. Remember, the min and max values are used to scale the
objective score. They are not hard constraints.
STEP 1: Estimate the smallest/largest values that might be found in the entire set of
feasible solutions (i.e. all solutions that do not violate the constraints). If you have
trouble coming up with a range, observe the values ConsNet is reporting for various
solutions to estimate a min and max value (consider including a buffer on each end to
account for unknown solutions). Once you have come up with a range of values, proceed
to STEP 2.
STEP 2: Check this range of values against the goals of your plan. Would you be able
to accept a solution anywhere in that range? If not, proceed to STEP 3. Otherwise you
are done. Use the upper and lower bound of your range as the min and max values for
the objective score.
STEP 3: Narrow the bounds of your range so that it reflects the goals of your plan. This
range will represent the best possible value that you could achieve, and the worst possible
value that you could tolerate. These values will be the min and max values that you
provide for the objective score. Remember that this range is not a constraint, and the
search may leave the range you specified. If you feel very strongly that you would never
want a solution above or below the values in your range, you should consider adding a
constraint.
6 - Objectives pg 33
For STEP 3: If the search leaves the range you specified, it may not know
how to get back. This can happen when the search tries to delete or add a lot
of cells in order to shake up the solution. If the search leaves the range you
specified, and you dont like the resulting solutions, you should add a
constraint to keep the search in range.
Select your weights. After selecting the measures that will be used in the problem, you have to
choose a weight for each measure. You can use any scheme you want, but I tend to prefer simpler
approaches. I have had a lot of luck with the following strategies:
Ask planners to create a bar chart representing the relative importance of each criterion.
Measure the length of each bar and add them together to obtain the total. Divide the
length of each bar by the total to get the weight for that criterion.
Give planners 10 (or 20, or 50 . . .) votes. They can vote for each criterion as many times
as they want. Use the number of votes as the weight.
If you have a lot of criteria, it is incredibly helpful to organize them into a hierarchy and
then use a hierarchical weighting scheme.
For a more formal weight elicitation process, see the analytic hierarchy process (Saaty,
1980) and the modified analytic hierarchy process (Moffett et al., 2006).
How is the score computed? The score is computed as a linear combination of weights and
scaled criteria values, almost exactly as described in the modified analytic hierarchy process
(Moffett et al., 2006).
Essentially, each measure is scaled linearly between the min and max values to produce a value
between 0 and 1 (inclusive). We multiply this value by the weight, and then add them all up to get
the final score. To adjust for the fact that some criteria are being minimized and some are being
maximized, we adopt the convention that values closer to 0 are preferred. For those criteria that
are being maximized, we reverse the scaling so that it follows this convention. As a result, the
best scores are those closest to zero. The worst possible score is equal to the sum of all of the
weights (which is often 1).
6 - Objectives pg 34
Greater than or equal to some value
Less than or equal to some value
Between two values (greater than or equal to the min value, and less than or equal to the
max value)
Choose the proper order. The rules used to sort and compare two solutions are sensitive to the
order of the constraints. If we have two constraints (A and B), the search will try to satisfy
constraint A before it satisfies constraint B. In this sense, A is the highest priority constraint. This
hierarchical comparison can be extended to more constraints.
6 - Objectives pg 35
How will solutions be displayed on the objective table (ranking)?
All of the feasible solutions are ranked in order of the objective score, where lower values are preferred.
Remember that the constraints do not factor into the objective score. If a solution fails to meet the
constraints, it will be shaded gray indicating that it is not feasible. Infeasible solutions are always ranked
below feasible solutions.
What is the best way to run a search with this objective?
It is best to start from a high quality solution that already has some of the spatial characteristics that you are
looking for (because it can take the search a while to fix poor spatial arrangement). Any time spatial
characteristics are important, you should use the neighborhood selection: aggressive (spatial
rearrangements)
6 - Objectives pg 36
How will solutions be displayed on the objective table (ranking)?
All of the feasible solutions are ranked in order of the objective score, where lower values are preferred.
Remember that the constraints (including the cost constraints) do not factor into the objective score. If a
solution fails to meet the constraints, it will be shaded gray indicating that it is not feasible. Infeasible
solutions are always ranked below feasible solutions.
What is the best way to run a search with this objective?
It is best to start from a high quality solution that already has some of the spatial characteristics that you are
looking for (because it can take the search a while to fix poor spatial arrangement). Any time spatial
characteristics are important, you should use the neighborhood selection: aggressive (spatial
rearrangements)
6 - Objectives pg 37
7 Search and Optimization
This section describes how to run a search in ConsNet. You must create an objective before you are able to
run a search (see Section 6).
The newest version of ConsNet allows users to run multiple searches at once. The search tab shows all of
the different search engines which are available. Only one search engine will be available on computers
with one processor; computers with more than one processor will have multiple search engines available.
Each search engine can run an independent search for any objective (all of the search engines work the
same). If you are unfamiliar with the program, it is best to start with just one search at a time.
When setting up a search, carefully check each box (1-6) to make sure it has an appropriate setting. When
you are ready, hit the start button to start the search. If you have made a mistake, the search will not
start, and an error message will be displayed. The search may be stopped at any time with the stop
button.
1. Objective. Select the objective that will be used during the search. If no objectives are available, you
must create one on the objectives tab (see Section 6).
2. Start Location. Select the starting point for the search. You may start the search from any solution in
any portfolio (the portfolios appear on the drop down menu). If you do not currently have any solutions,
you will have to build some initial solutions (see Section 5.2). Two other options are provided:
best known solution for this objective - the best solution that is available for the currently selected
objective. If no solutions have been evaluated for this objective, then a best known solution is not
available. In this case, an error message will notify the user.
last visited solution for this search - the search will start from the last solution that was visited.
This option is not available when the program first starts. In this case, an error message will
notify the user.
Choose a starting point that is as close as possible to meeting the goals of the specific objective. This can
save time and find better solutions compared to starting the search from a poor solution.
3. Evaluation Model. The evaluation model defines how the search will process individual solutions. In
single-threaded mode, the search will run on one processor. In multi-threaded mode, the search will
use two or more processors to perform evaluations. The multi-threaded option will only be available on
computers with more than one processor. Users with four or more processors will be able to select the
number of processors that should be used in the search.
4. Neighborhood Selection Strategy. The neighborhood selection strategy controls the types of moves
that are available during the search. These strategies can improve the speed of the search and lead to
solutions of higher quality. See Section 7.3 for notes about choosing the proper neighborhood selection
strategy for a search.
5. Max Number of Iterations. The maximum number of iterations that the search will run. If greater
than zero, the search will terminate after the specified number of iterations.
n m F c Q
500,000 200 1 10 ~915 MB
200,000 1,000 1 0 ~1525 MB
1,000,000 200 1 40 ~2746 MB
5,000,000 200 1 20 ~10681 MB
9 - Known Issues pg 46
10 References
Ciarleglio, M. (2008). Modular Abstract Self-Learning Tabu Search (MASTS): Metaheuristic Search
Theory and Practice [dissertation]. University of Texas at Austin, Texas.
Gilbert, D. (2000). JFreeChart (v1.0.9), http://www.jfree.org/jfreechart/.
Margules, C. R., & Sarkar, S. (2007). Systematic Conservation Planning. Cambridge, UK: Cambridge
University Press.
Moffett, A., Dyer, J. S., & Sarkar, S. (2006). Integrating biodiversity representation with multiple criteria in
North-Central Namibia using non-dominated alternatives and a modified analytic hierarchy
process. Biological Conservation, 129(2), 181-191.
Pawar, S., Koo, M. S., Kelley, C., Ahmed, M. F., & Sarkar, S. (2007). Conservation Assessment and
Prioritization of Areas in Northeast India: Priorities for Amphibians and Reptiles. Biological
Conservation, 136, 346-361.
Saaty, T. L. (1980). The analytic hierarchy process : planning, setting priorities, resource allocation. New
York ; London: McGraw-Hill International Book Co.
10 - References pg 47