To run the programs, you should download the ZIP archieve, unzip it,
go to the folder containing the jar file, and then type the following
command in a terminal window:
java -jar -Djava.library.path=Path_to_Cplex_Library solver.jar
[-Main_Option] [-Sub_Option] fileInNewickFormat
where Main_Option is a string in the set
{rSPR, HN} ,
Sub_Option is a string in the set
{single, single2, app1, app2, app3, app4} , and
fileInNewickFormat contains two binary phylogenetic trees in
Newick format such as (((1,4),3),2) and
(((species1, species_3), cat),dog) ended with a semicolon.
The name of each species must not contain: comma,
parenthesis, or semicolon.
There is no limit on the length of the name of each species.
Either rSPR or HN should be chosen as the main option:
rSPR is for computing rSPR distance, while HN is for computing hybridization number.
If the main options is rSPR, then it is unnecessary to specify java.library.path.
If no sub-option is given, then the program will use
all available threads on your machine to compute
the desired value specified by the main option exactly.
On the other hand, if a sub-option is given, then the program does the following
(depending on the sub-option):
- single: This sub-option forces the program to use
a single thread to compute the desired value specified by
the main option exactly, although CPLEX may use multiple threads.
- single2: This sub-option forces the program to use
a single thread to compute the desired value specified by
the main option exactly;
CPLEX is also forced to use a single thread.
- app1: This sub-option forces the program to compute
the desired value specified by the main option approximately,
where our 2-approximation algorithm for rSPR distance is used as a subroutine.
- app2: This sub-option forces the program to compute
the desired value specified by the main option approximately,
where our 7/3-approximation algorithm for rSPR distance is used as a subroutine.
- app3: This sub-option forces the program to use
our MCTS-based algorithm to compute the desired value specified by the main option
approximately, where our 2-approximation algorithm for rSPR
distance is used in the simulation step.
- app4: This sub-option forces the program to use
our MCTS-based algorithm to compute the desired value specified by the main option
approximately, where our 7/3-approximation algorithm for rSPR
distance is used in the simulation step.