You are on page 1of 51

ConsNet Manual

Ver 2.00
April 2010

Michael Ciarleglio, Sahotra Sarkar, J. Wesley Barnes

Biodiversity and Biocultural Conservation Laboratory, Section of Integrative Biology, 1 University


Station, C0390, University of Texas at Austin, Austin, TX 78712.

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.

Comments and questions to michael.ciarleglio@gmail.com and/or sarkar@mail.utexas.edu.

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

A discussion group for ConsNet software is located at:


http://groups.google.com/group/consnet/

Additional information about the BBCL is located at:


http://uts.cc.utexas.edu/~consbio/Cons/Labframeset.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.2 Whats New in ConsNet v2?


New objectives including the maximum representation problem
Portfolio management collect and manage your favorite solutions
Improved memory management
Improved speed
Improved interface
Improved scalability

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.2 Minimum System Requirements


ConsNet requires a minimum of 1GB RAM and a 1.0GHz processor. The installation files require less than
10MB of hard drive space, but subsequent storage may require hundreds of megabytes. Larger datasets
will require at least 2GB of RAM and additional hard drive space. Users with large datasets should read
Chapter 8.
ConsNet can take advantage of multiple processors with shared memory, such as dual core or quad core
processors. ConsNet has been tested with the Windows XP-Pro and Windows XP-Pro 64, and Windows
Vista, and Windows 7 operating systems.

2.3 Install Java


ConsNet requires a Java Runtime Environment (JRE) compatible with Java 6.0. Many free JREs are
available. This software was tested with the JRE from Sun Microsystems, which can be downloaded for
free at this website:
http://www.java.com/en/download/index.jsp
If you already have an older version of the JRE from Sun Microsystems, please check to make sure that this
version is JRE 6 update 3 (6u3) or later. Otherwise, ConsNet will not run.
This software was developed, tested, and built using the Java SE Developers Kit 6 (JDK 6) from Sun
Microsystems. The JDK includes the JRE and has other features for software developers. Users with
WindowsXP on a 32-bit multiprocessor machine are strongly encouraged to download and install the full
JDK, since it includes options not available with the JRE (see Section 8.3). The most recent JDK can be
found at:
http://java.sun.com/javase/downloads/index.jsp
Java for 64-bit Processors
On a 32-bit machine, there is an upper limit to the amount of memory that may be allocated to a Java
program. Within WindowsXP, the upper limit is approximately 1.4 GB (due to the way that Windows
addresses memory and the overhead requirements of the Java Virtual Machine).
Sun Microsystems (and possibly other vendors) provide a free JRE that is compatible with 64-bit
processors. In the 64-bit environment, a single Java program may take advantage of substantially more
memory. To use Java with a 64-bit processor, the operating system must support a 64-bit processor (such
as Windows XP-Pro 64). ConsNet has been tested on dual core and multi-core 64-bit processors.

2.4 Installing ConsNet


Once Java is installed, installing ConsNet is quick and simple. Locate the file consnet.zip. Unzip the
packaged files onto your hard drive (any location that has the available space). All of the files used by
ConsNet will be stored in this directory. ConsNet can be completely uninstalled by deleting this directory.

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).

consent_client.bat launches the program with the client VM

java -Xms512m -Xmx512m -showversion -verbosegc -jar consnet.jar


@pause

consent_server.bat launches the program with more memory in the server VM

java -Xms1024m -Xmx1024m -server -showversion -verbosegc -jar consnet.jar


@pause

2.5.2 Launch from command line


Command line arguments may be used in the .bat files, or from a terminal window or command
prompt. To run ConsNet from a command prompt, navigate to the installation directory (which
contains consnet.jar) and issue the following command:
java Xms512m Xmx512m -jar consnet.jar

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

JVM JVM arguments ConsNet arguments

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.5.3 Properties file


The properties file can be used to control various aspects of ConsNet behavior. The properties file
has more instructions about how to set each property.

nSearchEngines Governs how many search engines will be available to execute


simultaneous searches. For most users, one search at a time
will be enough. Running more than one search at a time
requires extra resources, and should only be done on large
computers.
graphicsEnabled Users may want to disable the graphics which draw the solution
and maps, since they may consume a lot of memory for large
problems.
autoLoad This property can be used to automatically load a specific
problem as the program is starting up.
interface When set to user this property hides most of the advanced
options in the interface. Setting this property to admin shows
more options that most users dont care about.

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.

3.1 Problem Profiles


For each dataset, the user creates a problem profile that stores the essential problem data. A wizard will
step through the necessary steps to create this problem profile. The next time the program starts, the
problem can be loaded quickly using the problem profile. The problem profile cannot be modified after
creation, because this would invalidate all of the currently stored results for that problem.

3.2 New or Existing Problem


To load a problem, go to the Problem menu and select load problem. The first step is to decide whether
you want to load a new problem or an existing problem. If you want to load a new problem, you will have
to go through several steps in order to set it up.

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.3 Setting Up a New Problem


The next series of steps will ask what type of data and file formats you have. File formats are discussed in
Section 4. The panels are described below:

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.

Spatial Analysis Type


area, perimeter The program will keep track of only the area and
perimeter.
area, perimeter, and clusters [recommended] The program will keep track of area,
perimeter, and the number of clusters in the network.
Provides better analysis of both shape and
connectivity.
area, perimeter, clusters, and replication In addition to area, perimeter, and clusters, the search
will keep track of the replication data for selected
surrogates. Due to the computational overhead, select
this option only if replication is critical to your
analysis.

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.

