user_guide:tutorials:polymakeilp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
researchdata:polymakeilp [2015/11/09 14:31] – updated versions assarfresearchdata:polymakeilp [2015/11/10 15:54] – [Integer Points] assarf
Line 55: Line 55:
 <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>
  
Line 76: Line 77:
 <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=>});+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=>});
 </code> </code>
  
Line 92: Line 101:
 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"=>});+start_time_voronoi(["cdd"],3,6,500,[3000,3000,1500,500], { path=>$path, "5,1500"=> });
 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>
  
Line 108: Line 121:
 $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) {
Line 128: Line 142:
 <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=>}); 
 +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>
  
Line 154: Line 173:
 ## 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>
  • user_guide/tutorials/polymakeilp.txt
  • Last modified: 2019/01/29 21:46
  • by 127.0.0.1