Changeset 75f460 in git for IntegerProgramming
- Timestamp:
- Dec 16, 2014, 3:43:21 PM (8 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
- Children:
- fce947c9e6c3e8c6d5a622c7f6b0d724580993cc
- Parents:
- a2e4470c6e9a666de8ab7b706370c15e13092f76
- Location:
- IntegerProgramming
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
IntegerProgramming/change_cost.hlp
ra2e447 r75f460 1 1 USAGE: change_cost [options] groebner_file new_cost_file 2 3 4 2 3 4 5 5 DESCRIPTION: 6 6 7 7 change_cost is a program for recomputing the reduced Groebner basis of 8 8 a toric ideal with respect to a term ordering with modified … … 10 10 programming (see the help for solve_IP for more information). 11 11 The program simply restarts BuchbergerŽs algorithm on an already 12 computed toric ideal using the modified term ordering. 13 14 15 12 computed toric ideal using the modified term ordering. 13 14 15 16 16 FILE FORMAT: 17 17 18 18 The first input file has to be a GROEBNER file; the second input file 19 19 should to be a NEW_COST file. For convenience, also MATRIX files are 20 20 accepted as second input files. For their format see the help for the 21 solve_IP or the toric_ideal program. 22 21 solve_IP or the toric_ideal program. 22 23 23 change_cost writes the new Groebner basis into a GROEBNER file named 24 24 like the second input file with extensions replaced by 25 25 26 26 .GB.<alg> 27 27 28 28 where GB stands for GROEBNER and <alg> is the abbreviation of the 29 algorithm used for computing the input GROEBNER file (see the help for 29 algorithm used for computing the input GROEBNER file (see the help for 30 30 solve_IP or toric_ideal for an explaination). 31 31 32 32 A GROEBNER file looks as follows: 33 34 35 GROEBNER 36 33 34 35 GROEBNER 36 37 37 computed with algorithm: 38 38 <algorithm name abbreviation> (* abbreviations as above *) 39 from file(s): (* the following four lines are 39 from file(s): (* the following four lines are 40 40 <name of respective MATRIX file> optional *) 41 computation time: 42 <computation time in seconds> 43 41 computation time: 42 <computation time in seconds> 43 44 44 term ordering: 45 45 elimination block … … 49 49 weighted block 50 50 <number of weighted variables> 51 <W_LEX / W_REV_LEX (* number of weighted variables 51 <W_LEX / W_REV_LEX (* number of weighted variables 52 52 / W_DEG_LEX / W_DEG_REV_LEX> should always be >0 *) 53 53 <weight_vector> 54 54 55 55 size: 56 56 <number of elements> 57 57 58 58 Groebner basis: 59 <basis elements> 60 61 <settings for the Buchberger 62 algorithm and compiler settings> (* optional *) 63 64 59 <basis elements> 60 61 <settings for the Buchberger 62 algorithm and compiler settings> (* optional *) 63 64 65 65 The Groebner basis consists always of binomials of the form x^a - x^b 66 66 where x^a and x^b are relatively prime. Such a binomial can be 67 represented by the vector a-b. The basis elements in the GROEBNER file 67 represented by the vector a-b. The basis elements in the GROEBNER file 68 68 are given by the coefficients of this vector representation. 69 69 The settings for BuchbergerŽs algorithm and the compiler flags are 70 70 produced when the GROEBNER file is generated by a call of solve_IP 71 71 with the verbose output option 72 73 -v, --verbose 74 72 73 -v, --verbose 74 75 75 Example: 76 77 76 77 78 78 GROEBNER 79 79 80 80 computed with algorithm: 81 81 du 82 83 term ordering: 82 83 term ordering: 84 84 elimination block: 85 85 0 … … 88 88 W_LEX 89 89 1 2 3 90 90 91 91 size: 92 92 1 93 93 94 94 Groebner basis: 95 2 3 -2 (* x^2 * y^3 - z^2 *) 96 97 95 2 3 -2 (* x^2 * y^3 - z^2 *) 96 97 98 98 A NEW_COST file should look as follows: 99 100 101 NEW_COST 102 103 variables: 104 <number of weighted variables> 105 99 100 101 NEW_COST 102 103 variables: 104 <number of weighted variables> 105 106 106 cost vector: 107 <coefficients of the new weight vector> 108 109 110 111 OPTIONS: 112 107 <coefficients of the new weight vector> 108 109 110 111 OPTIONS: 112 113 113 -p <number> percentage of new generators to cause an 114 autoreduction during BuchbergerŽs algorithm; 114 autoreduction during BuchbergerŽs algorithm; 115 115 <number> may be an arbitrary float, a 116 116 negative value allows no intermediate 117 117 autoreductions 118 default is 119 -p 12.0 120 118 default is 119 -p 12.0 120 121 121 -S [RP] [M] [B] [M] [2] criteria to use in BuchbergerŽs algorithm 122 122 for discarding unneccessary S-pairs … … 126 126 B Gebauer-Moeller criterion B 127 127 2 BuchbergerŽs second criterion 128 default is 129 -S RP M B 130 131 -v, 132 --verbose verbose output mode; writes the settings for 128 default is 129 -S RP M B 130 131 -v, 132 --verbose verbose output mode; writes the settings for 133 133 BuchbergerŽs algorithm and the compiler 134 flags into the output GROEBNER file 135 136 -V <number>, 134 flags into the output GROEBNER file 135 136 -V <number>, 137 137 --version <number> version of BuchbergerŽs algorithm to use; 138 138 <number> may be 1, 1a, 2 or 3 139 139 default is 140 -V 1 141 140 -V 1 141 -
IntegerProgramming/solve_IP.hlp
ra2e447 r75f460 1 1 USAGE: solve_IP [options] toric_file problem_file 2 3 4 2 3 4 5 5 DESCRIPTION: 6 6 7 7 solve_IP is a program for solving integer programming problems with 8 8 the Buchberger algorithm: 9 9 10 10 Let A an integral (mxn)-matrix, b a vector with m integral 11 11 coefficients and c a vector with n nonnegative real coefficients. The 12 solution of the IP-problem 13 12 solution of the IP-problem 13 14 14 minimize{ cx | Ax=b, all components of x are nonnegative integers } 15 15 16 16 proceeds in two steps: 17 17 18 18 1. We compute the toric ideal of A and its Groebner basis with respect 19 to a term ordering refining the cost function c. 20 19 to a term ordering refining the cost function c. 20 21 21 2. We reduce the right hand vector b or an initial solution of the 22 22 problem modulo this ideal. 23 23 24 24 For these purposes, we can use seven different algorithms: 25 25 The algorithm of Conti/Traverso (ct) can compute an optimal solution 26 26 of the IP-problem directly from the right hand vector b. The same is 27 27 true for its "positive" variant (pct) which can only be applied if A 28 and b have nonnegative entries, but should be faster in that case. 28 and b have nonnegative entries, but should be faster in that case. 29 29 All other algorithms need initial solutions of the IP-problem. Except 30 30 from the elimination version of the Conti-Traverso algorithm (ect), … … 33 33 (blr), Hosten/Sturmfels (hs) and Di Biase/Urbanke (du). The last two 34 34 seem to be the fastest in the actual implementation. 35 36 37 35 36 37 38 38 FILE FORMAT: 39 39 40 40 The first input file may be a MATRIX or a GROEBNER file; these two 41 41 types are called "toric files". The second input file has to be a 42 PROBLEM file. 43 42 PROBLEM file. 43 44 44 If the PROBLEM file contains a positive number of problems ,i.e. right 45 45 hand vectors or initial solutions, solve_IP appends its solutions to a 46 46 SOLUTION file named like the first input file with extensions replaced 47 by 48 47 by 48 49 49 .sol.<alg> 50 50 51 51 where sol stands for solution and <alg> is the abbreviation of the 52 52 used algorithm as above. When called with a MATRIX file, solve_IP 53 53 produces a GROEBNER file named like the MATRIX file with extensions 54 replaced by 55 56 .GB.<alg> 57 54 replaced by 55 56 .GB.<alg> 57 58 58 where GB stands for GROEBNER. 59 59 60 60 A MATRIX file should look as follows: 61 62 63 MATRIX 64 61 62 63 MATRIX 64 65 65 columns: 66 66 <number of columns> 67 67 68 68 cost vector: 69 69 <coefficients of the cost vector> 70 70 71 71 rows: 72 72 <number of rows> 73 73 74 74 matrix: 75 75 <matrix coefficients> 76 77 positive row space vector: 78 <coefficients of row space vector> 79 80 76 77 positive row space vector: 78 <coefficients of row space vector> 79 80 81 81 The last two lines are only needed when solve_IP is called with the 82 82 algorithms of Hosten/Sturmfels or Bigatti/La Scala/Robbiano, i.e. the 83 options 84 83 options 84 85 85 -alg hs 86 86 or 87 87 -alg blr 88 89 The other algorithms ignore these lines. 90 88 89 The other algorithms ignore these lines. 90 91 91 Example: 92 93 92 93 94 94 MATRIX 95 95 96 96 columns: 97 97 3 98 98 99 99 cost vector: 100 100 1 1 1 101 101 102 102 rows: 103 103 2 104 104 105 105 matrix: 106 106 1 2 3 107 107 4 5 6 108 108 109 109 positive row space vector: 110 110 1 2 3 111 112 111 112 113 113 A GROEBNER file looks as follows: 114 115 116 GROEBNER 117 114 115 116 GROEBNER 117 118 118 computed with algorithm: 119 119 <algorithm name abbreviation> (* abbreviations as above *) 120 from file(s): (* the following four lines are 120 from file(s): (* the following four lines are 121 121 <name of respective MATRIX file> optional *) 122 computation time: 123 <computation time in seconds> 124 122 computation time: 123 <computation time in seconds> 124 125 125 term ordering: 126 126 elimination block … … 130 130 weighted block 131 131 <number of weighted variables> 132 <W_LEX / W_REV_LEX (* number of weighted variables 132 <W_LEX / W_REV_LEX (* number of weighted variables 133 133 / W_DEG_LEX / W_DEG_REV_LEX> should always be >0 *) 134 134 <weight_vector> 135 135 136 136 size: 137 137 <number of elements> 138 138 139 139 Groebner basis: 140 <basis elements> 141 142 <settings for the Buchberger 143 algorithm and compiler settings> (* optional *) 144 145 140 <basis elements> 141 142 <settings for the Buchberger 143 algorithm and compiler settings> (* optional *) 144 145 146 146 The Groebner basis consists always of binomials of the form x^a - x^b 147 147 where x^a and x^b are relatively prime. Such a binomial can be 148 represented by the vector a-b. The basis elements in the GROEBNER file 148 represented by the vector a-b. The basis elements in the GROEBNER file 149 149 are given by the coefficients of this vector representation. 150 150 The settings for BuchbergerŽs algorithm and the compiler flags are 151 151 produced when the GROEBNER file is generated by a call of solve_IP 152 152 with the verbose output option 153 154 -v, --verbose 155 153 154 -v, --verbose 155 156 156 Example (not belonging to the example above): 157 158 157 158 159 159 GROEBNER 160 160 161 161 computed with algorithm: 162 162 du 163 164 term ordering: 163 164 term ordering: 165 165 elimination block: 166 166 0 … … 169 169 W_LEX 170 170 1 2 3 171 171 172 172 size: 173 173 1 174 174 175 175 Groebner basis: 176 2 3 -2 (* x^2 * y^3 - z^2 *) 177 178 176 2 3 -2 (* x^2 * y^3 - z^2 *) 177 178 179 179 A PROBLEM file should look as follows: 180 181 180 181 182 182 PROBLEM 183 183 184 184 vector size: 185 185 <vector dimension> 186 186 187 187 number of instances: 188 188 <number of vectors> 189 190 right-hand or initial solution vectors: 191 <vector coefficients> 192 193 189 190 right-hand or initial solution vectors: 191 <vector coefficients> 192 193 194 194 A SOLUTION file looks as follows: 195 196 SOLUTION 197 198 computed with algorithm: 199 <algorithm name abbreviation> 200 from file: (* the GROEBNER file *) 201 <file name> 202 203 <right hand/initial solution> vector: 195 196 SOLUTION 197 198 computed with algorithm: 199 <algorithm name abbreviation> 200 from file: (* the GROEBNER file *) 201 <file name> 202 203 <right hand/initial solution> vector: 204 204 <vector as in the problem file> 205 205 solvable: (* only if right-hand 206 <YES/NO> vector is given *) 207 optimal solution: (* only in the case of 208 <optimal solution vector> existence *) 209 computation time: (* only for reduction *) 210 <reduction time in seconds> 211 206 <YES/NO> vector is given *) 207 optimal solution: (* only in the case of 208 <optimal solution vector> existence *) 209 computation time: (* only for reduction *) 210 <reduction time in seconds> 211 212 212 ... (* further vectors, 213 same format *) 214 215 216 217 OPTIONS: 218 219 -alg <alg>, 220 --algorithm <alg> algorithm to use for solving the given IP 221 instances; <alg> may be 213 same format *) 214 215 216 217 OPTIONS: 218 219 -alg <alg>, 220 --algorithm <alg> algorithm to use for solving the given IP 221 instances; <alg> may be 222 222 ct for Conti/Traverso, 223 223 pct for the positive Conti/Traverso, … … 227 227 du for Di Biase/Urbanke, 228 228 blr for Bigatti-LaScal-Robbiano. 229 229 230 230 -p <number> percentage of new generators to cause an 231 autoreduction during BuchbergerŽs algorithm; 231 autoreduction during BuchbergerŽs algorithm; 232 232 <number> may be an arbitrary float, a 233 233 negative value allows no intermediate 234 234 autoreductions 235 default is 236 -p 12.0 237 235 default is 236 -p 12.0 237 238 238 -S [RP] [M] [B] [M] [2] criteria to use in BuchbergerŽs algorithm 239 239 for discarding unneccessary S-pairs … … 243 243 B Gebauer-Moeller criterion B 244 244 2 BuchbergerŽs second criterion 245 default is 246 -S RP M B 247 248 -v, 249 --verbose verbose output mode; writes the settings for 245 default is 246 -S RP M B 247 248 -v, 249 --verbose verbose output mode; writes the settings for 250 250 BuchbergerŽs algorithm and the compiler 251 flags into the output GROEBNER file 252 253 -V <number>, 251 flags into the output GROEBNER file 252 253 -V <number>, 254 254 --version <number> version of BuchbergerŽs algorithm to use; 255 255 <number> may be 1, 1a, 2 or 3 256 256 default is 257 -V 1 258 259 257 -V 1 258 259 260 260 When called with a GROEBNER file, these options do not affect 261 261 computation and are ignored by solve_IP. -
IntegerProgramming/toric_ideal.hlp
ra2e447 r75f460 1 USAGE: toric_ideal [options] matrix_file 2 3 4 1 USAGE: toric_ideal [options] matrix_file 2 3 4 5 5 DESCRIPTION: 6 6 7 7 toric_ideal is a program for computing the toric ideal of a matrix A. 8 8 This ideal is always given by the reduced Groebner basis with respect 9 9 to a given term ordering which is computed via BuchbergerŽs 10 algorithm. 10 algorithm. 11 11 For this purpose, we can use six different algorithms: 12 12 The algorithm of Conti/Traverso (ct) computes the toric ideal of an 13 13 extended matrix. This ideal can be used later for solving integer 14 14 programming problems for given right hand vectors. By eliminating 15 auxiliary variables, we can get the toric ideal of the original matrix 15 auxiliary variables, we can get the toric ideal of the original matrix 16 16 from it. The same is true for the "positive" variant of the 17 17 Conti-Traverso-algorithm (pct) which can only be applied if A has … … 23 23 are the algorithms of Pottier (pt), Bigatti/La Scala/Robbiano (blr), 24 24 Hosten/Sturmfels (hs) and Di Biase/Urbanke (du). The last two seem to 25 be the fastest in the actual implementation. 26 27 28 25 be the fastest in the actual implementation. 26 27 28 29 29 FILE FORMAT: 30 30 31 31 The input file has to be a MATRIX file. toric_ideal produces a 32 GROEBNER file named like the MATRIX file with extensions replaced by 33 34 .GB.<alg> 35 32 GROEBNER file named like the MATRIX file with extensions replaced by 33 34 .GB.<alg> 35 36 36 where GB stands for GROEBNER and <alg> is the abbreviation for the 37 37 used algorithm as above. 38 38 39 39 A MATRIX file should look as follows: 40 41 42 MATRIX 43 40 41 42 MATRIX 43 44 44 columns: 45 45 <number of columns> 46 46 47 47 cost vector: 48 48 <coefficients of the cost vector> 49 49 50 50 rows: 51 51 <number of rows> 52 52 53 53 matrix: 54 54 <matrix coefficients> 55 56 positive row space vector: 57 <coefficients of row space vector> 58 59 60 The last two lines are only needed when toric_ideal is called with the 55 56 positive row space vector: 57 <coefficients of row space vector> 58 59 60 The last two lines are only needed when toric_ideal is called with the 61 61 algorithms of Hosten/Sturmfels or Bigatti/La Scala/Robbiano, i.e. the 62 options 63 62 options 63 64 64 -alg hs 65 65 or 66 66 -alg blr 67 68 The other algorithms ignore these lines. 69 67 68 The other algorithms ignore these lines. 69 70 70 Example: 71 72 71 72 73 73 MATRIX 74 74 75 75 columns: 76 76 3 77 77 78 78 cost vector: 79 79 1 1 1 80 80 81 81 rows: 82 82 2 83 83 84 84 matrix: 85 85 1 2 3 86 86 4 5 6 87 87 88 88 positive row space vector: 89 89 1 2 3 90 91 90 91 92 92 A GROEBNER file looks as follows: 93 94 95 GROEBNER 96 93 94 95 GROEBNER 96 97 97 computed with algorithm: 98 98 <algorithm name abbreviation> (* abbreviations as above *) 99 from file(s): (* the following four lines are 99 from file(s): (* the following four lines are 100 100 <name of respective MATRIX file> optional *) 101 computation time: 102 <computation time in seconds> 103 101 computation time: 102 <computation time in seconds> 103 104 104 term ordering: 105 105 elimination block … … 109 109 weighted block 110 110 <number of weighted variables> 111 <W_LEX / W_REV_LEX (* number of weighted variables 111 <W_LEX / W_REV_LEX (* number of weighted variables 112 112 / W_DEG_LEX / W_DEG_REV_LEX> should always be >0 *) 113 113 <weight_vector> 114 114 115 115 size: 116 116 <number of elements> 117 117 118 118 Groebner basis: 119 <basis elements> 120 121 <settings for the Buchberger 122 algorithm and compiler settings> (* optional *) 123 124 119 <basis elements> 120 121 <settings for the Buchberger 122 algorithm and compiler settings> (* optional *) 123 124 125 125 The Groebner basis consists always of binomials of the form x^a - x^b 126 126 where x^a and x^b are relatively prime. Such a binomial can be 127 represented by the vector a-b. The basis elements in the GROEBNER file 127 represented by the vector a-b. The basis elements in the GROEBNER file 128 128 are given by the coefficients of this vector representation. 129 129 The settings for BuchbergerŽs algorithm and the compiler flags are 130 produced when the GROEBNER file is generated by a call of toric_ideal 130 produced when the GROEBNER file is generated by a call of toric_ideal 131 131 with the verbose output option 132 133 -v, --verbose 134 132 133 -v, --verbose 134 135 135 Example (not belonging to the example above): 136 137 136 137 138 138 GROEBNER 139 139 140 140 computed with algorithm: 141 141 du 142 143 term ordering: 142 143 term ordering: 144 144 elimination block: 145 145 0 … … 148 148 W_LEX 149 149 1 2 3 150 150 151 151 size: 152 152 1 153 153 154 154 Groebner basis: 155 2 3 -2 (* x^2 * y^3 - z^2 *) 156 157 158 159 OPTIONS: 160 161 -alg <alg>, 155 2 3 -2 (* x^2 * y^3 - z^2 *) 156 157 158 159 OPTIONS: 160 161 -alg <alg>, 162 162 --algorithm <alg> algorithm to use for computing the toric 163 ideal; <alg> may be 163 ideal; <alg> may be 164 164 ct for Conti/Traverso, 165 165 pct for the positive Conti/Traverso, … … 169 169 du for Di Biase/Urbanke, 170 170 blr for Bigatti-LaScal-Robbiano. 171 171 172 172 -p <number> percentage of new generators to cause an 173 autoreduction during BuchbergerŽs algorithm; 173 autoreduction during BuchbergerŽs algorithm; 174 174 <number> may be an arbitrary float, a 175 175 negative value allows no intermediate 176 176 autoreductions 177 default is 178 -p 12.0 177 default is 178 -p 12.0 179 179 180 180 -S [RP] [M] [B] [M] [2] criteria to use in BuchbergerŽs algorithm … … 185 185 B Gebauer-Moeller criterion B 186 186 2 BuchbergerŽs second criterion 187 default is 188 -S RP M B 189 190 -v, 191 --verbose verbose output mode; writes the settings for 187 default is 188 -S RP M B 189 190 -v, 191 --verbose verbose output mode; writes the settings for 192 192 BuchbergerŽs algorithm and the compiler 193 flags into the output GROEBNER file 194 195 -V <number>, 193 flags into the output GROEBNER file 194 195 -V <number>, 196 196 --version <number> version of BuchbergerŽs algorithm to use; 197 197 <number> may be 1, 1a, 2 or 3 198 198 default is 199 -V 1 200 201 199 -V 1 200 201
Note: See TracChangeset
for help on using the changeset viewer.