Interpreting Presence-Absence Values


normal [recommended] The presence-absence values are
stored as a boolean array. This is faster, but requires
more memory.
compressed Presence-absence data is stored as single bits.
Requires less memory, but runs slower.

3.4 Loading the Input Files


After answering those initial questions, ConsNet will ask you to load the required input files, one at a time.
Some of these files may be skipped if you do not want to provide them.
The first file is the representation file. Click the browse button to locate this file on your computer. The
format of this file must match the response given above. ConsNet will read this file and check for errors.
Once the file has successfully loaded, double check the output for correctness and hit next to continue.
The next optional input file specifies the set of permanently included cells. These are cells that must appear
in the conservation area network. The format of this cell file is given in Section 4.9. If there are no
permanently included cells, hit next to continue.
The next optional input file specifies the set of permanently excluded cells. These are the cells that may not
be included in the conservation area network. The format of this cell file is given in Section 4.9. If there
are no permanently excluded cells, hit next to continue.
The next optional input file is the cost file. This assigns a set of auxiliary costs to the each cell. The format
of this file is given in Section 4.8. If there are no costs for this problem, hit next to continue.
The next two steps allow users to input various representation targets, either as fixed percentages or as a
user supplied input file (or both). The first page asks users if they would like to automatically create
representation targets based on fixed percentages. These targets are determined as the percentage of the
total representation of each surrogate over the entire network (including the excluded cells). Users may
leave this page blank if their analysis does not require percentage based representation targets. However, if
fixed percentage representation targets are being used, make sure to select all targets of interest because
they cannot be added later.
The next step allows users to define representation targets from a file. The format of the representation
target file is given in Section 4.6. If you do not wish to add representation targets from a file, hit next to
continue.
If the problem involves replication, then there are two additional steps. The next page will ask for a
replication goal input file. A replication goal specifies a desired replication level for each surrogate. The
format for this file is given in Section 4.7. If you do not have any replication goals, hit next to continue.
The following page asks which surrogates should be included in the replication computation. Select only
those surrogates for which replication is important (each additional surrogate requires extra computation).
Note that if the surrogate has a non-zero replication goal from the previous step, then it is automatically
included.

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.5 Deleting Old Problems


After a while, you may want to delete old problem profiles. This has to be done manually. If the problem
is called MX_Mammals, then you will have to delete two items in the /data folder:
The MX_Mammals folder. This folder contains all of the saved solutions for this problem and
all previous search history. Deleting this folder resets the problem to its initial state.
The MX_Mammals.quickload file. This contains the problem definition. Once this is gone, you
can no longer use any of the data in the MX_Mammals folder.

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.

header contains (comma or tab delimited)


nSurrogates, <reserved>, <reserved>, surrogateName1, surrogateName2,
body contains (one row per cell, white space delimited)
cellID X Y surrogateRep1 surrogateRep2

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.

header contains (comma or tab delimited)


nSurrogates, <reserved>, <reserved>, surrogateName1, surrogateName2,
body contains (one row per cell, white space delimited)
cellID X Y surrogateRep1 surrogateRep2

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.

20 27.043728 20.848288 3 21 4.8616533 14 5.561313 19 4.8640084


21 27.03062 20.843575 2 15 5.561313 20 4.8616533
22 26.106153 20.51111 2 23 4.692941 27 5.561313
23 26.091671 20.505903 3 24 4.6903353 22 4.692941 28 5.561313
24 26.07717 20.500687 2 23 4.6903353 29 5.561313
25 26.135057 20.521505 2 26 4.698142 31 5.561313
26 26.120615 20.516312 3 27 4.6955433 25 4.698142 32 5.561313
27 26.106153 20.51111 4 28 4.692941 22 5.561313 26 4.6955433 33 5.561313
28 26.091671 20.505903 4 29 4.6903353 23 5.561313 27 4.692941 34 5.561313

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.)

header line (optional, comma or tab delimited)


<reserved>, targetSetName1, targetSetName2,
body contains (one row per surrogate, white space delimited)
surrogateName targetForSet1 targetForSet2

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.

header line (optional, comma or tab delimited)


<reserved>, replicationGoalName1, replicationGoalName2,
body contains (one row per surrogate, white space delimited)
surrogateName replicationGoal1 replicationGoal2

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.

header line (required, comma or tab delimited)


<reserved>, costName1, costName2,
body contains (one row per cell, white space delimited)
cellID cost1 cost2

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.

header line (optional, will be skipped)


