Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
researchdata:polymakeilp [2015/11/09 14:31] – updated versions assarf | researchdata:polymakeilp [2015/11/10 15:54] – [Integer Points] assarf |
---|
<code perl> | <code perl> |
$path = "/path/to/store/the/output/files"; | $path = "/path/to/store/the/output/files"; |
| start_time_cut_polytope(["porta"],0,7, { path=>$path }); |
start_time_cut_polytope(["beneath_beyond"],0,4, { path=>$path, }); | start_time_cut_polytope(["beneath_beyond"],0,4, { path=>$path, }); |
start_time_cut_polytope(["cdd"],0,9, { path=>$path }); | start_time_cut_polytope(["cdd"],0,9, { path=>$path }); |
start_time_cut_polytope(["lrs"],0,5, { path=>$path, only_once=>{"5"=>1 } }); | start_time_cut_polytope(["lrs"],0,5, { path=>$path, only_once=>{"5"=>1 } }); |
start_time_cut_polytope(["ppl"],0,14, { path=>$path, only_once=>{"14"=>1 } }); | start_time_cut_polytope(["ppl"],0,14, { path=>$path }); |
| |
### | ### |
## If you want to use only one thread for normaliz set the following environment variable before starting polymake | ## If you want to use only one thread for normaliz set the following environment variable |
## export OMP_NUM_THREADS=1 | ## export OMP_NUM_THREADS=1 |
start_time_cut_polytope(["libnormaliz"],0,8, { path=>$path, only_once=>{"8"=>1 } }); | #start_time_cut_polytope(["libnormaliz"],0,14, { path=>$path, only_once=>{"14"=>1 } }); |
| |
### | ### |
## If you want to use more than one thread for normaliz set the following environment variable before starting polymake | ## If you want to use more than one thread for normaliz set the following environment variable |
## export OMP_NUM_THREADS=6 | ## export OMP_NUM_THREADS=6 |
start_time_cut_polytope(["libnormaliz"],0,9, { path=>$path, only_once=>{"9"=>1 } }); | #start_time_cut_polytope(["libnormaliz"],0,14, { path=>$path, only_once=>{"14"=>1 } }); |
</code> | </code> |
| |
<code perl> | <code perl> |
$path = "/path/to/store/the/output/files"; | $path = "/path/to/store/the/output/files"; |
start_time_knapsack(["beneath_beyond", "ppl"],4,6,40,100, 2,3, { path=>$path }); | ### |
| ## To use only one thread for normaliz set the following environment variable |
| # export OMP_NUM_THREADS=1 |
| |
| start_time_knapsack(["libnormaliz", "porta", "beneath_beyond", "ppl"],4,6,40,100, 2,3, { path=>$path }); |
start_time_knapsack(["cdd"],4,6,40,[100,100,80],2,3, { path=>$path, only_once=>{"5,100"=>1} }); | start_time_knapsack(["cdd"],4,6,40,[100,100,80],2,3, { path=>$path, only_once=>{"5,100"=>1} }); |
start_time_knapsack(["lrs"],4,6,40,[100,70,60],2,3, { path=>$path, only_once=>{"4,100"=>1,"5,70"=>1, "6,60"=>1} }); | start_time_knapsack(["lrs"],4,6,40,[100,70,60],2,3, { path=>$path, only_once=>{"4,100"=>1,"5,70"=>1, "6,60"=>1} }); |
| |
## different kinds of input sorting | ## different kinds of input sorting |
## 1=random sorting, 2=good sorting (vertices come first) | ## 1=random sorting, 2=vertices come first |
start_time_knapsack(["beneath_beyond"],4,6,40,100, 2,3, { path=>$path, inputSort=>1 }); | start_time_knapsack(["beneath_beyond", "porta"],4,6,40,100, 2,3, { path=>$path, inputSort=>1 }); |
start_time_knapsack(["beneath_beyond"],4,6,40,100, 2,3, { path=>$path, inputSort=>2 }); | start_time_knapsack(["beneath_beyond", "porta"],4,6,40,100, 2,3, { path=>$path, inputSort=>2 }); |
| |
| start_time_knapsack(["lrs"],4,6,40,100,2,3, { path=>$path, inputSort=>1 }); |
| start_time_knapsack(["lrs"],4,6,40,100,2,3, { path=>$path, inputSort=>2 }); |
| |
start_time_knapsack(["lrs"],4,6,40,[100,100,90],2,3, { path=>$path, inputSort=>1 }); | start_time_knapsack(["cdd"],4,6,40,100,2,3, { path=>$path, inputSort=>1 }); |
| start_time_knapsack(["cdd"],4,6,40,100,2,3, { path=>$path, inputSort=>2 }); |
</code> | </code> |
| |
Download the {{:researchdata:voronoi.script|script}} and load it into polymake. Use the following commands to run the tests. You may download the output data {{:researchdata:voronoi.zip|here}}. | Download the {{:researchdata:voronoi.script|script}} and load it into polymake. Use the following commands to run the tests. You may download the output data {{:researchdata:voronoi.zip|here}}. |
<code perl> | <code perl> |
| # set environment: export OMP_NUM_THREADS=1 |
| |
$path = "/path/to/store/the/output/files"; | $path = "/path/to/store/the/output/files"; |
| # no porta because coordinates are too ugly (porta does not use gmp) |
start_time_voronoi(["beneath_beyond"],3,7,500,[3000,3000,3000,3000,1000], { path=>$path, only_once=>{"7,1000"=>1 } }); | start_time_voronoi(["beneath_beyond"],3,7,500,[3000,3000,3000,3000,1000], { path=>$path, only_once=>{"7,1000"=>1 } }); |
start_time_voronoi(["cdd"],3,6,500,[3000,2000,1000,500], { path=>$path, only_once=>{"6,500"=>1,"5,1000"=>1 } }); | start_time_voronoi(["cdd"],3,6,500,[3000,3000,1500,500], { path=>$path, "5,1500"=>1 }); |
start_time_voronoi(["lrs"],3,7,500,[3000,3000,3000,3000,1000], { path=>$path, only_once=>{"6,3000"=>1 } }); | start_time_voronoi(["lrs"],3,7,500,[3000,3000,3000,3000,1000], { path=>$path, only_once=>{"6,3000"=>1 } }); |
start_time_voronoi(["ppl"],3,6,500,[3000,3000,3000,1000], { path=>$path, only_once=>{"6,1000"=>1 } }); | start_time_voronoi(["libnormaliz"],3,7,500,[3000,3000,3000,1500,500], { path=>$path }); |
| start_time_voronoi(["ppl"],3,6,500,[3000,3000,2500,1000], { path=>$path, only_once=>{"5,2500"=>1, "6,1000"=>1 } }); |
| |
## Running one example many times (1000) to check standard deviation | ## Running one example many times (1000) to check standard deviation |
stats_voronoi(["beneath_beyond","cdd","lrs","ppl"],5,500,1000, { path=>$path } ); | #stats_voronoi(["beneath_beyond","cdd","lrs","ppl","libnormaliz"],5,500,1000, { path=>$path } ); |
</code> | </code> |
| |
$n_runs = 10; | $n_runs = 10; |
$choose_induced_syms = 1; # uses induced symmetries of graph instead of linear symmetries of cut polytope (set to 0 for linear symmetries!) | $choose_induced_syms = 1; # uses induced symmetries of graph instead of linear symmetries of cut polytope (set to 0 for linear symmetries!) |
| |
$path = "/path/to/store/the/output/files"; | $path = "/path/to/store/the/output/files"; |
foreach my $n_nodes (9,10) { | foreach my $n_nodes (9,10) { |
<code perl> | <code perl> |
### | ### |
## To use only one thread for normaliz set the following environment variable before starting polymake | ## To use only one thread for normaliz set the following environment variable |
# export OMP_NUM_THREADS=1 | # export OMP_NUM_THREADS=1 |
| ### |
| ## to run latte in all primal mode use the polymake command |
| # set_custom($latte_count_param="--irrational-all-primal --maxdet=25 --exponential"); |
| ## and restart polymake |
$path = "/path/to/store/the/output/files"; | $path = "/path/to/store/the/output/files"; |
| |
## experiments: just varying the dimension | ## experiments: just varying the dimension |
$dpath = "$path/plots_dim/"; | my $dpath = "$path/plots_dim/"; |
start_time_knapsack(["bbox", "projection","_4ti2"],4,20,60,60, 2,3, { path=>$dpath }); | start_time_knapsack(["bbox", "projection","_4ti2"],4,20,60,60, 2,3, { path=>$dpath }); |
start_time_knapsack(["libnormaliz"],4,7,60,60, 2,3, { path=>$dpath }); | start_time_knapsack(["libnormaliz"],4,20,60,60, 2,3, { path=>$dpath }); |
start_time_knapsack(["latte"],4,18,60,60, 2,3, { path=>$dpath }); | start_time_knapsack(["libnormaliz"],4,20,60,60, 2,3, { path=>$dpath, normaliz_dual=>1 }); |
| start_time_knapsack(["latte"],4,18,60,60, 2,3, { path=>$dpath }); # default |
| #start_time_knapsack(["latte"],4,12,60,60, 2,3, { path=>$dpath }); # all_primal |
| |
## experiments: just varying the right hand side | ## experiments: just varying the right hand side |
$bpath = "$path/plots_rhs/"; | my $bpath = "$path/plots_rhs/"; |
start_time_knapsack(["bbox", "latte", "projection","libnormaliz"],5,5,40,200, 2,3, { path=>$bpath }); | start_time_knapsack(["bbox", "latte", "projection","libnormaliz"],5,5,40,200, 2,3, { path=>$bpath }); |
| start_time_knapsack(["libnormaliz"],5,5,40,200, 2,3, { path=>$bpath }); |
| start_time_knapsack(["libnormaliz"],5,5,40,200, 2,3, { path=>$bpath, normaliz_dual=>1 }); |
start_time_knapsack(["_4ti2"],5,5,40,90, 2,3, { path=>$bpath }); | start_time_knapsack(["_4ti2"],5,5,40,90, 2,3, { path=>$bpath }); |
| |
## normaliz with higher granularity | |
start_time_knapsack(["libnormaliz"],5,5,40,191, 2,3, { path=>$bpath."smallsteps/", bstep=>1 }); | |
</code> | </code> |
| |
## To use only one thread for normaliz set the following environment variable | ## To use only one thread for normaliz set the following environment variable |
# export OMP_NUM_THREADS=1 | # export OMP_NUM_THREADS=1 |
| ### |
| ## to run latte in all primal mode use the polymake command |
| # set_custom($latte_count_param="--irrational-all-primal --maxdet=25 --exponential"); |
| ## and restart polymake |
$path = "/path/to/store/the/output/files"; | $path = "/path/to/store/the/output/files"; |
start_time_rand_box(["libnormaliz"],4,9,20,70,{ path=>$path }); | start_time_rand_box(["libnormaliz"],4,9,20,70,{ path=>$path }); |
start_time_rand_box(["projection"],4,9,20,[70,70,70,70,70,60],{ path=>$path }); | start_time_rand_box(["projection"],4,9,20,70,{ path=>$path }); |
start_time_rand_box(["bbox"],4,9,20,[70,70,70,70,70,40],{ path=>$path }); | start_time_rand_box(["bbox"],4,9,20,[70,70,70,70,70,40],{ path=>$path }); |
start_time_rand_box(["latte"],4,5,20,[70,30],{ path=>$path, only_once=>{"5,30"=>1} }); | start_time_rand_box(["latte"],4,7,20,70,{ path=>$path }); |
| # 4ti2 and nmz dual disabled due to high variance, see below |
#start_time_rand_box(["_4ti2"],4,7,20,70,{ path=>$path }); | #start_time_rand_box(["_4ti2"],4,7,20,70,{ path=>$path }); |
| #start_time_rand_box(["libnormaliz"],4,5,20,[70,30],{ path=>$path, normaliz_dual=>1 }); |
| |
| |
## Running one example many times (100) to check standard deviation | ## Running one example many times (100) to check standard deviation |
stats_rand_box(["libnormaliz","projection","bbox"],6,50,100, { path=>$path } ); | stats_rand_box(["libnormaliz","projection","bbox"],6,50,100, { path=>$path } ); |
| stats_rand_box(["projection","bbox"],6,50,100, { path=>$path } ); |
stats_rand_box(["latte"],4,20,100, { path=>$path } ); | stats_rand_box(["latte"],4,20,100, { path=>$path } ); |
| |
## Set a ulimit on time before starting polymake since the running times of 4ti2 have high variance | ## These tests produce a high variance |
| #stats_rand_box(["libnormaliz"],4,20,100, { path=>$path, normaliz_dual=>1 } ); |
| ## Setting a ulimit on time aborts the extreme cases after one hour |
# ulimit -t 3600 | # ulimit -t 3600 |
stats_rand_box(["_4ti2"],4,20,100, { path=>$path } ); | #stats_rand_box(["_4ti2"],4,20,100, { path=>$path } ); |
| </code> |
| |
| === Matching Polytopes === |
| Download the {{:researchdata:matching_polytope_lattice.script|script}} and load it into polymake. Use the following commands to run the tests. You may download the output data {{:researchdata:matching_polytope.zip|here}}. |
| <code perl> |
| ### |
| ## To use only one thread for normaliz set the following environment variable |
| # export OMP_NUM_THREADS=1 |
| $path = "/path/to/store/the/output/files"; |
| |
| start_time_matching_polytope(["azove"],4,19, { path=>$path }); |
| start_time_matching_polytope(["_4ti2"],4,9, { path=>$path }); |
| start_time_matching_polytope(["bbox"],4,7, { path=>$path }); |
| start_time_matching_polytope(["projection"],4,9, { path=>$path }); |
| start_time_matching_polytope(["libnormaliz"],4,7, { path=>$path }); |
| start_time_matching_polytope(["libnormaliz"],4,10, { path=>$path, normaliz_dual=>1 }); |
| |
| ### |
| ## to run latte in all primal mode use the polymake command |
| # set_custom($latte_count_param="--irrational-all-primal --maxdet=25 --exponential"); |
| ## and restart polymake |
| start_time_matching_polytope(["latte"],4,7, { path=>$path }); # default |
| #start_time_matching_polytope(["latte"],4,5, { path=>$path }); # all primal |
</code> | </code> |