the header line is skipped if it contains alphabetic characters [a-z][A-Z]
body contains (one row per cell, white space or comma delimited)
cellID [other information 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.1 Problem Display Tab


The problem display tab allows users to study the features of their problem. Currently, the display is only
enabled for problems in which the cells are arranged on a rectangular grid.
The main feature of the problem display panel is the richness map, shown below. The value for each cell is
the sum of representation for all surrogates (i.e. richness). The example below is a presence-absence data
set. The color bar along the right hand side indicates that white cells contain 27 different species, while
blue cells contain between 3 and 5 species.
Buttons along the bottom allow you to zoom in, change the color scheme, and save the image. The more
data button brings up another window which displays distribution maps for individual species and maps
for each cost layer (if costs are part of the data set).

5.2 Init Soln Tab


The initial solution tab allows users to build different solutions to start the analysis. The initial solutions
are not optimal and cannot address multiple criteria such as costs or spatial configuration. The only role of
an initial solution is to provide a starting point to begin a more detailed search.
To get started, click the build initial solutions button on the initial solution tab. For each target set, users
will see six different heuristic algorithms (briefly described on the table below). These heuristic algorithms
will attempt to build a solution which satisfies the given representation target with the fewest number of
cells possible. In nearly all cases, the heuristic solutions are not optimal.

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.

Initial Solution Description

MDS2 A complementarity algorithm that pursues the Most Deficient


MDS2 adjacency Surrogates first. Cells that reduce the remaining deficits are chosen
first. In the event of a tie, cells are chosen to satisfy the surrogates
with the largest deficit.
RF4 A Rarity First algorithm. Cells that contain the rarest surrogates
RF4 adjacency which have not met the representation target are chosen first. In the
event of a tie, cells are chosen based on complementarity.

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.3 Portfolios Tab


The portfolio tab contains a new tool to help organize your analysis. A portfolio is a collection of solutions
(like a folder). Each solution in a portfolio has a unique name (an alias) that helps identify the solution.
To create a new portfolio, click the new portfolio button. You may not have two portfolios with the same
name, and you cannot use illegal filename characters or commas in your name. To delete a portfolio, click
the delete portfolio button. You are not allowed to delete the ConsNet portfolio because it is needed by
the program.
When you click on a portfolio, the contents appear on the table to the right. A right-click on this table
opens a context menu with actions that can be performed on the selected solutions (move, copy, delete,
etc). You may sort this table alphabetically by clicking on the column headers. You can select multiple
items on the table using the CTRL and SHIFT keys.
Each solution in the portfolio must have a unique alias. However, it is possible that two different aliases
may refer to the same solution (that is, a single solution may have one or more aliases). The program uses
a computer generated hash to assign a unique serial number to every solution. You can use the hash value
to determine whether to two different aliases refer to the same solution.

5.3.1 Importing Solutions


The import solutions button can be used to import solutions from a text file. The import file
must follow the cells file (Section 4.9) format, which lists the cell IDs of the cells that are included
in the solution.
When you import solutions, you may put them in any portfolio you want. You may import several
files at once. To select multiple files, hold down the CTRL or SHIFT keys while making your
selection in the file chooser dialog box. The name of the input file will be assigned as the alias for
the new solution.

5.3.2 Exporting Solutions


The export selected items option on the context menu can be used to export solutions. When a
solution is exported, two files are created in the export directory.
The <name>.txt file lists the cells which are included in the solution. Each row consists of the
cellID, X, and Y coordinates. This file is convenient to import into GIS.
The <name>(rep).csv file lists the surrogate representation for this particular solution. The
comma separated value (.csv) format is easily opened by a spreadsheet program.

5 - ConsNet Overview pg 20
exported
solution

exported solution (rep).csv exported solution.txt


0,Chaetodipus_artus,624.0 447 -116.07917 30.82555
1,Chaetodipus_dalquesti,8.0 573 -115.92917 30.42555
2,Microtus_oaxacencis,44.0 574 -115.92917 30.47555
3,Microtus_umbrosus,552.0 618 -115.87917 30.37555
... ...

Exported solutions are sent to the export directory, located here:


<installation directory>\data\<problem name>\export\
If this directory becomes crowded and it is difficult to find files, try sorting the files by date.
Users may delete older files if they are no longer needed.

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.5 Objectives Tab


The objectives tab allows users to define new objectives which can be used to rank and evaluate solutions.
You must create an objective in order to run a search. The objective is the goal of the optimization
problem, as well as a statement of preference. This section shows how to use the features of the objective
tab. To learn more about objectives, see section Chapter 6.
Each objective contains scores which have been evaluated for some or all of the solutions in the solution
archive. These scores are sorted (according to the rules in the objective) so that the best scores appear at
the top of the table.
It is important to note that the central solution archive operates independently from the objectives. Each
objective score contains a link to the solution which created it. If you delete an objective score, the link is
deleted, but the solution is not removed from the archive. Moreover, it is possible that a single solution can
be evaluated for several different objectives (each score would contain a link to the same solution). It is

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

solution in the archive


score for objective A (linked to a single solution)
score for objective B (linked to a single solution)

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.5.1 Working with the Objective Table


The objective table displays all of the criteria which are used to rank individual scores. A right-
click on this table opens a context menu with actions that can be performed on the selected
solutions.
The save column contains a checkbox which can be used to save a score. A checkmark in this
column indicates that the score will not be erased during a purge (regardless of its rank). When a
search is running, new scores are constantly being added and old scores are being purged. The
save checkmark can single out a score that you would like to keep.
The ID column shows the computer assigned serial number (hash) of the solution, or an alias for
that solution if one is available. If the solution has been saved in a portfolio, then the alias for the
solution will be displayed instead of the hash. This makes it easy to identify solutions which have
been named.
To obtain the alias for a given solution, the objective table will look in the active portfolio. You
can change the active portfolio from the right click menu. Initially, the ConsNet portfolio is the
active portfolio.
Double clicking in the ID field allows you to name (or rename) a solution. This will save the
solution to the active portfolio. Alternatively, you may use the rename option in the right click
menu.
The remaining columns represent the individual criteria addressed by the objective. The table can
be sorted in ascending and descending order by clicking on the column headers.
Data from the table can be exported to a spreadsheet. Multiple rows may be selected by holding
down the SHIFT or CTRL keys. The export to spreadsheet option will create a comma
separated value text file which can be opened by most spreadsheet programs. The file will be
saved in the export directory, located here:
<installation directory>\data\<problem name>\export\

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.6 Search Tab


The search tab displays all of the search engines that are available, and allows you to access the control
panel for each search. The number of available search engines can be set in the properties file.
To open the control panel for a search engine, click the open in new window button. If the window is
already open or iconized, it will be brought to the front of all other windows. Each search engine will have
its own window. When you close this window, it does not disrupt the search. The window is simply
hidden until the next time you want to look at it.
Most users will have two search engines available, which means that they can run two searches at a time.
If you want to run two searches at the same time, you need to make sure that you divide the work based on
the number of available processors. For example, if you have an 8 processor machine, you could use 4
processors on the first search engine, and four processors on the second engine. If you ask both search
engines to use 8 processors, both search engines will run slow!
There is no difference between the two search engines, and they operate independently, with one notable
exception. Both search engines use the same solution archive and objectives. Sometimes the search makes
decisions based on whether a solution already exists in the archive. If search engine A finds a solution, and
then search engine B finds the same solution, it may choose a different path (to avoid following the same
path as search engine A).

5.7 Settings Menu


5.7.1 Memory Management and Purging
The solution archive in ConsNet allows users to save their preferred solutions and observe the
long term behavior of the search. While the search is running, it saves each incumbent solution

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.9 Shutting Down


When it is time to close ConsNet (or unload a problem), some data needs to be stored to the hard drive. All
solutions and objectives currently in memory will have to be saved if you plan to use them in the future. If
there are a large number of solutions in memory, then you may want to perform a purge before closing the
program. Two options are available.
 Purge some of the solutions, then save and unload problem [recommended] this option will
purge unneeded solutions. Users are asked how many of the best solutions (for each objective)
should be kept during the purge. The purge will not remove any solutions from your portfolios or
any solutions that have been marked save. Once the purge is complete, users can hit next to
unload the problem and exit the program (or cancel to return to the program).
 save all data and unload the problem this option can take a long time if there are a lot of
solutions in memory.

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:

objective type description


minimum area problem Solves the basic problem: minimize the area subject to the
constraint that the solution must satisfy a specific
representation target. This objective is pre-defined, and
does not require user-configuration.
multi-criteria Solves a multi-criteria problem: minimize area subject to
minimum area problem the constraint the solution must satisfy a specific
representation target, while considering a variety of other
criteria. This objective is user-defined and requires some
configuration.
maximum representation problem Solves the basic problem: maximize biodiversity
representation given a set of cost or area constraints. This
objective is pre-defined, and does not require user-
configuration.
multi-criteria Solves a multi-criteria problem: maximize biodiversity
maximum representation problem representation given a set of cost or area constraints, while
considering a variety of other criteria. This objective is
user-defined and requires some configuration.

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.2 Creating a New Objective


To create a new objective, go to the OBJECTIVE tab and click new objective. A list of available
objective types will appear. Note that you may need to scroll down to see all of the objectives on this list.
Select the type of objective you want to build and select OK.
Once you create an objective, it should appear on the drop down list in the objective tab. To view your new
objective you will have to select it from this list. When you first create an objective, it contains no scores.
You can sync the objective with solution archive, which will evaluate the objective for all solutions that are
currently known. This gives you an immediate idea of how well your current solutions perform, and
provides a better starting point when you are ready to run the search.

6.3 Minimum Area Problem


This type of objective addresses the basic minimum area problem (or set cover problem). The primary goal
is to meet a specified representation target using the fewest cells possible (a minimal cardinality solution).
This pre-defined objective does not require a lot of user configuration. Users must select which
representation target they would like to use, and select one of the following options:
minimize the number of cells this objective tries to minimize the number of cells, and does not
worry about other criteria
minimize the number of cells and optimize shape this objective tries to minimize the number
of cells and looks for opportunities to improve the shape. For some problems, this works very
well because there are so many optimal solutions that it is relatively easy to find one that has a
desirable shape. However, this option may not work for every problem, because it is not always
possible to find a spatially coherent minimal area solution. In addition, you dont have control
over how this objective selects for shape and clustering. If the solutions are not to your liking, you
should use a multi-criteria objective where you have more control over shape and clustering.
How will solutions be displayed on the objective table (ranking)?
Both options will attempt to minimize the number of cells as the single most important criteria. The
solutions with the fewest cells will always be ranked at the top of the list. Ties are broken by looking at the
other columns (shape, total representation, etc.).
If a solution fails to meet the representation target, 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.
I recommend using the neighborhood selection: standard since spatial characteristics are only of secondary
concern for this objective. But if you are getting good spatial results, you can also use neighborhood
selection: aggressive (spatial rearrangements)

6.4 Maximum Representation Problem


This type of objective addresses the maximum representation problem (or maximal cover problem). The
primary goal is to maximize biodiversity representation given a set of cost or area constraints. This pre-
defined objective does not require a lot of user configuration. Users must specify which costs to include in
the problem, and how they would like to measure biodiversity representation.
On the first panel, you will define your constraints. You can create any number of less than constraints
on the area, number of cells, or any of the costs defined in the costs file. The order does not matter. The
search is required to find solutions that do not exceed these constraints.

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.5 Multi-Criteria Objectives in ConsNet


All of the multi-criteria objectives in ConsNet work in roughly the same way. Each objective consists of a
weighted score (based on one or more measures), a set of optional constraints, and a comparison rule that
defines how to compare two different solutions. A measure is just a single numerical attribute of the
solution. Measures serve as the building blocks for the objective score and constraints.
This section will outline define these concepts, and the following sections will describe how to properly set
up specific multi-criteria objectives.

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)

for each surrogate i


representation for surrogate i The representation of this specific surrogate, summed across all of the selected cells.
replication for surrogate i The replication of this specific surrogate. Replication counts the number of clusters in which this surrogate has non-zero
representation. This measure is only available if replication was enabled during problem setup.

for each set of representation targets j


number of satisfied targets The total number of surrogates that meet representation target j. The value will be between 0 and the number of
for target set j surrogates.
total % satisfied The total percentage of the representation target that has been satisfied. For example, if the total of the representation
for target set j targets (summed across the surrogates) is 80,000 and we have achieved a representation of 72,000 toward that target, then
the representation target is 90% satisfied. This calculation will not include representation in excess of the targets. The
minimum value is 0 and the maximum value is 1.0 (the percentage is represented as a decimal).

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.

for each cost k


total for cost k The sum across all of the selected cells for the specified cost.
average (for cost k) The total cost divided by the number of cells, which translates into an average cost per cell. For example, suppose the cost
was the distance to the nearest roadway. As a sum, this doesnt make sense because it keeps getting bigger as you add
more cells. But the average value can be interpreted as the average distance to the nearest roadway, which is something
that you might want to minimize or maximize.

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.5.3 Using Constraints


The second part of a multi-criteria objective in ConsNet is constraints. A constraint requires the
search to enforce a specific condition. For example, we would use a constraint to require that the
solution meets a specific representation target, or that a solution cannot exceed a specified number
of cells. Any solution that does not meet the constraints is considered infeasible, and is shown in
gray on the objective panel. You can create an objective with 0, 1, or more constraints.
Defining constraints is very similar to defining the criteria used in the objective score. Users must
consider:
the measures that will be used as constraints
what type of constraint to enforce
the order in which the constraints should be applied
Select which measures to use as constraints. The list of available measures is shown as a
collapsible tree on the left panel. To add a constraint to the objective, drag and drop the criteria
onto the panel on the right. The order is very important, because it affects the order in which the
search enforces the constraints (see below). Use the remove button to remove a measure that was
added by mistake.
Select what type of constraint to enforce. Users can select the type of constraint from the drop
down combo box for each specific measure. The three main constraints are:

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.

Be careful when using multiple constraints. The constraints should be non-conflicting.


That is, meeting constraint B should not make it impossible to meet constraint A, and
vice versa. When using multiple constraints, the second and third constraints should be
loose enough to ensure that there are many solutions that satisfy all of the constraints.

6.6 Multi-Criteria Minimum Area Problem


This section describes the specific steps required to set up a multi-criteria minimum area problem. It
assumes that you have read Section 6.5, which describes how to construct multi-criteria objectives in
ConsNet.
First, click new objective and select multi-criteria minimum area problem. Here are the basic steps to
create this type of objective:
Select the representation target that will be the basis of this minimum area problem. The solution
is required to meet this representation target.
Choose the criteria that you want to include in your objective score and assign weights (see
Section 6.5.2 Weighted Multi-Criteria Scores). You should include at least one criterion that
minimizes area, the number of cells, or some cost (this is what makes it a minimum area problem).
Choose any additional constraints that you want to enforce (see Section 6.5.3 Using Constraints)
Here are some additional recommendations for this type of objective:
Remember to include at least one criterion that minimizes either the area or the number of cells.
This is what makes it a minimum area problem.
You should include some criteria that optimize the spatial characteristics of the conservation area
network.
Some of your criteria will cause the search to remove cells, and some will cause the search to add
cells. Depending on the weights you specify, the search may decide to add a lot of cells. This is
not wrong; it just means that your preference to minimize the area is not as strong as some of your
other preferences. However, you should always place an upper limit on the number of cells or
area (as a constraint). This keeps the search from going out of range, and puts realistic bounds
on how much land you can include in your conservation area network.
If shape is part of your analysis, you may want to place an upper limit on the shape (as a less than
or equals constraint). In rare cases, the neighborhood strategy aggressive (spatial
rearrangements) can knock the search out of range you specified, often by deleting a huge chunk
of the solution. Once the search leaves this range, it may not know how to get back. The less
than constraint will make sure that the shape stays in the range that you want.
You can maximize representation beyond the amount required by the constraints. For example, if
you used a 5% representation target as the constraint, you might want to encourage the search to
find better representation by including the 10% target as a criterion in the objective score.

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.7 Multi-Criteria Maximum Representation Problem


This section describes the specific steps required to set up a multi-criteria maximum representation
problem. It assumes that you have read Section 6.5, which describes how to construct multi-criteria
objectives in ConsNet.
First, click new objective and select multi-criteria maximum representation problem. Here are the basic
steps to create this type of objective:
First, define all of your cost constraints. These constraints take the form of less than or equal to,
and may be applied to the number of cells, the area, any of the costs, or any of the surrogates. You
may have as many constraints as necessary. The program says that order is important, but it is
not; all cost constraints will be satisfied regardless of order.
Next, choose the criteria that you want to include in your objective score and assign weights (see
Section 6.5.2 Weighted Multi-Criteria Scores). You should include at least one criterion that
maximizes representation (this is what makes it a maximum representation problem).
Choose any additional constraints that you want to enforce (see Section 6.5.3 Using Constraints)
Here are some additional recommendations for this type of objective:
It usually makes sense to include some criteria that optimize the spatial characteristics of the
conservation area network.
You should include at least one criterion that maximizes representation. Thats what makes it a
maximum representation problem.
When maximizing representation, you must use a combination of measures to assess how
well you meet the representation target. For a given representation target, there are three
primary measures that assess how well we have satisfied the target: (1) the total satisfied targets
(2) the number of surrogates meeting the target and (3) the smallest % percentage target satisfied
(see Section 6.5.1). The last two items should always be paired with the first. Taken alone, they
do not provide enough information to tell the search which way to go. I recommend using all
three because they are all important in their own way. Maximizing measure (3) ensures that we
are evenly meeting the representation target, so it is probably the most important.
When maximizing representation, make use of multiple tiered representation targets. For
example, you may place a lot of emphasis on meeting the 5% representation targets, and less
emphasis on meeting the 10% targets, and even less emphasis on meeting the 15% targets. This
provides a useful way to express the need to meet some base level of representation (if possible)
before trying to add more.
If shape is part of your analysis, you may want to place an upper limit on the shape (as a less than
or equals constraint). In rare cases, the neighborhood strategy aggressive (spatial
rearrangements) can knock the search out of range you specified, often by deleting a huge chunk
of the solution. Once the search leaves this range, it may not know how to get back. The less
than constraint will make sure that the shape stays in the range that you want.

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.8 Loading Criteria from a Text File


If you have several criteria that you want to include in your objective score, you may want to load them
from a file. Entering them by hand can be tedious and error prone.
The structure of the text file should follow the table below, using tab delimited columns. You can create
this text file easily from Excel (assuming you have the same columns). Just copy the cells to your
clipboard and paste them directly into your text editor. The column headers are optional.
Alternatively, when you are done creating your objective, you will see a summary screen listing the criteria
and weights in your objective score. You can copy and paste the table from the summary screen into a text
file and save it for later modification and use.
Note that this table does not include the constraints. You still have to enter those by hand.

measure treatment weight lower bound upper bound


number of selected cells minimize (scaled) 0.5 8000 15000
shape minimize (scaled) 0.25 0.1 0.5
roadless areas maximize (scaled) 0.25 0 1298

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.

7.1 Tabu Search


Tabu search is a metaheuristic that relies on dynamic memory structures to organize and navigate the
search space. The search gets its name from the tabu memory which is a set of rules that prohibits the
search from making certain moves. One common tabu restriction is that the search is not allowed to make
moves which would undo a recent move.
At each iteration (starting from a current solution), the search evaluates a set of neighboring solutions (a
neighborhood). In general, each neighbor is a simple modification of the current solution, but more
complex transformations may also be used. The search then chooses the best neighboring solution which is
not tabu, and this becomes the current solution for the next iteration.
The tabu search in ConsNet has two new features that improve search performance: rule based objectives
(RBO) and dynamic neighborhood selection (DNS). RBOs use binary comparison operators (rather than
traditional numeric scores) to rank solutions and make decisions at each iteration in the search. RBOs
enable users to specify precise ordinal rankings, and may be more compatible with user preferences in a
multi-criteria setting. DNS is a meta-strategy which manages multiple neighborhoods and attempts to
choose the best one for the next iteration in the search. A well-constructed strategy can be used to
moderate the intensification and diversification of the search, and can allow smaller neighborhoods to be
used more effectively, reducing the number of evaluations required during exploration.

7.2 Search Window


The search window displays the search progress and enables users to interact with the search. The search
window may be closed or minimized at any time without disrupting the current search. If you close the
window, you may open it again using the open search window button on the search tab of the main
program. The graphs and other information are updated even while the search window is not visible.

7 - Search and Optimization pg 38


1
2
3
4
5
6

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.

7 - Search and Optimization pg 39


6. Max Search Time. The maximum time (in seconds) that the search will run. If greater than zero, the
search will terminate after the specified number of seconds.
If users do not provide maximum number of iterations or the max search time, then the search will run
indefinitely until the stop button is pressed. For advice on how long to run the search, see Section 7.5.

7.3 Neighborhood Selection Strategy


The neighborhood selection strategy governs how the search explores new moves at each iteration. This
can be used to intensify and diversify the search. For instance, if the search progress slows down, the
neighborhood selection strategy will propose an escape move that shakes up the solution and leads to new
regions of the search space.
If you are using a multi-criteria objective that considers spatial characteristics, you should use:
aggressive (spatial rearrangements). This strategy combines the best pieces of all the other
strategies. When it has been a long time without a new best solution, it tries to diversify the
solution by expanding or deleting clusters.
If you want to refine a high quality solution, use: basic (use large nbhd only). This strategy
looks very carefully at all of the solutions around the current solution, and can find solutions that
you might miss otherwise. You should always refine your best solutions after you have run an
extended search.
If you are trying to solve the basic minimum area problem or maximum representation problem
(not the multi-criteria versions), you should use: standard. This strategy uses a combination of
intensification and diversification moves.
If your problem has more than 2,000,000 cells, you may not want to use the large neighborhood.
It generates one solution for each cell, and you may run out of memory. You can disable this
neighborhood on the CORES tab, or you can use: basic (general nbhds only). This strategy will
never use the large neighborhood or perform spatial rearrangements. As a result, it is not as
effective as some of the other strategies.

7.4 Cores Tab (advanced features)


The search engine contains a search core for each objective. Each search core keeps relevant search
statistics such as the current iteration and number of evaluations. The search core also contains dynamic
memory structures used to run the search. Some of these values are persisted over time, even after the
program restarts.
The reset search core button resets all counters (such as the number of iterations, number of evaluations,
etc.) and returns all memory structures, settings, and log files to an initial state.
The status panel shows the counters which keep track of the search core. When a search is running, these
values will automatically update.
The nbhds panel panel allows users to control which neighborhoods are available to the search engine.
The neighborhoods are grouped into two categories: general nbhds and special use nbhds. A
checkmark indicates that the search engine may use that specific neighborhood. To disable this
neighborhood, remove the checkmark. This panel also allows users to force the search to use a specific
neighborhood. To use the selected neighborhood, click the enqueue nbhd button. If you want to use the
neighborhood several times in succession, increase the number in the text field next to the enqueue button.

7 - Search and Optimization pg 40


7.5 Best Practices and Techniques
Generate all of the initial solutions that are available. These will serve as the starting point for
more in-depth searches.
After you create an objective, synchronize it with all of the solutions currently in the archive. This
will show you which solutions are currently ranked the best.
Before creating a multi-criteria objective, try starting with the basic minimum area and maximum
representation objectives. Although they cannot handle multiple criteria, they may give you a
good idea of the range of solutions that you can expect to see.
Save time by starting the search at an initial solution that is close to your desired goals. Do not
start the search at the init config (with no cells selected), as it will take quite a while to build the
solution.
If you have options, you should start the search from a solution that has some of the spatial
characteristics you are looking for. In general, it takes the search longer optimize the spatial
characteristics, so you can get a head start if you already have some good solutions lying around.
Try starting the search at different starting points. You will find different (and perhaps better)
answers.
Run a prolonged search using your objective. If n is the number of cells, try to run the search for
at least 5n iterations. If you have more surrogates, allow for more iterations since these problems
may be a little harder.
Use your judgment about when to stop. Continue to run the search as long as it is finding new
best solutions, as time permits.
After running a prolonged search, refine your best solutions. Run the search using the
neighborhood selection strategy called basic (use large nbhd only). The search will use a larger
neighborhood to carefully explore the space around the current solution. It can usually find
significant local improvements. Dont forget to set the starting point as one of your best solutions.

7 - Search and Optimization pg 41


The search will attempt diversification strategies if it feels like it is stuck in a local minimum. If it
has not found a new best solution in a while, the search tries to shake up the solution. In the short
term this can lead to poor quality solutions, but it gives the search a much needed chance to
rebuild and discover new solutions.
ConsNet can run for several weeks unattended. But if you are going to run it that long, you should
be using the auto save feature (see Section 5.7.2) to make sure an accidental shutdown or power
outage doesnt wipe out your data.
For a given objective, ConsNet thinks of the search as an ongoing process. When you stop and
start the search, the iteration counter and other stats continue from where you left off, even after
you restart the program. This was a conscious design decision to (1) provide the user a better idea
of how long (in total) the search has been running and (2) make the search feel more like
continuous exploration than a one off optimization engine and (3) make the search more game
like. If this bothers you, you can reset the counters on the CORES tab.
If you are really curious, the search engine can write a comma separated history file that contains
relevant information about the search at each iteration (including objective scores). It is disabled
by default, but you can enable it in the consent.properties file. Each search core maintains a
history file that can be found at:
<installation directory>\data\<problemID>\search\tabu search\...iHistory.csv

7 - Search and Optimization pg 42


8 Performance and Memory
8.1 Large Problems Allocating More Memory
For large problems, you will have to allocate more memory to ConsNet. This can be done by modifying
the command line used to launch the program. For example, to allocate 2GB of memory to ConsNet, use
the following command line:
java Xms2048m Xmx2048m -server -showversion -verbosegc -jar
consnet2.jar -properties consnet.properties
The Xms argument specifies the minimum heap size, while the Xmx argument specifies the maximum
heap size. We recommend using the same value for both. To modify the .bat file used to launch ConsNet,
right click and select Edit.
Please note that the most memory that can be allocated on a 32-bit (Windows) system is about 1400MB.
On a 64-bit system, it is possible to reserve significantly more memory
Estimating Problem Size and Memory Requirements
If your data set is particularly large, it is useful to estimate the amount of memory that will be required. To
estimate the size of the problem data, obtain the following information:
n the number of cells
m the number of surrogates
c the number of costs
F the format of the surrogate data (F = 1 or 4)
When using presence-absence data or expected value data that is rounded to the nearest 0.01, use F=1
(because each piece of data is stored in 1 byte). Otherwise, use F=4. We introduce a memory estimate Q,
in megabytes:
Q = 8 * (Fnm + 4nc)/220
The 8 is a fudge factor to account for the overhead associated with the search. The overhead is mostly tied
to the number of cells, and it becomes proportionately less for larger problems. I suspect that the memory
requirements do not grow linearly as the formula would suggest. Below are some sample problem size
calculations:

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

8.2 Large Problems Managing the Solution Archive


The other considerable memory expenditure in ConsNet is the solution archive. This solution archive has a
few settings that can adjusted to provide more precise control over memory management, described in
Section 5.7.1. You can access these options using the from the Settings menu under memory management.
When you make changes to these settings, they are saved and applied each time you load this problem.
For very large problems, you will want to trigger a purge shortly after the number of solutions in memory
grows larger than 1000. In addition, you will want to limit the number of solutions in memory to no more

8 - Performance and Memory pg 43


than 2000 solutions. If the archive grows beyond 2000 solutions, the program starts writing solutions to the
hard drive.

8.3 Performance Use the Server VM


The Java Virtual Machine (JVM) is the software layer that organizes, interprets, and executes Java
bytecode. In recent years, much effort has gone into the development of highly optimized JVMs that
improve computational performance. ConsNet was tested on the HotSpot Virtual Machine from Sun
Microsystems (now Oracle). Many other brands are available (some free, some proprietary).
The HotSpot virtual machine will automatically classify a computer as either a server or a client
depending on the machine specifications (servers are more powerful). If the machine is classified as a
server, HotSpot will run a Server VM, otherwise it will run the Client VM. The Server VM is more
aggressive at code optimization and garbage collection, and runs 30-50% faster than the Client VM for
ConsNet.
Typically, a machine must have more than one processor and at least 2GB of RAM to be classified as a
server. Any 64 bit machine is automatically classified as a server. Unfortunately, all 32-bit Windows
machines are currently recognized as clients and do not receive the benefits of the Server VM. According
to Sun Microsystems, this choice was made because these computers are more likely to encounter client
style programs. Full details about the classification can be found at:
http://java.sun.com/docs/hotspot/gc5.0/ergo5.html
To force a 32-bit Windows machine to run in server mode, use the server flag for the JVM. To verify
that you are in server mode, use the showversion flag on the same line. For instance:
java Xms512m Xmx1024m server showversion . . .
However, there is one more catch. The JRE distribution for Windows does not include the Server VM; this
functionality is only included with the JDK (Java Developers Kit). To use the Server VM, you must locate
the jre\bin\server folder of the JRE that is packaged with the JDK. It is possible to copy this folder
over to the bin folder of the JRE that you are currently using (make sure they are the same version). After
this, it should be possible to run the Server VM on a 32-bit Windows machine. Please note that using the
Server VM with its default garbage collection parameters on a computer without ample memory could
result in out of memory errors.
Finally, although the server virtual machine is much faster, it is not optimized to run well with a graphical
user interface. In particular, you may experience longer pauses as the virtual machine does garbage
collection.

8.4 Performance Spatial Calculations


Here is the relative effort required to calculate the spatial characteristics:
Shape is very fast to compute in all cases.
Due to some shortcuts that we developed, clustering is extremely fast to compute for most cases,
but can take much longer if (a) the solutions have poor shape and/or (b) there are large clusters
with rough edges and/or (c) a majority of the cells are selected.
Calculating replication requires a clustering computation for each surrogate. Enabling replication
makes the search run substantially slower.
Based on this, we have the following recommendations:
If clustering is enabled and the search is running slow, you may be in one of the cases where the
clustering shortcut does not work. Usually, this is because the solution has very poor shape. You
have a few options:
o Wait to see if the search speeds up as shape improves

8 - Performance and Memory pg 44


o Start the search from a compact solution that has better shape, or if you dont have such a
solution
o Create a new problem where clustering is not enabled. Use this problem to generate
some solutions that have better shape. Import those solutions into your previous problem
and then try the search again, starting from one of the improved solutions.
ConsNet cannot use shortcuts when it has to compute replication. For this reason, the search runs
substantially slower with replication. We do not recommend replication for extremely large
datasets. If replication is a necessary part of the analysis, it may be more effective to perform the
preliminary analysis without replication, and then create a new problem where replication is
enabled.
If you have do have to compute replication, using more processors will definitely speed up the
computation.

8 - Performance and Memory pg 45


9 Known Issues
For an expected value dataset, if you selected the option to round the value to the nearest 0.01,
ConsNet will store the values as an single byte integer (between 0 and 100). For example, a value
of 0.36 will be stored as 36. After you have finished loading the problem, all interactions with
ConsNet will assume the integer values, not the original decimal values. Thus, quantities such as
the total surrogate representation, individual surrogate representation, target deficits, etc. will be
reported using the integer values. In addition, when you export a solution, the representation
reported for each surrogate is the integer value. To translate back to the original floating point
values, divide by 100. Note that the target file should be based on the floating point values in the
original file. Thus, if ConsNet reports the total representation (with all cells selected) for a
particular surrogate is 14,930, then the decimal equivalent would be 149.30, and the 10% target
would be 14.93. This conversion is only necessary with the rounded 0.01 expected value datasets.
For large problems, the graphics require considerable memory. If memory is tight, do not create
additional pictures using the compare to button on the solution display panel. This could
result in an out of memory error. If you do not need graphics, you can disable them by including
graphicsEnabled=false in the properties file.
Do not close the black window behind ConsNet. This will exit the program without saving.
Plug your laptop in if you intend to run ConsNet for an extended amount of time. Running your
processor at full load could reduce the life of the battery.
Sometimes the search prints a warning message when a neighborhood does not produce any
candidate solutions. These warnings may be ignored. The search will just try a different
neighborhood if it encounters this situation.
The search is completely deterministic, but it can make decisions about how to proceed based on
the current state of the solution archive or the current state of the objective. For that reason, to
repeat a search precisely, you have to start from a clean slate: clear the solution archive, clear the
objective, and reset the search core. Also, if you want the results to be repeatable, you can only
run one search (since the two search engines can influence each other through the shared solution
archive and objective).

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

You might also like