├── Column_Generation_Algorithm
├── data
│ ├── grid
│ │ ├── format.pdf
│ │ ├── grid1.dat
│ │ ├── grid2.dat
│ │ ├── grid3.dat
│ │ ├── grid4.dat
│ │ └── grid5.dat
│ └── planar
│ │ ├── format.pdf
│ │ ├── planar30.dat
│ │ └── planar50.dat
├── tiny-data
│ ├── tiny.dat
│ ├── model.lp
│ ├── tiny_iter_1.lp
│ ├── tiny_iter_2.lp
│ └── tiny_iter_3.lp
├── spp.h
├── binheap.h
├── pathpool.h
├── pathflow_model.h
├── main.cpp
├── mcf_data.h
└── solution.lp
└── Column_Generation_Algorithm.xcodeproj
├── project.xcworkspace
├── contents.xcworkspacedata
└── xcshareddata
│ └── IDEWorkspaceChecks.plist
├── xcuserdata
└── jingjinghuo.xcuserdatad
│ ├── xcschemes
│ └── xcschememanagement.plist
│ └── xcdebugger
│ └── Breakpoints_v2.xcbkptlist
├── xcshareddata
└── xcschemes
│ └── Column_Generation_Algorithm.xcscheme
└── project.pbxproj
/Column_Generation_Algorithm/data/grid/format.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iFocusing/Column_Generation_Algorithm/HEAD/Column_Generation_Algorithm/data/grid/format.pdf
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/data/planar/format.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iFocusing/Column_Generation_Algorithm/HEAD/Column_Generation_Algorithm/data/planar/format.pdf
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/tiny-data/tiny.dat:
--------------------------------------------------------------------------------
1 | tiny
2 | 4
3 | 6
4 | 2
5 | 1 2 6 4
6 | 2 1 1 4
7 | 1 3 2 5
8 | 3 2 1 2
9 | 3 4 2 2
10 | 2 4 3 3
11 |
12 | 1 4 3
13 | 2 3 3
--------------------------------------------------------------------------------
/Column_Generation_Algorithm.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/tiny-data/model.lp:
--------------------------------------------------------------------------------
1 | \ENCODING=ISO-8859-1
2 | \Problem name: IloCplex
3 |
4 | Minimize
5 | obj: 100000 p_1 + 100000 p_2 + 4 p_3 + 3 p_4 + 6 p_5 + 9 p_6
6 | Subject To
7 | c1: p_1 + p_3 + p_5 + p_6 = 3
8 | c2: p_2 + p_4 = 3
9 | c3: s_1 + p_6 = 4
10 | c4: s_2 + p_3 + p_4 + p_5 = 5
11 | c5: s_3 + p_4 = 4
12 | c6: s_4 + p_5 + p_6 = 3
13 | c7: s_5 + p_5 = 2
14 | c8: s_6 + p_3 = 2
15 | End
16 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/tiny-data/tiny_iter_1.lp:
--------------------------------------------------------------------------------
1 | \ENCODING=ISO-8859-1
2 | \Problem name: tiny
3 |
4 | Minimize
5 | obj: 100 x1 + 4 x2 + 100 x3 + 3 x4
6 | Subject To
7 | c1: <= 4
8 | c2: x2 + x4 <= 5
9 | c3: + x4 <= 4
10 | c4: <= 3
11 | c5: <= 2
12 | c6: x2 <= 2
13 | c7: x1 + x2 = 3
14 | c8: x3 + x4 = 3
15 | Bounds
16 | x1 >= 0
17 | x2 >= 0
18 | x3 >= 0
19 | x4 >= 0
20 | End
21 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm.xcodeproj/xcuserdata/jingjinghuo.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Column_Generation_Algorithm.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 71C30A4C21CC164D00004F17
16 |
17 | primary
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/tiny-data/tiny_iter_2.lp:
--------------------------------------------------------------------------------
1 | \ENCODING=ISO-8859-1
2 | \Problem name: tiny
3 |
4 | Minimize
5 | obj: 100 x1 + 4 x2 + 100 x3 + 3 x4 + 6 x5
6 | Subject To
7 | c1: <= 4
8 | c2: x2 + x4 + x5 <= 5
9 | c3: + x4 <= 4
10 | c4: + x5 <= 3
11 | c5: + x5 <= 2
12 | c6: x2 <= 2
13 | c7: x1 + x2 + x5 = 3
14 | c8: x3 + x4 = 3
15 | Bounds
16 | x1 >= 0
17 | x2 >= 0
18 | x3 >= 0
19 | x4 >= 0
20 | x5 >= 0
21 | End
22 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/tiny-data/tiny_iter_3.lp:
--------------------------------------------------------------------------------
1 | \ENCODING=ISO-8859-1
2 | \Problem name: tiny
3 |
4 | Minimize
5 | obj: 100 x1 + 4 x2 + 100 x3 + 3 x4 + 6 x5 + 9 x6
6 | Subject To
7 | c1: x6 <= 4
8 | c2: x2 + x4 + x5 <= 5
9 | c3: + x4 <= 4
10 | c4: + x5 + x6 <= 3
11 | c5: + x5 <= 2
12 | c6: x2 <= 2
13 | c7: x1 + x2 + x5 + x6 = 3
14 | c8: x3 + x4 = 3
15 | Bounds
16 | x1 >= 0
17 | x2 >= 0
18 | x3 >= 0
19 | x4 >= 0
20 | x5 >= 0
21 | x6 >= 0
22 | End
23 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm.xcodeproj/xcuserdata/jingjinghuo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
8 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm.xcodeproj/xcshareddata/xcschemes/Column_Generation_Algorithm.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
55 |
57 |
63 |
64 |
65 |
66 |
67 |
68 |
74 |
76 |
82 |
83 |
84 |
85 |
87 |
88 |
91 |
92 |
93 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/spp.h:
--------------------------------------------------------------------------------
1 | #include "binheap.h"
2 | #include "mcf_data.h"
3 | #include
4 | #include "time.h"
5 | #include
6 |
7 | #pragma once
8 |
9 | // *****************************************************************************
10 | // CLASS PROVIDING A 2-HEAP IMPLEMENTATION OF DIJKSTRA ALGORITHMS
11 | // See lecture slides 07_shrtpaths.pdf for a description of the algorithm
12 | // *****************************************************************************
13 |
14 | class dijkstra {
15 | public:
16 | // a vector to store the node distance labels (denoted by d[] in the lecture slides)
17 | std::vector d;
18 | // a vector to store the predecessor labels (denoted by π[] in the lecture slides)
19 | std::vector pi;
20 | // Constructor just resizes the local vectors
21 | dijkstra(int nNodes) {
22 | d.resize(nNodes, INT_MAX);
23 | pi.resize(nNodes, 0);
24 |
25 | }
26 |
27 | void reset() {
28 | for(int i = 0; i < d.size(); i++){
29 | d[i] = INT_MAX;
30 | pi[i] = 0;
31 | }
32 | }
33 |
34 | // finds a shortest path from root to sink node of a forward strar representation of a graph
35 | // At termination, the shortest path should be reconstructed by following backward the predecessor
36 | // labels starting from the desitination node. The predecessor label of the root node is always -1
37 | std::vector Dijkheap(int s, int dest, mcfdata mcf, mcfgraph g, binheap h, double &PP_total_time) {
38 | // s is start node
39 | // Node expansion: Use a forward star representation of G. This brings down the operation count for node expansion to O(m)
40 | // Node selection: Avoid scanning the entire T at each iteration by keeping it partially sorted using a heap
41 | // a vector to store the node that has permanent lable and add the start node into it;
42 | double time = 0;
43 | clock_t start, end;
44 | start = clock();
45 |
46 | reset();
47 | d[s] = 0;
48 | pi[s] = -1;
49 | h.Add(d, s);
50 | while(h.nheap != 0){
51 | int v = h.Choose(d);
52 | for (int i = g.point[v]; i < g.point[v+1]; i++){
53 | int dnew = d[v] + g.modifiedcost[i];
54 | int j = g.head[i];
55 | if(d[j] > dnew){
56 | pi[j] = v;
57 | if(d[j] == INT_MAX){
58 | d[j] = dnew;
59 | h.Add(d, j);
60 | }else{
61 | d[j] = dnew;
62 | h.Decreased_Label(d, j);
63 | }
64 | }
65 | }
66 | }
67 | int pre = dest;
68 | std::vector path;
69 | path.push_back(dest);
70 | while(pi[pre]!=-1){
71 | pre = pi[pre];
72 | path.insert(path.begin(), pre);
73 | }
74 | // std::cout << "Print from spp.h" << std::endl;
75 | // std::cout << "start: " << s << " dest: " << dest << std::endl;
76 |
77 | // int i;
78 | // for (i = 0; i < path.size() - 1; i++){
79 | // std::cout << path[i] << " -> ";
80 | // }
81 | // std::cout << path[i] << std::endl;
82 | end = clock();
83 | time = double(end - start) / CLOCKS_PER_SEC;
84 | PP_total_time += time;
85 | return path;
86 | }
87 |
88 | double path_cost(mcfgraph g, std::vector nodepath){
89 | double p_cost = 0;
90 | for(int i = 0; i < nodepath.size()-1; i++){
91 | int arc = g.get_arc_id(nodepath[i], nodepath[i+1]);
92 | p_cost += g.modifiedcost[arc];
93 | }
94 | return p_cost;
95 | }
96 | };
97 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/binheap.h:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #pragma once
4 |
5 | // *****************************************************************************
6 | // CLASS PROVIDING A 2-HEAP IMPLEMENTATION OF A PRIORITY QUEUE
7 | // See lecture slides shortestpaths.pdf for a pseudocode description of the heap
8 | // operations implemented below
9 | // *****************************************************************************
10 |
11 | class binheap {
12 | public:
13 | int nheap; // Denoted |H| in the lecture slides: It is the current number of nodes in the heap
14 | int maxsize; // the maximum # of nodes that the heap can have
15 | std::vector key; // Denoted H[] in the lecture slides: key[i] is the element stored in the Heap node i
16 | std::vector pos; // Denoted P[] in the lecture slides: pos[i] is Heap node number of element i,
17 | // if element k is inside the heap node i then pos(k) = i
18 |
19 | // The Constructor: Just initializes and sizes the local data structs
20 | binheap(int maxsize) : maxsize(maxsize) {
21 | nheap = 0;
22 | maxsize = maxsize;
23 | key.resize(maxsize);
24 | pos.resize(maxsize);
25 | }
26 | // The function MoveUp(H,P,d,i) described in the lecture slides
27 | // Here, d[] is called label[]
28 | int Move_Up(std::vector &label, int i) {
29 | if (i < 1) return -1;
30 | int p = (int)((double)(i - 1) * 0.5);
31 | if (label[key[i]] < label[key[p]]) {
32 | int tmp = key[i];
33 | key[i] = key[p];
34 | key[p] = tmp;
35 | tmp = pos[key[i]];
36 | pos[key[i]] = pos[key[p]];
37 | pos[key[p]] = tmp;
38 | return p;
39 | }
40 | return -1;
41 | }
42 | // The function MoveDown(H,P,|H|,d,i) described in the lecture slides
43 | // Here, d[] is called label[]
44 | int Move_Down(std::vector &label, int i) {
45 | if (2 * i + 1 >= nheap) return nheap;
46 | int inew = i;
47 | if (label[key[2 * i + 1]] < label[key[inew]]) {
48 | inew = 2 * i + 1;
49 | }
50 | if (2 * i + 2 < nheap) {
51 | if (label[key[2 * i + 2]] < label[key[inew]]) {
52 | inew = 2 * i + 2;
53 | }
54 | }
55 | if (inew != i) {
56 | int tmp = key[i];
57 | key[i] = key[inew];
58 | key[inew] = tmp;
59 | tmp = pos[key[i]];
60 | pos[key[i]] = pos[key[inew]];
61 | pos[key[inew]] = tmp;
62 | return inew;
63 | }
64 | return nheap;
65 | }
66 | // The function HeapAdd(H,P,|H|,d,k) described in the lecture slides
67 | // Here, d[] is called label[]
68 | void Add(std::vector &label, int k) {
69 | if (nheap > maxsize) {
70 | // TO DO: Handle Heap overflow
71 | // NOW IT JUST WAITS FOR THE USER TO ACKNOWLEDGE AND TERMINATES
72 | std::cout << " Heap overflow: terminating program \n Press Enter to quit ";
73 | std::cin.get();
74 | exit(0);
75 | }
76 | nheap = nheap + 1;
77 | key[nheap - 1] = k;
78 | pos[k] = nheap - 1;
79 | int i = nheap - 1;
80 | while (i > 0) {
81 | i = Move_Up(label, i);
82 | }
83 | }
84 | // The function ExtractMin(H,P,|H|,d) described in the lecture slides
85 | // Here, d[] is called label[]
86 | int Choose(std::vector &label) {
87 | if (nheap < 1) return -1;
88 | int j = key[0];
89 | pos[j] = -1;
90 | key[0] = key[nheap - 1];
91 | pos[key[nheap - 1]] = 0;
92 | nheap = nheap - 1;
93 | int i = 0;
94 | while (i < nheap - 1) {
95 | i = Move_Down(label, i);
96 | }
97 | return j;
98 | }
99 |
100 | // The function DecreasedLabel(H,P,|H|,d,k) described in the lecture slides
101 | // Here, d[] is called label[]
102 | void Decreased_Label(std::vector &label, int k) {
103 | int i = pos[k];
104 | while (i > 0) {
105 | i = Move_Up(label, i);
106 | }
107 | }
108 | // The function IncreasedLabel(H,P,|H|,d,k) described in the lecture slides
109 | // Here, d[] is called label[]
110 | void Increased_Label(std::vector &label, int k) {
111 | int i = pos[k];
112 | while (i < nheap - 1) {
113 | i = Move_Down(label, i);
114 | }
115 | }
116 | };
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/pathpool.h:
--------------------------------------------------------------------------------
1 | #include "mcf_data.h"
2 | #include "binheap.h"
3 | #include "spp.h"
4 |
5 | #pragma once
6 |
7 | // **********************************************************************************************************************************************************
8 | // A class that implements the path pool. Paths are represented as a sequence of ARCS and each arc is identified using its position in the forward ordering
9 | // that is, the arc id is the arc # in the forward star representation. All paths are stored contiguously in a vector pathseq[]. A vector pathini[p]
10 | // indicates the position in the vector pathseq[] of the first arc of path p (see lecture slides 09_ColGen_II.pdf)
11 | // **********************************************************************************************************************************************************
12 |
13 |
14 | class mcfpaths {
15 | public:
16 | // A variable to store the number of paths in the pool
17 | int nPaths;
18 | // A variable to store the number of arcs in all paths stored in the pool
19 | int nArcs;
20 | std::vector pa_arcs; // the paths arcs
21 | std::vector po_path; // the position of each path's first arc
22 | std::vector co_path; // the paths costs
23 | std::vector nu_comm; // the number of the paths commodities
24 | // A variable to store the max number of paths that the pool can have
25 | int max_nPaths;
26 | // A variable to store the max number of arcs that the pool can have
27 | int max_nArcs;
28 |
29 | // Constructor:
30 | // takes in input the max number of paths and max number of arcs that the pool
31 | // will store to size the data structures
32 | mcfpaths(int maxpaths, int maxarcs) {
33 | nPaths = 0;
34 | nArcs = 0;
35 | max_nArcs = maxarcs;
36 | max_nPaths = maxpaths;
37 | pa_arcs.resize(max_nArcs);
38 | po_path.resize(max_nPaths);
39 | co_path.resize(max_nPaths);
40 | nu_comm.resize(max_nPaths); // this is strange?
41 | }
42 |
43 | // A function to Initialize the path pool. After calling reset there should be no paths in the pool
44 | void reset(void) {
45 | nPaths = 0;
46 | nArcs = 0;
47 | pa_arcs.clear();
48 | po_path.clear();
49 | co_path.clear();
50 | nu_comm.clear();
51 | }
52 |
53 | // A function to add to the pool a shortest path (computed with respect to the true arc costs) for each commodity.
54 | // needs in input an object providing heap functions, and a dijkstra object providing dijkstra's algorithm
55 | void init(mcfdata &mcf, mcfgraph &g, binheap &heap, dijkstra &djk, double &PP_total_time) {
56 | std::vector path;
57 | for (int i = 0; i < mcf.nComm; i++){
58 | add_artificial_paths(mcf, g, i);
59 | }
60 | for (int i = 0; i < mcf.nComm; i++){
61 | // std::cout << "For comm " << i << " finding the shortest path: (" << mcf.CommOri[i] << ", " << mcf.CommEnd[i] << "):" << std::endl;
62 | path = djk.Dijkheap(mcf.CommOri[i], mcf.CommEnd[i], mcf, g, heap, PP_total_time);
63 | add_nodepath(g, path, int(path.size()-1), i);
64 | }
65 | }
66 |
67 | // A function to add the 'virtual paths' to the path pool (see lecture slides 09_ColGen_II.pdf)
68 | void add_artificial_paths(mcfdata &mcf, mcfgraph &g, int comm) {
69 | std::vector path;
70 | add_nodepath(g, path, 0, comm);
71 | co_path[nPaths-1] = mcf.bigM;
72 | }
73 |
74 | //A function that takes in input the forward star g, a path (node sequence including both start & end node)
75 | // and the commodity for which the path has to be added. Adds the path to the path pool and
76 | // returns true is no errors occur. Returns false if the path cannot be stored.
77 | bool add_nodepath(mcfgraph &g, std::vector &nodepath, int pathsize, int comm) {
78 | if (nPaths > max_nPaths || nArcs + pathsize > max_nArcs){
79 | return false;
80 | }
81 | po_path[nPaths] = nArcs;
82 | nu_comm[nPaths] = comm;
83 | co_path[nPaths] = 0;
84 | for(int i = 0; i < pathsize; i++){
85 | int arc = g.get_arc_id(nodepath[i], nodepath[i+1]);
86 | pa_arcs[nArcs] = arc;
87 | nArcs++;
88 | co_path[nPaths] += g.cost[arc];
89 | }
90 | nPaths++;
91 | po_path[nPaths] = nArcs;
92 | return true;
93 | }
94 | };
95 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/data/grid/grid1.dat:
--------------------------------------------------------------------------------
1 | grid1
2 | 25
3 | 80
4 | 50
5 | 1 2 91 139
6 | 1 6 97 286
7 | 2 1 95 105
8 | 2 3 82 141
9 | 2 7 92 153
10 | 3 2 85 355
11 | 3 4 95 418
12 | 3 8 97 292
13 | 4 3 93 178
14 | 4 5 83 145
15 | 4 9 85 195
16 | 5 4 99 144
17 | 5 10 87 113
18 | 6 1 80 130
19 | 6 7 85 485
20 | 6 11 98 314
21 | 7 2 88 257
22 | 7 6 93 445
23 | 7 8 84 427
24 | 7 12 85 226
25 | 8 3 81 352
26 | 8 7 96 160
27 | 8 9 96 286
28 | 8 13 88 284
29 | 9 4 87 197
30 | 9 8 98 388
31 | 9 10 84 212
32 | 9 14 97 421
33 | 10 5 100 271
34 | 10 9 83 285
35 | 10 15 99 219
36 | 11 6 94 416
37 | 11 12 88 155
38 | 11 16 86 400
39 | 12 7 96 306
40 | 12 11 83 303
41 | 12 13 98 379
42 | 12 17 85 453
43 | 13 8 93 235
44 | 13 12 86 270
45 | 13 14 93 303
46 | 13 18 94 384
47 | 14 9 82 267
48 | 14 13 96 385
49 | 14 15 91 441
50 | 14 19 88 153
51 | 15 10 92 380
52 | 15 14 98 322
53 | 15 20 83 252
54 | 16 11 82 335
55 | 16 17 88 475
56 | 16 21 94 259
57 | 17 12 96 185
58 | 17 16 94 197
59 | 17 18 80 284
60 | 17 22 94 284
61 | 18 13 86 230
62 | 18 17 100 492
63 | 18 19 100 294
64 | 18 23 94 299
65 | 19 14 82 145
66 | 19 18 89 454
67 | 19 20 98 399
68 | 19 24 88 172
69 | 20 15 100 408
70 | 20 19 89 247
71 | 20 25 81 387
72 | 21 16 92 99
73 | 21 22 98 273
74 | 22 17 92 330
75 | 22 21 92 187
76 | 22 23 92 134
77 | 23 18 96 377
78 | 23 22 94 206
79 | 23 24 99 377
80 | 24 19 97 472
81 | 24 23 97 281
82 | 24 25 92 406
83 | 25 20 89 464
84 | 25 24 95 212
85 | 18 15 69
86 | 6 1 79
87 | 11 21 20
88 | 7 15 51
89 | 4 21 84
90 | 20 10 42
91 | 12 10 55
92 | 24 11 33
93 | 11 25 63
94 | 20 21 87
95 | 19 12 13
96 | 14 10 18
97 | 18 11 16
98 | 18 23 58
99 | 18 4 85
100 | 10 23 75
101 | 6 3 93
102 | 21 17 82
103 | 1 16 43
104 | 2 18 97
105 | 18 25 44
106 | 23 16 55
107 | 9 7 80
108 | 23 4 79
109 | 2 21 54
110 | 20 24 85
111 | 18 3 55
112 | 12 8 42
113 | 15 3 11
114 | 6 19 36
115 | 7 11 29
116 | 24 25 59
117 | 10 8 86
118 | 3 5 91
119 | 1 19 16
120 | 22 7 78
121 | 7 1 30
122 | 6 20 33
123 | 22 18 15
124 | 7 17 69
125 | 25 9 51
126 | 20 8 57
127 | 6 15 65
128 | 8 17 60
129 | 8 13 81
130 | 13 23 78
131 | 22 16 59
132 | 17 21 38
133 | 11 6 38
134 | 23 5 96
135 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/data/grid/grid2.dat:
--------------------------------------------------------------------------------
1 | grid2
2 | 25
3 | 80
4 | 100
5 | 1 2 91 235
6 | 1 6 97 382
7 | 2 1 95 201
8 | 2 3 82 237
9 | 2 7 92 249
10 | 3 2 85 451
11 | 3 4 95 514
12 | 3 8 97 388
13 | 4 3 93 274
14 | 4 5 83 241
15 | 4 9 85 291
16 | 5 4 99 240
17 | 5 10 87 209
18 | 6 1 80 226
19 | 6 7 85 581
20 | 6 11 98 410
21 | 7 2 88 353
22 | 7 6 93 541
23 | 7 8 84 523
24 | 7 12 85 322
25 | 8 3 81 448
26 | 8 7 96 256
27 | 8 9 96 382
28 | 8 13 88 380
29 | 9 4 87 293
30 | 9 8 98 484
31 | 9 10 84 308
32 | 9 14 97 517
33 | 10 5 100 367
34 | 10 9 83 381
35 | 10 15 99 315
36 | 11 6 94 512
37 | 11 12 88 251
38 | 11 16 86 496
39 | 12 7 96 402
40 | 12 11 83 399
41 | 12 13 98 475
42 | 12 17 85 549
43 | 13 8 93 331
44 | 13 12 86 366
45 | 13 14 93 399
46 | 13 18 94 480
47 | 14 9 82 363
48 | 14 13 96 481
49 | 14 15 91 537
50 | 14 19 88 249
51 | 15 10 92 476
52 | 15 14 98 418
53 | 15 20 83 348
54 | 16 11 82 431
55 | 16 17 88 571
56 | 16 21 94 355
57 | 17 12 96 281
58 | 17 16 94 293
59 | 17 18 80 380
60 | 17 22 94 380
61 | 18 13 86 326
62 | 18 17 100 588
63 | 18 19 100 390
64 | 18 23 94 395
65 | 19 14 82 241
66 | 19 18 89 550
67 | 19 20 98 495
68 | 19 24 88 268
69 | 20 15 100 504
70 | 20 19 89 343
71 | 20 25 81 483
72 | 21 16 92 195
73 | 21 22 98 369
74 | 22 17 92 426
75 | 22 21 92 283
76 | 22 23 92 230
77 | 23 18 96 473
78 | 23 22 94 302
79 | 23 24 99 473
80 | 24 19 97 568
81 | 24 23 97 377
82 | 24 25 92 502
83 | 25 20 89 560
84 | 25 24 95 308
85 | 18 15 69
86 | 6 1 79
87 | 11 21 20
88 | 7 15 51
89 | 4 21 84
90 | 20 10 42
91 | 12 10 55
92 | 24 11 33
93 | 11 25 63
94 | 20 21 87
95 | 19 12 13
96 | 14 10 18
97 | 18 11 16
98 | 18 23 58
99 | 18 4 85
100 | 10 23 75
101 | 6 3 93
102 | 21 17 82
103 | 1 16 43
104 | 2 18 97
105 | 18 25 44
106 | 23 16 55
107 | 9 7 80
108 | 23 4 79
109 | 2 21 54
110 | 20 24 85
111 | 18 3 55
112 | 12 8 42
113 | 15 3 11
114 | 6 19 36
115 | 7 11 29
116 | 24 25 59
117 | 10 8 86
118 | 3 5 91
119 | 1 19 16
120 | 22 7 78
121 | 7 1 30
122 | 6 20 33
123 | 22 18 15
124 | 7 17 69
125 | 25 9 51
126 | 20 8 57
127 | 6 15 65
128 | 8 17 60
129 | 8 13 81
130 | 13 23 78
131 | 22 16 59
132 | 17 21 38
133 | 11 6 38
134 | 23 5 96
135 | 5 3 34
136 | 5 22 37
137 | 13 7 100
138 | 6 23 92
139 | 10 2 83
140 | 7 18 83
141 | 17 15 84
142 | 16 14 38
143 | 14 3 12
144 | 13 11 28
145 | 3 22 63
146 | 16 15 92
147 | 1 7 52
148 | 5 4 83
149 | 4 6 17
150 | 11 13 57
151 | 9 10 60
152 | 9 12 22
153 | 4 15 95
154 | 25 16 59
155 | 21 14 80
156 | 12 9 40
157 | 9 2 72
158 | 2 12 75
159 | 18 5 47
160 | 21 12 91
161 | 15 19 17
162 | 14 4 11
163 | 19 22 16
164 | 10 16 45
165 | 25 1 95
166 | 23 13 57
167 | 13 24 74
168 | 17 24 85
169 | 6 16 43
170 | 8 18 16
171 | 7 8 100
172 | 6 9 49
173 | 18 8 11
174 | 14 25 20
175 | 5 25 39
176 | 14 23 91
177 | 1 18 60
178 | 4 16 74
179 | 17 8 70
180 | 23 3 15
181 | 3 25 29
182 | 14 13 48
183 | 11 1 52
184 | 19 7 96
185 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/pathflow_model.h:
--------------------------------------------------------------------------------
1 | #include "ilcplex/cplex.h"
2 | #include "ilcplex/ilocplex.h"
3 | #include "mcf_data.h"
4 | #include "pathpool.h"
5 | #include
6 |
7 | #pragma once
8 |
9 | /* ***********************************************************************************************************************************
10 | Define a class to store the data of the path-flow model (see also the similar code in CPLEX Tutorial for the arc-flow model)
11 | *********************************************************************************************************************************** */
12 |
13 | class pathflowdata {
14 | public:
15 |
16 | // CPLEX model object
17 | IloModel model;
18 | // IloRangeArray arrays to store the capacity and demand constraint objects of the model
19 | IloRangeArray CapacityConstrains;
20 | IloRangeArray DemandConstrains;
21 | // IloNumVarArray Arrays to store the variable objects of the model
22 | IloNumVarArray PFlowVariables;
23 | // IloObjective object to model obj function of the model
24 | IloObjective obj;
25 | // variables to store objective value and solution time
26 | double bestobj;
27 | double soltime;
28 |
29 | // CPLEX array to store the dual vectors associated with demand constraints
30 | IloNumArray DemandDuals;
31 | // CPLEX array to store the dual vectors associated with capacity constraints
32 | IloNumArray CapacityDuals;
33 | // CPLEX array to store the flow variable values
34 | IloNumArray PFlowVariableValues;
35 | std::vector DemandConstrainsIndex;
36 | std::vector PFlowVariableIndex;
37 | /* ***********************************************************************************************************************************
38 | Constructor of pathflowdata
39 | *********************************************************************************************************************************** */
40 | pathflowdata(const IloEnv env) {
41 | bestobj = 0;
42 | soltime = 0;
43 | // links the CPLEX model to the environment passed to the constructor
44 | model = (env);
45 | // links all CPLEX arrays to the environment passed to the constructor
46 | PFlowVariables = (env);
47 | CapacityConstrains = (env);
48 | DemandConstrains = (env);
49 | PFlowVariableValues = (env);
50 | DemandDuals = (env);
51 | CapacityDuals = (env);
52 | // defines the CPLEX objective function as a minimization objective for the CPLEX model
53 | obj = (IloMinimize(env));
54 | // adds the objective to the model
55 | model.add(obj);
56 | }
57 |
58 | /* ***********************************************************************************************************************************
59 | A function that creates and adds to the model all the the (empty) constraints of the path-flow model
60 | *********************************************************************************************************************************** */
61 | void add_constraints(mcfdata &mcf, mcfgraph &g, IloEnv &env) {
62 | char varname[100];
63 | for(int k = 0; k < mcf.nComm; k++){
64 | IloRange constraint(env, mcf.CommDem[k], mcf.CommDem[k], NULL);
65 | // add the constraint to the corresponding constraints array
66 | DemandConstrains.add(constraint);
67 | }
68 | // add the demand constraints to the model
69 | model.add(DemandConstrains);
70 |
71 |
72 | for (int a = 0; a < g.head.size(); a++) {
73 | IloRange constraint(env, g.capa[a], g.capa[a], NULL);
74 | // add the constraint to the corresponding constraints array
75 | CapacityConstrains.add(constraint);
76 | IloNumColumn col(env);
77 | col = CapacityConstrains[a](+1);
78 |
79 | IloNumVar var(col, 0, IloInfinity, ILOFLOAT);
80 | std::string strname = "s_" + std::to_string(a + 1);
81 | if (strname.size() < 100) {
82 | std::copy(strname.begin(), strname.end(), varname);
83 | varname[strname.size()] = '\0';
84 | var.setName(varname);
85 | }else{
86 | strname.resize(100);
87 | std::copy(strname.begin(), strname.end(), varname);
88 | varname[strname.size()] = '\0';
89 | var.setName(varname);
90 | }
91 |
92 | // add the variable to the CPLEX variables array and to the model
93 | PFlowVariables.add(var);
94 | model.add(PFlowVariables[PFlowVariables.getSize() - 1]);
95 | }
96 | // add the capacity constraints to the model
97 | model.add(CapacityConstrains);
98 |
99 | }
100 |
101 | /* ***********************************************************************************************************************************
102 | A function that Takes in input two integers first and last and adds to the model the variables corresponding to the paths
103 | numbered first, first+1, ..., last that are memorized in the path pool
104 | *********************************************************************************************************************************** */
105 | void add_paths(mcfdata &mcf, IloEnv &env, mcfpaths &pathpool, int first, int last) {
106 | char varname[100];
107 | for(int i = first; i < last; i++){
108 | // create a column modeling the path
109 | IloNumColumn col(model.getEnv());
110 | col += obj(pathpool.co_path[i]);
111 | int start_arc = pathpool.po_path[i];
112 | int end_arc = pathpool.po_path[i+1];
113 | // for(int i =0; i< pathpool.pa_arcs.size(); i++){
114 | // std::cout << pathpool.pa_arcs[i] << " ";
115 | // }
116 |
117 | for (int j = start_arc; j < end_arc; j++){
118 | // std::cout << pathpool.pa_arcs[j] << " ";
119 | col += CapacityConstrains[pathpool.pa_arcs[j]](+1);
120 | }
121 | col += DemandConstrains[pathpool.nu_comm[i]](+1);
122 | std::string strname = "p_" + std::to_string(i+1);
123 | IloNumVar var(col, 0, IloInfinity, ILOFLOAT);
124 |
125 | if (strname.size() < 100) {
126 | std::copy(strname.begin(), strname.end(), varname);
127 | varname[strname.size()] = '\0';
128 | var.setName(varname);
129 | }else{
130 | strname.resize(100);
131 | std::copy(strname.begin(), strname.end(), varname);
132 | varname[strname.size()] = '\0';
133 | var.setName(varname);
134 | }
135 |
136 | // add the variable to the CPLEX variables array and to the model
137 | PFlowVariables.add(var);
138 | model.add(PFlowVariables[PFlowVariables.getSize() - 1]);
139 | }
140 | }
141 |
142 | /* ***********************************************************************************************************************************
143 | Prints to screen and to file the last primal solution (flows) stored
144 | *********************************************************************************************************************************** */
145 | void print_solution(const mcfdata mcf, int status) {
146 | // std::ofstream sol(mcf.ProbName + ".sol");
147 | // if (sol.is_open()) sol.close();
148 | std::cout << "pathflow.bestobj: " << std::setprecision(10) << bestobj << std::endl;
149 | // for (int i = 0; i < PFlowVariables.getSize(); i++) {
150 | // std::cout << PFlowVariables[i] << PFlowVariableValues[i] << " ";
151 | // }
152 | // std::cout << "" << std::endl;
153 | }
154 |
155 | /* ***********************************************************************************************************************************
156 | Prints to screen and to file the last dual solution (flows) stored
157 | *********************************************************************************************************************************** */
158 | void print_duals(const mcfdata mcf, int status) {
159 | // std::ofstream sol(mcf.ProbName + ".dua");
160 | // if (sol.is_open()) sol.close();
161 | // std::cout << "CapacityDuals: " << CapacityDuals << std::endl;
162 | // std::cout << "DemandDuals: " << DemandDuals << std::endl;
163 | }
164 |
165 | };
166 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/main.cpp:
--------------------------------------------------------------------------------
1 | /* ***********************************************************************************************************************************
2 | Computational Optimization in Logistics: Project 2
3 | *********************************************************************************************************************************** */
4 |
5 | #pragma warning(disable : 4996)
6 |
7 | /* **********************************************************************************************************************************
8 | Include the file mcf_data.h which provides the class for reading and storing the instance data. It also includes other files we need
9 | *********************************************************************************************************************************** */
10 | #include "mcf_data.h"
11 | #include "pathflow_model.h"
12 | #include "spp.h"
13 | #include "pathpool.h"
14 | #include
15 | #include "time.h"
16 | #include
17 | /* **********************************************************************************************************************************
18 | Include CPLEX header files
19 | *********************************************************************************************************************************** */
20 |
21 | #include "ilcplex/cplex.h"
22 | #include "ilcplex/ilocplex.h"
23 |
24 |
25 |
26 | /* ***********************************************************************************************************************************
27 | CG algorithm: solves the path-flow model stored inside the object pathflow. Here I assume that: Dijkstra algorithm is available as
28 | a member function of class dijkstra, the pool of paths is stored by the object pathpool, the problem data is stored by the object mcf,
29 | the forward star is stored by an object g. Class binheap provides heap functions
30 | *********************************************************************************************************************************** */
31 |
32 | bool cgsolve(mcfdata &mcf, IloEnv &env, IloCplex &solver, pathflowdata &pathflow, mcfgraph &g, mcfpaths &p_pool, binheap &h, dijkstra &djk, int &iter, double &CG_total_time, double &PP_total_time) {
33 | double epsilon = 0.000001;
34 | bool err = false;
35 | bool optimal = false;
36 | while(!optimal){
37 | solver.exportModel("data/model.lp");
38 | // solver.exportModel("tiny-data/model.lp");
39 | iter++;
40 | IloNum tcpx1 = solver.getCplexTime();
41 | bool feasible = solver.solve();
42 | IloNum tcpx2 = solver.getCplexTime();
43 | int status = solver.getCplexStatus();
44 | pathflow.soltime = tcpx2 - tcpx1;
45 | std::cout << " CPLEX sol time" << pathflow.soltime << " sec." << std::endl;
46 | CG_total_time += pathflow.soltime;
47 | std::cout << " CPLEX sol status " << status << std::endl;
48 | // if a feasible solution is available
49 | if (feasible) {
50 | pathflow.bestobj = solver.getObjValue();
51 | solver.getValues(pathflow.PFlowVariables, pathflow.PFlowVariableValues);
52 | solver.getDuals(pathflow.DemandDuals, pathflow.DemandConstrains);
53 | solver.getDuals(pathflow.CapacityDuals, pathflow.CapacityConstrains);
54 | pathflow.print_solution(mcf, status);
55 | pathflow.print_duals(mcf, status);
56 | }else{
57 | std::cout << "dual not feasible!" << std::endl;
58 | err = false;
59 | }
60 | for (int i = 0; i < g.modifiedcost.size(); i++) {
61 | g.modifiedcost[i] = g.cost[i] - pathflow.CapacityDuals[i];
62 | }
63 | optimal = true;
64 | for(int c = 0; c < mcf.nComm; c++){
65 | std::vector path;
66 | path = djk.Dijkheap(mcf.CommOri[c], mcf.CommEnd[c], mcf, g, h, PP_total_time);
67 | double p_cost = djk.path_cost(g, path);
68 |
69 | if(p_cost < pathflow.DemandDuals[c] - epsilon){
70 | optimal = false;
71 | int first = p_pool.nPaths;
72 | p_pool.add_nodepath(g, path, int(path.size()-1), c);
73 | int last = p_pool.nPaths;
74 | pathflow.add_paths(mcf, env, p_pool, first, last);
75 | }
76 | }
77 | IloCplex solver(pathflow.model);
78 | err = true;
79 | }
80 | return err;
81 | }
82 | /* ***********************************************************************************************************************************
83 | The main function is the entry point of our program
84 | *********************************************************************************************************************************** */
85 | int main() {
86 | std::cout <<"Begin:"< 0){
128 | error = true;
129 | mcf.bigM = mcf.bigM * 5;
130 | break;
131 | }
132 | }
133 |
134 | while (error){
135 | // Get the solution x using function solver.getValues() and check if the virtual path variables have positive value. (first ncomm paths in pool)
136 | IloEnv env1;
137 | pathflowdata pathflow1(env1);
138 | pathflow = pathflow1;
139 | p_pool.reset();
140 | int first = p_pool.nPaths;
141 | p_pool.init(mcf, g, h, djk, PP_total_time);
142 | int last = p_pool.nPaths;
143 | // add constraints and variables into the pathflow model;
144 | pathflow1.add_constraints(mcf, g, env1);
145 | pathflow1.add_paths(mcf, env1, p_pool, first, last);
146 | cgsolve(mcf, env1, solver, pathflow, g, p_pool, h, djk, iter, CG_total_time, PP_total_time);
147 | for (int i = n; i < n + mcf.nComm; i++){
148 | if (pathflow1.PFlowVariableValues[i] > 0){
149 | error = true;
150 | mcf.bigM = mcf.bigM * 5;
151 | break;
152 | }
153 | else{
154 | error = false;
155 | }
156 | }
157 | }
158 |
159 |
160 | end = clock();
161 | total_time = double(end - start) / CLOCKS_PER_SEC;
162 | std::cout << "1. Iteration number: "<< iter << "." << std::endl;
163 | std::cout << "2. The total number of columns: "<< pathflow.PFlowVariables.getSize() << "." << std::endl;
164 | std::cout << "3. The optimal cost obtained at the end(pathflow.bestobj): " << std::setprecision(10) << pathflow.bestobj << std::endl;
165 | std::cout << "4. The total time spent for solving the master problem over all iterations(CG_total_time): "<< CG_total_time << " sec." << std::endl;
166 | std::cout << "5. The total time spent for solving the pricing problem(PP_total_time): "<< std::setprecision(8) << PP_total_time << " sec." << std::endl;
167 | std::cout << "6. The total computing time: "<< total_time << " sec." << std::endl;
168 | // std::cin.get();
169 | env.end();
170 | return 0;
171 | }
172 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/mcf_data.h:
--------------------------------------------------------------------------------
1 |
2 | /* ***********************************************************************************************************************************
3 | Include files: Provide access to functions classes constants and macros defined in include files filename.h :
4 | use to include a file located in one of the locations specified by the compiler
5 | use "filename.h" to include a file located in the same directory of this file
6 | *********************************************************************************************************************************** */
7 |
8 | #include // for file manipulation
9 | #include // for console input output
10 | #include // for strings manipulation
11 | #include // for using vectors (arrays with several built in functionalities)
12 |
13 | #pragma once
14 |
15 | /* ***********************************************************************************************************************************
16 | Define a class to read and store the instance data. We assume that the input file is formatted
17 | as follows:
18 | -------------------------------------------------
19 | name_of_instance #_of_nodes #_of_arcs
20 | tail_node_of_arc_1 head_node_of_arc_1 unit_flow_cost_of_arc_1 capacity_of_arc_1
21 | tail_node_of_arc_2 head_node_of_arc_2 unit_flow_cost_of_arc_2 capacity_of_arc_2
22 | ... ... ... ...
23 | origin_node_of_commodity_1 destination_node_of_commodity_1 demand_of_commodity_1
24 | origin_node_of_commodity_2 destination_node_of_commodity_2 demand_of_commodity_2
25 | ... ... ... ...
26 | -------------------------------------------------
27 |
28 | *********************************************************************************************************************************** */
29 |
30 | class mcfdata {
31 | public:
32 | int nNode; // the # of nodes
33 | int nArcs; // the # of arcs
34 | int nComm; // the # of commodities
35 | double bigM; // a very big number, will be used as cost of the artificial
36 | // variables (virtual paths) in the CG algorithm
37 |
38 | std::vector ArcTail; // the tail vertex of each arc
39 | std::vector ArcHead; // the head vertex of each arc
40 | std::vector ArcCost; // the cost of each arc
41 | std::vector ArcCapa; // the capacity of each arc
42 | std::vector CommOri; // the starting vertex of each commodity
43 | std::vector CommEnd; // the terminal vertex of each commodity
44 | std::vector CommDem; // the demand of each commodity
45 | std::vector OutDegr; // the number of arcs outgoing from each vertex
46 | std::vector InDegre; // the number of arcs ingoing into each vertex
47 |
48 | std::string ProbName; // the name of the instance
49 |
50 | // Constructor function: must have same name as the class
51 | // Is called automatically to initialize a mcfdata object upon creation
52 | mcfdata() {
53 | nNode = 0;
54 | nArcs = 0;
55 | nComm = 0;
56 | bigM = 10000000;
57 | ProbName = "";
58 |
59 | for (int i = 0; i> ProbName;
79 | input >> nNode >> nArcs >> nComm;
80 |
81 | // Dimension the vectors
82 | ArcTail.resize(nArcs);
83 | ArcHead.resize(nArcs);
84 | ArcCost.resize(nArcs);
85 | ArcCapa.resize(nArcs);
86 |
87 | CommOri.resize(nComm);
88 | CommEnd.resize(nComm);
89 | CommDem.resize(nComm);
90 |
91 | OutDegr.resize(nNode);
92 | InDegre.resize(nNode);
93 |
94 | // Read arc data
95 | for (int a = 0; a < nArcs; a++) {
96 | input >> ArcTail[a] >> ArcHead[a] >> ArcCost[a] >> ArcCapa[a];
97 | ArcTail[a] --;
98 | ArcHead[a] --;
99 | OutDegr[ArcTail[a]] ++;
100 | InDegre[ArcHead[a]] ++;
101 | }
102 |
103 | // Read commodity data
104 | for (int k = 0; k < nComm; k++) {
105 | input >> CommOri[k] >> CommEnd[k] >> CommDem[k];
106 | CommOri[k] --;
107 | CommEnd[k] --;
108 | }
109 |
110 | // Close the input file
111 | input.close();
112 | }
113 | else { return false; }
114 |
115 | return true;
116 | }
117 |
118 | void print(){
119 | std::cout << "MCF problem: " << ProbName << std::endl;
120 | std::cout << "nNode: " << nNode << std::endl;
121 | std::cout << "nArcs: " << nArcs << std::endl;
122 | std::cout << "nComm: " << nComm<< std::endl;
123 | std::cout << "bigM: " << bigM<< std::endl;
124 | }
125 |
126 | };
127 |
128 |
129 | // *****************************************************************************
130 | // CLASS FOR GRAPH REPRESENTATION OF THE MCF NETWORK
131 | // *****************************************************************************
132 |
133 | class mcfgraph {
134 | public:
135 | int n; // number of nodes in the graph
136 | int m; // number of arcs in the graph
137 |
138 | // see lectures slides 06_netflows.pdf for a description of these vectors
139 | std::vector point;
140 | std::vector head;
141 | std::vector cost;
142 | std::vector capa;
143 | // the next vector will be useful for storing the arc modified costs to be used when solving
144 | // the pricing problem within the column generation algorithm
145 | std::vector modifiedcost;
146 |
147 | // the constructor just sizes the data structures
148 | // input to the constructor is the # of nodes n and # of arcs m
149 | mcfgraph(int n, int m) {
150 | cost.resize(m);
151 | head.resize(m);
152 | point.resize(n + 1);
153 | modifiedcost.resize(m);
154 | capa.resize(m);
155 | }
156 |
157 | // function that constructs the forward star representation of the input network
158 | // see lectures slides 06_netflows.pdf for a description of the procedure
159 | void fstar(mcfdata &mcf) {
160 | std::vector numf(mcf.nNode, 0);
161 | int a = -1;
162 |
163 | // Initialize the vector point and numf
164 | point[0] = 0;
165 | int i;
166 | for (i = 1; i < mcf.nNode; i++){
167 | point[i] = point[i-1] + mcf.OutDegr[i-1];
168 | }
169 | point[i] = mcf.nArcs;
170 |
171 | // Construct the forward star (fill vectors head, cost, and capa)
172 | for(int i = 0; i < mcf.nArcs; i++){
173 | a = point[mcf.ArcTail[i]] + numf[mcf.ArcTail[i]];
174 | head[a] = mcf.ArcHead[i];
175 | cost[a] = mcf.ArcCost[i];
176 | modifiedcost[a] = mcf.ArcCost[i];
177 | capa[a] = mcf.ArcCapa[i];
178 | numf[mcf.ArcTail[i]] = numf[mcf.ArcTail[i]] + 1;
179 | }
180 | }
181 |
182 | // function that given in input two nodes returns the corresponding arc #
183 | // with respect to the forward order. Returns - 1 if no such arc exists
184 | int get_arc_id(int i, int j) {
185 | //i is tail, j is head;
186 | int begin_point = point[i];
187 | for (int k = 0; k <= point[i+1] - begin_point; k++){
188 | if (head[begin_point+k] == j){
189 | return begin_point+k;
190 | }
191 | }
192 | return -1;
193 | }
194 | };
195 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/data/planar/planar30.dat:
--------------------------------------------------------------------------------
1 | planar30
2 | 30
3 | 150
4 | 92
5 | 1 14 9981 48
6 | 14 1 9981 48
7 | 1 16 11417 115
8 | 16 1 11417 115
9 | 1 22 20077 65
10 | 22 1 20077 65
11 | 1 26 8501 86
12 | 26 1 8501 86
13 | 2 12 52306 35
14 | 12 2 52306 35
15 | 2 16 9169 116
16 | 16 2 9169 116
17 | 2 19 118372 42
18 | 19 2 118372 42
19 | 2 21 6581 25
20 | 21 2 6581 25
21 | 2 26 10537 114
22 | 26 2 10537 114
23 | 3 17 6253 80
24 | 17 3 6253 80
25 | 3 19 56821 70
26 | 19 3 56821 70
27 | 3 22 33930 86
28 | 22 3 33930 86
29 | 3 24 29725 105
30 | 24 3 29725 105
31 | 3 25 37000 109
32 | 25 3 37000 109
33 | 3 30 41497 57
34 | 30 3 41497 57
35 | 4 11 88201 97
36 | 11 4 88201 97
37 | 4 15 7760 102
38 | 15 4 7760 102
39 | 4 18 8584 63
40 | 18 4 8584 63
41 | 4 23 51080 103
42 | 23 4 51080 103
43 | 4 27 14474 85
44 | 27 4 14474 85
45 | 4 28 36756 43
46 | 28 4 36756 43
47 | 5 7 1098 107
48 | 7 5 1098 107
49 | 5 10 12025 33
50 | 10 5 12025 33
51 | 5 13 13796 95
52 | 13 5 13796 95
53 | 5 23 48130 38
54 | 23 5 48130 38
55 | 5 25 13032 59
56 | 25 5 13032 59
57 | 5 27 44136 82
58 | 27 5 44136 82
59 | 5 30 4369 72
60 | 30 5 4369 72
61 | 6 7 9490 49
62 | 7 6 9490 49
63 | 6 8 6250 111
64 | 8 6 6250 111
65 | 6 10 7649 84
66 | 10 6 7649 84
67 | 6 28 15634 92
68 | 28 6 15634 92
69 | 6 30 19853 74
70 | 30 6 19853 74
71 | 7 10 7693 26
72 | 10 7 7693 26
73 | 7 30 5065 101
74 | 30 7 5065 101
75 | 8 14 43216 96
76 | 14 8 43216 96
77 | 8 20 33146 113
78 | 20 8 33146 113
79 | 8 28 23108 71
80 | 28 8 23108 71
81 | 8 29 27752 118
82 | 29 8 27752 118
83 | 8 30 44285 79
84 | 30 8 44285 79
85 | 9 11 25541 99
86 | 11 9 25541 99
87 | 9 20 1780 106
88 | 20 9 1780 106
89 | 9 29 6890 26
90 | 29 9 6890 26
91 | 10 13 61 102
92 | 13 10 61 102
93 | 10 28 5953 46
94 | 28 10 5953 46
95 | 11 20 16217 84
96 | 20 11 16217 84
97 | 11 28 52357 99
98 | 28 11 52357 99
99 | 12 14 107185 100
100 | 14 12 107185 100
101 | 12 21 24025 99
102 | 21 12 24025 99
103 | 13 27 20852 28
104 | 27 13 20852 28
105 | 13 28 4810 31
106 | 28 13 4810 31
107 | 14 16 15140 99
108 | 16 14 15140 99
109 | 14 21 44100 79
110 | 21 14 44100 79
111 | 14 22 49360 46
112 | 22 14 49360 46
113 | 14 29 51976 95
114 | 29 14 51976 95
115 | 14 30 73069 61
116 | 30 14 73069 61
117 | 15 18 680 29
118 | 18 15 680 29
119 | 15 27 3842 75
120 | 27 15 3842 75
121 | 15 28 12308 74
122 | 28 15 12308 74
123 | 16 21 14216 66
124 | 21 16 14216 66
125 | 16 26 1620 102
126 | 26 16 1620 102
127 | 17 25 12913 117
128 | 25 17 12913 117
129 | 17 30 21960 36
130 | 30 17 21960 36
131 | 18 27 1378 34
132 | 27 18 1378 34
133 | 19 22 31753 55
134 | 22 19 31753 55
135 | 19 24 33412 76
136 | 24 19 33412 76
137 | 19 26 77449 119
138 | 26 19 77449 119
139 | 20 28 60898 95
140 | 28 20 60898 95
141 | 20 29 9826 45
142 | 29 20 9826 45
143 | 22 26 46160 62
144 | 26 22 46160 62
145 | 22 30 33565 32
146 | 30 22 33565 32
147 | 23 25 35770 35
148 | 25 23 35770 35
149 | 23 27 16858 113
150 | 27 23 16858 113
151 | 25 30 19357 65
152 | 30 25 19357 65
153 | 27 28 19970 68
154 | 28 27 19970 68
155 | 1 6 4
156 | 1 18 10
157 | 2 22 4
158 | 2 24 4
159 | 2 27 9
160 | 3 5 8
161 | 3 17 9
162 | 4 5 9
163 | 4 14 4
164 | 4 18 10
165 | 4 21 9
166 | 5 2 8
167 | 5 16 10
168 | 5 26 11
169 | 6 19 9
170 | 6 22 9
171 | 6 30 11
172 | 7 6 11
173 | 7 13 6
174 | 7 14 7
175 | 8 7 11
176 | 8 9 5
177 | 8 10 4
178 | 8 16 4
179 | 8 22 8
180 | 8 25 7
181 | 8 26 4
182 | 9 1 4
183 | 9 20 7
184 | 9 26 9
185 | 9 30 6
186 | 11 4 8
187 | 11 6 11
188 | 11 9 9
189 | 11 16 4
190 | 11 21 7
191 | 11 22 11
192 | 11 25 6
193 | 11 27 5
194 | 12 7 11
195 | 13 7 7
196 | 13 14 8
197 | 13 16 6
198 | 14 3 6
199 | 14 8 6
200 | 14 9 10
201 | 14 15 6
202 | 14 19 6
203 | 14 22 10
204 | 14 30 8
205 | 15 24 7
206 | 16 2 8
207 | 16 5 7
208 | 16 11 9
209 | 16 13 9
210 | 16 15 8
211 | 17 2 11
212 | 17 5 8
213 | 17 10 10
214 | 18 3 4
215 | 18 11 5
216 | 18 21 5
217 | 19 7 4
218 | 19 28 8
219 | 20 6 4
220 | 20 12 8
221 | 20 13 11
222 | 21 11 10
223 | 21 17 5
224 | 22 15 4
225 | 23 9 8
226 | 23 20 11
227 | 23 22 7
228 | 23 28 7
229 | 24 14 9
230 | 24 29 11
231 | 25 7 6
232 | 25 12 4
233 | 25 26 11
234 | 26 5 5
235 | 26 12 11
236 | 27 16 11
237 | 27 26 9
238 | 27 28 6
239 | 28 3 11
240 | 28 8 9
241 | 29 3 5
242 | 29 5 6
243 | 29 19 10
244 | 29 24 8
245 | 30 1 7
246 | 30 7 11
247 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 50;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 71C30A5B21CC165B00004F17 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71C30A5921CC165B00004F17 /* IOKit.framework */; };
11 | 71C30A5F21CC167A00004F17 /* libconcert.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 71C30A5E21CC167A00004F17 /* libconcert.a */; };
12 | 71C30A6321CC169100004F17 /* libilocplex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 71C30A6021CC169100004F17 /* libilocplex.a */; };
13 | 71C30A6421CC169100004F17 /* libcplex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 71C30A6121CC169100004F17 /* libcplex.a */; };
14 | 71C30A6521CC169100004F17 /* libcplexdistmip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 71C30A6221CC169100004F17 /* libcplexdistmip.a */; };
15 | 71FBBA0D21CC17E700AE6902 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71FBBA0C21CC17E700AE6902 /* CoreFoundation.framework */; };
16 | 71FBBA2821CC19D900AE6902 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 71FBBA2121CC19D900AE6902 /* main.cpp */; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXCopyFilesBuildPhase section */
20 | 71C30A4B21CC164D00004F17 /* CopyFiles */ = {
21 | isa = PBXCopyFilesBuildPhase;
22 | buildActionMask = 2147483647;
23 | dstPath = /usr/share/man/man1/;
24 | dstSubfolderSpec = 0;
25 | files = (
26 | );
27 | runOnlyForDeploymentPostprocessing = 1;
28 | };
29 | /* End PBXCopyFilesBuildPhase section */
30 |
31 | /* Begin PBXFileReference section */
32 | 719A287221CFC29300219DFA /* tiny-data */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "tiny-data"; sourceTree = ""; };
33 | 71C30A4D21CC164D00004F17 /* Column_Generation_Algorithm */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Column_Generation_Algorithm; sourceTree = BUILT_PRODUCTS_DIR; };
34 | 71C30A5821CC165B00004F17 /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
35 | 71C30A5921CC165B00004F17 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
36 | 71C30A5C21CC166A00004F17 /* static_pic */ = {isa = PBXFileReference; lastKnownFileType = folder; name = static_pic; path = "../../../../../Applications/CPLEX_Studio128/concert/lib/x86-64_osx/static_pic"; sourceTree = ""; };
37 | 71C30A5E21CC167A00004F17 /* libconcert.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libconcert.a; path = "../../../../../Applications/CPLEX_Studio128/concert/lib/x86-64_osx/static_pic/libconcert.a"; sourceTree = ""; };
38 | 71C30A6021CC169100004F17 /* libilocplex.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libilocplex.a; path = "../../../../../Applications/CPLEX_Studio128/cplex/lib/x86-64_osx/static_pic/libilocplex.a"; sourceTree = ""; };
39 | 71C30A6121CC169100004F17 /* libcplex.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcplex.a; path = "../../../../../Applications/CPLEX_Studio128/cplex/lib/x86-64_osx/static_pic/libcplex.a"; sourceTree = ""; };
40 | 71C30A6221CC169100004F17 /* libcplexdistmip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcplexdistmip.a; path = "../../../../../Applications/CPLEX_Studio128/cplex/lib/x86-64_osx/static_pic/libcplexdistmip.a"; sourceTree = ""; };
41 | 71FBBA0C21CC17E700AE6902 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
42 | 71FBBA2121CC19D900AE6902 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; };
43 | 71FBBA2221CC19D900AE6902 /* mcf_data.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = mcf_data.h; sourceTree = ""; };
44 | 71FBBA2321CC19D900AE6902 /* spp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spp.h; sourceTree = ""; };
45 | 71FBBA2421CC19D900AE6902 /* data */ = {isa = PBXFileReference; lastKnownFileType = folder; path = data; sourceTree = ""; };
46 | 71FBBA2521CC19D900AE6902 /* pathpool.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = pathpool.h; sourceTree = ""; };
47 | 71FBBA2621CC19D900AE6902 /* binheap.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = binheap.h; sourceTree = ""; };
48 | 71FBBA2721CC19D900AE6902 /* pathflow_model.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = pathflow_model.h; sourceTree = ""; };
49 | /* End PBXFileReference section */
50 |
51 | /* Begin PBXFrameworksBuildPhase section */
52 | 71C30A4A21CC164D00004F17 /* Frameworks */ = {
53 | isa = PBXFrameworksBuildPhase;
54 | buildActionMask = 2147483647;
55 | files = (
56 | 71FBBA0D21CC17E700AE6902 /* CoreFoundation.framework in Frameworks */,
57 | 71C30A6321CC169100004F17 /* libilocplex.a in Frameworks */,
58 | 71C30A6421CC169100004F17 /* libcplex.a in Frameworks */,
59 | 71C30A6521CC169100004F17 /* libcplexdistmip.a in Frameworks */,
60 | 71C30A5F21CC167A00004F17 /* libconcert.a in Frameworks */,
61 | 71C30A5B21CC165B00004F17 /* IOKit.framework in Frameworks */,
62 | );
63 | runOnlyForDeploymentPostprocessing = 0;
64 | };
65 | /* End PBXFrameworksBuildPhase section */
66 |
67 | /* Begin PBXGroup section */
68 | 71C30A4421CC164D00004F17 = {
69 | isa = PBXGroup;
70 | children = (
71 | 71C30A4F21CC164D00004F17 /* Column_Generation_Algorithm */,
72 | 71C30A4E21CC164D00004F17 /* Products */,
73 | 71C30A5721CC165B00004F17 /* Frameworks */,
74 | );
75 | sourceTree = "";
76 | };
77 | 71C30A4E21CC164D00004F17 /* Products */ = {
78 | isa = PBXGroup;
79 | children = (
80 | 71C30A4D21CC164D00004F17 /* Column_Generation_Algorithm */,
81 | );
82 | name = Products;
83 | sourceTree = "";
84 | };
85 | 71C30A4F21CC164D00004F17 /* Column_Generation_Algorithm */ = {
86 | isa = PBXGroup;
87 | children = (
88 | 71FBBA2621CC19D900AE6902 /* binheap.h */,
89 | 71FBBA2421CC19D900AE6902 /* data */,
90 | 71FBBA2221CC19D900AE6902 /* mcf_data.h */,
91 | 71FBBA2121CC19D900AE6902 /* main.cpp */,
92 | 719A287221CFC29300219DFA /* tiny-data */,
93 | 71FBBA2721CC19D900AE6902 /* pathflow_model.h */,
94 | 71FBBA2521CC19D900AE6902 /* pathpool.h */,
95 | 71FBBA2321CC19D900AE6902 /* spp.h */,
96 | );
97 | path = Column_Generation_Algorithm;
98 | sourceTree = "";
99 | };
100 | 71C30A5721CC165B00004F17 /* Frameworks */ = {
101 | isa = PBXGroup;
102 | children = (
103 | 71FBBA0C21CC17E700AE6902 /* CoreFoundation.framework */,
104 | 71C30A6121CC169100004F17 /* libcplex.a */,
105 | 71C30A6221CC169100004F17 /* libcplexdistmip.a */,
106 | 71C30A6021CC169100004F17 /* libilocplex.a */,
107 | 71C30A5E21CC167A00004F17 /* libconcert.a */,
108 | 71C30A5C21CC166A00004F17 /* static_pic */,
109 | 71C30A5821CC165B00004F17 /* CoreAudioKit.framework */,
110 | 71C30A5921CC165B00004F17 /* IOKit.framework */,
111 | );
112 | name = Frameworks;
113 | sourceTree = "";
114 | };
115 | /* End PBXGroup section */
116 |
117 | /* Begin PBXNativeTarget section */
118 | 71C30A4C21CC164D00004F17 /* Column_Generation_Algorithm */ = {
119 | isa = PBXNativeTarget;
120 | buildConfigurationList = 71C30A5421CC164D00004F17 /* Build configuration list for PBXNativeTarget "Column_Generation_Algorithm" */;
121 | buildPhases = (
122 | 71C30A4921CC164D00004F17 /* Sources */,
123 | 71C30A4A21CC164D00004F17 /* Frameworks */,
124 | 71C30A4B21CC164D00004F17 /* CopyFiles */,
125 | );
126 | buildRules = (
127 | );
128 | dependencies = (
129 | );
130 | name = Column_Generation_Algorithm;
131 | productName = Column_Generation_Algorithm;
132 | productReference = 71C30A4D21CC164D00004F17 /* Column_Generation_Algorithm */;
133 | productType = "com.apple.product-type.tool";
134 | };
135 | /* End PBXNativeTarget section */
136 |
137 | /* Begin PBXProject section */
138 | 71C30A4521CC164D00004F17 /* Project object */ = {
139 | isa = PBXProject;
140 | attributes = {
141 | LastUpgradeCheck = 1010;
142 | ORGANIZATIONNAME = "Jingjing Huo";
143 | TargetAttributes = {
144 | 71C30A4C21CC164D00004F17 = {
145 | CreatedOnToolsVersion = 10.1;
146 | };
147 | };
148 | };
149 | buildConfigurationList = 71C30A4821CC164D00004F17 /* Build configuration list for PBXProject "Column_Generation_Algorithm" */;
150 | compatibilityVersion = "Xcode 9.3";
151 | developmentRegion = en;
152 | hasScannedForEncodings = 0;
153 | knownRegions = (
154 | en,
155 | );
156 | mainGroup = 71C30A4421CC164D00004F17;
157 | productRefGroup = 71C30A4E21CC164D00004F17 /* Products */;
158 | projectDirPath = "";
159 | projectRoot = "";
160 | targets = (
161 | 71C30A4C21CC164D00004F17 /* Column_Generation_Algorithm */,
162 | );
163 | };
164 | /* End PBXProject section */
165 |
166 | /* Begin PBXSourcesBuildPhase section */
167 | 71C30A4921CC164D00004F17 /* Sources */ = {
168 | isa = PBXSourcesBuildPhase;
169 | buildActionMask = 2147483647;
170 | files = (
171 | 71FBBA2821CC19D900AE6902 /* main.cpp in Sources */,
172 | );
173 | runOnlyForDeploymentPostprocessing = 0;
174 | };
175 | /* End PBXSourcesBuildPhase section */
176 |
177 | /* Begin XCBuildConfiguration section */
178 | 71C30A5221CC164D00004F17 /* Debug */ = {
179 | isa = XCBuildConfiguration;
180 | buildSettings = {
181 | ALWAYS_SEARCH_USER_PATHS = NO;
182 | CLANG_ANALYZER_NONNULL = YES;
183 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
184 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
185 | CLANG_CXX_LIBRARY = "libc++";
186 | CLANG_ENABLE_MODULES = YES;
187 | CLANG_ENABLE_OBJC_ARC = YES;
188 | CLANG_ENABLE_OBJC_WEAK = YES;
189 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
190 | CLANG_WARN_BOOL_CONVERSION = YES;
191 | CLANG_WARN_COMMA = YES;
192 | CLANG_WARN_CONSTANT_CONVERSION = YES;
193 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
194 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
195 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
196 | CLANG_WARN_EMPTY_BODY = YES;
197 | CLANG_WARN_ENUM_CONVERSION = YES;
198 | CLANG_WARN_INFINITE_RECURSION = YES;
199 | CLANG_WARN_INT_CONVERSION = YES;
200 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
201 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
202 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
203 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
204 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
205 | CLANG_WARN_STRICT_PROTOTYPES = YES;
206 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
207 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
208 | CLANG_WARN_UNREACHABLE_CODE = YES;
209 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
210 | CODE_SIGN_IDENTITY = "-";
211 | COPY_PHASE_STRIP = NO;
212 | DEBUG_INFORMATION_FORMAT = dwarf;
213 | ENABLE_STRICT_OBJC_MSGSEND = YES;
214 | ENABLE_TESTABILITY = YES;
215 | GCC_C_LANGUAGE_STANDARD = gnu11;
216 | GCC_DYNAMIC_NO_PIC = NO;
217 | GCC_NO_COMMON_BLOCKS = YES;
218 | GCC_OPTIMIZATION_LEVEL = 0;
219 | GCC_PREPROCESSOR_DEFINITIONS = (
220 | "DEBUG=1",
221 | "$(inherited)",
222 | );
223 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
224 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
225 | GCC_WARN_UNDECLARED_SELECTOR = YES;
226 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
227 | GCC_WARN_UNUSED_FUNCTION = YES;
228 | GCC_WARN_UNUSED_VARIABLE = YES;
229 | MACOSX_DEPLOYMENT_TARGET = 10.14;
230 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
231 | MTL_FAST_MATH = YES;
232 | ONLY_ACTIVE_ARCH = YES;
233 | SDKROOT = macosx;
234 | };
235 | name = Debug;
236 | };
237 | 71C30A5321CC164D00004F17 /* Release */ = {
238 | isa = XCBuildConfiguration;
239 | buildSettings = {
240 | ALWAYS_SEARCH_USER_PATHS = NO;
241 | CLANG_ANALYZER_NONNULL = YES;
242 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
243 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
244 | CLANG_CXX_LIBRARY = "libc++";
245 | CLANG_ENABLE_MODULES = YES;
246 | CLANG_ENABLE_OBJC_ARC = YES;
247 | CLANG_ENABLE_OBJC_WEAK = YES;
248 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
249 | CLANG_WARN_BOOL_CONVERSION = YES;
250 | CLANG_WARN_COMMA = YES;
251 | CLANG_WARN_CONSTANT_CONVERSION = YES;
252 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
253 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
254 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
255 | CLANG_WARN_EMPTY_BODY = YES;
256 | CLANG_WARN_ENUM_CONVERSION = YES;
257 | CLANG_WARN_INFINITE_RECURSION = YES;
258 | CLANG_WARN_INT_CONVERSION = YES;
259 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
260 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
261 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
262 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
263 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
264 | CLANG_WARN_STRICT_PROTOTYPES = YES;
265 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
266 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
267 | CLANG_WARN_UNREACHABLE_CODE = YES;
268 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
269 | CODE_SIGN_IDENTITY = "-";
270 | COPY_PHASE_STRIP = NO;
271 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
272 | ENABLE_NS_ASSERTIONS = NO;
273 | ENABLE_STRICT_OBJC_MSGSEND = YES;
274 | GCC_C_LANGUAGE_STANDARD = gnu11;
275 | GCC_NO_COMMON_BLOCKS = YES;
276 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
277 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
278 | GCC_WARN_UNDECLARED_SELECTOR = YES;
279 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
280 | GCC_WARN_UNUSED_FUNCTION = YES;
281 | GCC_WARN_UNUSED_VARIABLE = YES;
282 | MACOSX_DEPLOYMENT_TARGET = 10.14;
283 | MTL_ENABLE_DEBUG_INFO = NO;
284 | MTL_FAST_MATH = YES;
285 | SDKROOT = macosx;
286 | };
287 | name = Release;
288 | };
289 | 71C30A5521CC164D00004F17 /* Debug */ = {
290 | isa = XCBuildConfiguration;
291 | buildSettings = {
292 | CODE_SIGN_STYLE = Automatic;
293 | HEADER_SEARCH_PATHS = (
294 | /Applications/CPLEX_Studio128/concert/include,
295 | /Applications/CPLEX_Studio128/cplex/include,
296 | );
297 | LIBRARY_SEARCH_PATHS = (
298 | "\"/Applications/CPLEX_Studio128/cplex/lib/x86-64_osx/static_pic\"",
299 | "\"/Applications/CPLEX_Studio128/concert/lib/x86-64_osx/static_pic\"",
300 | );
301 | OTHER_CFLAGS = "-DIL_STD";
302 | PRODUCT_NAME = "$(TARGET_NAME)";
303 | };
304 | name = Debug;
305 | };
306 | 71C30A5621CC164D00004F17 /* Release */ = {
307 | isa = XCBuildConfiguration;
308 | buildSettings = {
309 | CODE_SIGN_STYLE = Automatic;
310 | HEADER_SEARCH_PATHS = (
311 | /Applications/CPLEX_Studio128/concert/include,
312 | /Applications/CPLEX_Studio128/cplex/include,
313 | );
314 | LIBRARY_SEARCH_PATHS = (
315 | "\"/Applications/CPLEX_Studio128/cplex/lib/x86-64_osx/static_pic\"",
316 | "\"/Applications/CPLEX_Studio128/concert/lib/x86-64_osx/static_pic\"",
317 | );
318 | OTHER_CFLAGS = "-DIL_STD";
319 | PRODUCT_NAME = "$(TARGET_NAME)";
320 | };
321 | name = Release;
322 | };
323 | /* End XCBuildConfiguration section */
324 |
325 | /* Begin XCConfigurationList section */
326 | 71C30A4821CC164D00004F17 /* Build configuration list for PBXProject "Column_Generation_Algorithm" */ = {
327 | isa = XCConfigurationList;
328 | buildConfigurations = (
329 | 71C30A5221CC164D00004F17 /* Debug */,
330 | 71C30A5321CC164D00004F17 /* Release */,
331 | );
332 | defaultConfigurationIsVisible = 0;
333 | defaultConfigurationName = Release;
334 | };
335 | 71C30A5421CC164D00004F17 /* Build configuration list for PBXNativeTarget "Column_Generation_Algorithm" */ = {
336 | isa = XCConfigurationList;
337 | buildConfigurations = (
338 | 71C30A5521CC164D00004F17 /* Debug */,
339 | 71C30A5621CC164D00004F17 /* Release */,
340 | );
341 | defaultConfigurationIsVisible = 0;
342 | defaultConfigurationName = Release;
343 | };
344 | /* End XCConfigurationList section */
345 | };
346 | rootObject = 71C30A4521CC164D00004F17 /* Project object */;
347 | }
348 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/data/grid/grid3.dat:
--------------------------------------------------------------------------------
1 | grid3
2 | 100
3 | 360
4 | 50
5 | 1 2 91 133
6 | 1 11 97 280
7 | 2 1 95 99
8 | 2 3 82 135
9 | 2 12 92 147
10 | 3 2 85 349
11 | 3 4 95 412
12 | 3 13 97 286
13 | 4 3 93 172
14 | 4 5 83 139
15 | 4 14 85 189
16 | 5 4 99 138
17 | 5 6 87 107
18 | 5 15 80 124
19 | 6 5 85 479
20 | 6 7 98 308
21 | 6 16 88 251
22 | 7 6 93 439
23 | 7 8 84 421
24 | 7 17 85 220
25 | 8 7 81 346
26 | 8 9 96 154
27 | 8 18 96 280
28 | 9 8 88 278
29 | 9 10 87 191
30 | 9 19 98 382
31 | 10 9 84 206
32 | 10 20 97 415
33 | 11 1 100 265
34 | 11 12 83 279
35 | 11 21 99 213
36 | 12 2 94 410
37 | 12 11 88 149
38 | 12 13 86 394
39 | 12 22 96 300
40 | 13 3 83 297
41 | 13 12 98 373
42 | 13 14 85 447
43 | 13 23 93 229
44 | 14 4 86 264
45 | 14 13 93 297
46 | 14 15 94 378
47 | 14 24 82 261
48 | 15 5 96 379
49 | 15 14 91 435
50 | 15 16 88 147
51 | 15 25 92 374
52 | 16 6 98 316
53 | 16 15 83 246
54 | 16 17 82 329
55 | 16 26 88 469
56 | 17 7 94 253
57 | 17 16 96 179
58 | 17 18 94 191
59 | 17 27 80 278
60 | 18 8 94 278
61 | 18 17 86 224
62 | 18 19 100 486
63 | 18 28 100 288
64 | 19 9 94 293
65 | 19 18 82 139
66 | 19 20 89 448
67 | 19 29 98 393
68 | 20 10 88 166
69 | 20 19 100 402
70 | 20 30 89 241
71 | 21 11 81 381
72 | 21 22 92 93
73 | 21 31 98 267
74 | 22 12 92 324
75 | 22 21 92 181
76 | 22 23 92 128
77 | 22 32 96 371
78 | 23 13 94 200
79 | 23 22 99 371
80 | 23 24 97 466
81 | 23 33 97 275
82 | 24 14 92 400
83 | 24 23 89 458
84 | 24 25 95 206
85 | 24 34 82 368
86 | 25 15 84 186
87 | 25 24 89 259
88 | 25 26 99 190
89 | 25 35 96 142
90 | 26 16 81 409
91 | 26 25 94 276
92 | 26 27 94 459
93 | 26 36 95 252
94 | 27 17 80 402
95 | 27 26 81 387
96 | 27 28 95 299
97 | 27 37 94 367
98 | 28 18 95 371
99 | 28 27 81 368
100 | 28 29 88 235
101 | 28 38 81 233
102 | 29 19 94 134
103 | 29 28 80 351
104 | 29 30 98 335
105 | 29 39 94 363
106 | 30 20 80 480
107 | 30 29 86 334
108 | 30 40 95 191
109 | 31 21 82 146
110 | 31 32 98 412
111 | 31 41 85 463
112 | 32 22 81 137
113 | 32 31 95 218
114 | 32 33 86 129
115 | 32 42 91 380
116 | 33 23 93 261
117 | 33 32 87 479
118 | 33 34 96 216
119 | 33 43 99 170
120 | 34 24 99 389
121 | 34 33 89 189
122 | 34 35 98 99
123 | 34 44 93 408
124 | 35 25 87 378
125 | 35 34 91 347
126 | 35 36 83 234
127 | 35 45 85 217
128 | 36 26 96 315
129 | 36 35 97 358
130 | 36 37 96 289
131 | 36 46 82 457
132 | 37 27 82 345
133 | 37 36 84 423
134 | 37 38 94 173
135 | 37 47 86 157
136 | 38 28 100 127
137 | 38 37 93 432
138 | 38 39 93 200
139 | 38 48 96 488
140 | 39 29 87 453
141 | 39 38 94 411
142 | 39 40 87 412
143 | 39 49 83 418
144 | 40 30 83 215
145 | 40 39 96 95
146 | 40 50 96 166
147 | 41 31 89 325
148 | 41 42 83 455
149 | 41 51 91 275
150 | 42 32 92 411
151 | 42 41 92 118
152 | 42 43 85 295
153 | 42 52 94 308
154 | 43 33 94 141
155 | 43 42 95 145
156 | 43 44 84 480
157 | 43 53 83 413
158 | 44 34 84 273
159 | 44 43 94 227
160 | 44 45 89 108
161 | 44 54 85 364
162 | 45 35 92 426
163 | 45 44 85 315
164 | 45 46 98 312
165 | 45 55 92 386
166 | 46 36 99 246
167 | 46 45 97 483
168 | 46 47 89 457
169 | 46 56 84 284
170 | 47 37 80 356
171 | 47 46 80 183
172 | 47 48 97 203
173 | 47 57 98 191
174 | 48 38 86 184
175 | 48 47 94 455
176 | 48 49 85 211
177 | 48 58 91 175
178 | 49 39 84 132
179 | 49 48 88 218
180 | 49 50 84 446
181 | 49 59 81 94
182 | 50 40 82 154
183 | 50 49 83 354
184 | 50 60 86 443
185 | 51 41 91 128
186 | 51 52 100 202
187 | 51 61 83 293
188 | 52 42 95 96
189 | 52 51 85 198
190 | 52 53 80 196
191 | 52 62 91 405
192 | 53 43 84 132
193 | 53 52 86 269
194 | 53 54 94 196
195 | 53 63 85 133
196 | 54 44 85 440
197 | 54 53 82 177
198 | 54 55 84 426
199 | 54 64 97 353
200 | 55 45 94 203
201 | 55 54 95 163
202 | 55 56 81 210
203 | 55 65 85 296
204 | 56 46 85 415
205 | 56 55 100 350
206 | 56 57 91 299
207 | 56 66 82 330
208 | 57 47 80 325
209 | 57 56 85 363
210 | 57 58 96 433
211 | 57 67 83 118
212 | 58 48 84 383
213 | 58 57 88 106
214 | 58 59 88 212
215 | 58 68 91 271
216 | 59 49 94 454
217 | 59 58 86 113
218 | 59 60 92 336
219 | 59 69 92 199
220 | 60 50 93 246
221 | 60 59 83 481
222 | 60 70 99 268
223 | 61 51 86 276
224 | 61 62 84 332
225 | 61 71 88 400
226 | 62 52 86 202
227 | 62 61 88 241
228 | 62 63 85 319
229 | 62 72 94 488
230 | 63 53 98 176
231 | 63 62 88 324
232 | 63 64 94 130
233 | 63 73 81 354
234 | 64 54 93 209
235 | 64 63 98 241
236 | 64 65 100 153
237 | 64 74 93 389
238 | 65 55 87 316
239 | 65 64 91 138
240 | 65 66 95 242
241 | 65 75 100 202
242 | 66 56 91 264
243 | 66 65 84 226
244 | 66 67 97 100
245 | 66 76 85 322
246 | 67 57 89 342
247 | 67 66 93 397
248 | 67 68 95 234
249 | 67 77 84 366
250 | 68 58 82 185
251 | 68 67 97 145
252 | 68 69 89 435
253 | 68 78 88 284
254 | 69 59 91 142
255 | 69 68 100 103
256 | 69 70 86 136
257 | 69 79 98 317
258 | 70 60 96 231
259 | 70 69 88 307
260 | 70 80 92 429
261 | 71 61 98 248
262 | 71 72 94 346
263 | 71 81 89 95
264 | 72 62 93 488
265 | 72 71 82 378
266 | 72 73 85 390
267 | 72 82 82 369
268 | 73 63 98 168
269 | 73 72 85 445
270 | 73 74 97 382
271 | 73 83 96 309
272 | 74 64 85 338
273 | 74 73 84 472
274 | 74 75 85 409
275 | 74 84 84 476
276 | 75 65 87 319
277 | 75 74 81 191
278 | 75 76 99 486
279 | 75 85 93 396
280 | 76 66 86 381
281 | 76 75 94 226
282 | 76 77 82 178
283 | 76 86 85 152
284 | 77 67 88 259
285 | 77 76 81 463
286 | 77 78 81 459
287 | 77 87 82 486
288 | 78 68 96 463
289 | 78 77 98 420
290 | 78 79 82 459
291 | 78 88 91 135
292 | 79 69 92 136
293 | 79 78 96 222
294 | 79 80 94 373
295 | 79 89 86 99
296 | 80 70 93 219
297 | 80 79 85 194
298 | 80 90 88 375
299 | 81 71 88 369
300 | 81 82 88 96
301 | 81 91 88 95
302 | 82 72 94 431
303 | 82 81 98 413
304 | 82 83 87 472
305 | 82 92 91 392
306 | 83 73 84 438
307 | 83 82 81 143
308 | 83 84 94 251
309 | 83 93 94 198
310 | 84 74 97 376
311 | 84 83 88 273
312 | 84 85 81 177
313 | 84 94 100 271
314 | 85 75 93 333
315 | 85 84 83 377
316 | 85 86 83 199
317 | 85 95 93 113
318 | 86 76 96 446
319 | 86 85 97 362
320 | 86 87 87 118
321 | 86 96 99 346
322 | 87 77 82 252
323 | 87 86 81 468
324 | 87 88 84 93
325 | 87 97 94 216
326 | 88 78 80 281
327 | 88 87 87 309
328 | 88 89 82 149
329 | 88 98 81 197
330 | 89 79 88 175
331 | 89 88 93 469
332 | 89 90 98 465
333 | 89 99 91 352
334 | 90 80 97 185
335 | 90 89 89 355
336 | 90 100 92 395
337 | 91 81 93 418
338 | 91 92 95 307
339 | 92 82 88 237
340 | 92 91 93 393
341 | 92 93 89 264
342 | 93 83 86 331
343 | 93 92 91 368
344 | 93 94 96 394
345 | 94 84 96 316
346 | 94 93 80 253
347 | 94 95 81 317
348 | 95 85 98 424
349 | 95 94 100 165
350 | 95 96 100 319
351 | 96 86 97 207
352 | 96 95 80 193
353 | 96 97 88 169
354 | 97 87 82 159
355 | 97 96 80 185
356 | 97 98 89 241
357 | 98 88 93 270
358 | 98 97 85 283
359 | 98 99 81 234
360 | 99 89 99 192
361 | 99 98 100 423
362 | 99 100 96 189
363 | 100 90 80 232
364 | 100 99 97 286
365 | 56 19 95
366 | 1 22 69
367 | 10 19 76
368 | 70 85 22
369 | 55 35 44
370 | 37 45 72
371 | 85 77 59
372 | 77 24 19
373 | 60 47 24
374 | 35 34 93
375 | 16 67 26
376 | 28 70 100
377 | 16 65 38
378 | 29 55 65
379 | 13 26 81
380 | 43 26 78
381 | 22 36 33
382 | 61 50 98
383 | 7 94 87
384 | 3 83 96
385 | 29 82 80
386 | 13 77 62
387 | 71 85 58
388 | 68 28 37
389 | 70 35 49
390 | 78 100 75
391 | 52 24 17
392 | 73 9 24
393 | 19 79 22
394 | 78 65 33
395 | 18 32 45
396 | 43 89 70
397 | 60 5 71
398 | 35 59 64
399 | 45 1 13
400 | 87 58 31
401 | 76 74 77
402 | 12 2 100
403 | 87 30 81
404 | 11 57 15
405 | 42 4 85
406 | 39 88 86
407 | 44 61 15
408 | 30 73 35
409 | 41 25 47
410 | 14 26 93
411 | 80 91 27
412 | 89 30 38
413 | 77 96 67
414 | 58 4 64
415 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/data/grid/grid4.dat:
--------------------------------------------------------------------------------
1 | grid4
2 | 100
3 | 360
4 | 100
5 | 1 2 91 193
6 | 1 11 97 340
7 | 2 1 95 159
8 | 2 3 82 195
9 | 2 12 92 207
10 | 3 2 85 409
11 | 3 4 95 472
12 | 3 13 97 346
13 | 4 3 93 232
14 | 4 5 83 199
15 | 4 14 85 249
16 | 5 4 99 198
17 | 5 6 87 167
18 | 5 15 80 184
19 | 6 5 85 539
20 | 6 7 98 368
21 | 6 16 88 311
22 | 7 6 93 499
23 | 7 8 84 481
24 | 7 17 85 280
25 | 8 7 81 406
26 | 8 9 96 214
27 | 8 18 96 340
28 | 9 8 88 338
29 | 9 10 87 251
30 | 9 19 98 442
31 | 10 9 84 266
32 | 10 20 97 475
33 | 11 1 100 325
34 | 11 12 83 339
35 | 11 21 99 273
36 | 12 2 94 470
37 | 12 11 88 209
38 | 12 13 86 454
39 | 12 22 96 360
40 | 13 3 83 357
41 | 13 12 98 433
42 | 13 14 85 507
43 | 13 23 93 289
44 | 14 4 86 324
45 | 14 13 93 357
46 | 14 15 94 438
47 | 14 24 82 321
48 | 15 5 96 439
49 | 15 14 91 495
50 | 15 16 88 207
51 | 15 25 92 434
52 | 16 6 98 376
53 | 16 15 83 306
54 | 16 17 82 389
55 | 16 26 88 529
56 | 17 7 94 313
57 | 17 16 96 239
58 | 17 18 94 251
59 | 17 27 80 338
60 | 18 8 94 338
61 | 18 17 86 284
62 | 18 19 100 546
63 | 18 28 100 348
64 | 19 9 94 353
65 | 19 18 82 199
66 | 19 20 89 508
67 | 19 29 98 453
68 | 20 10 88 226
69 | 20 19 100 462
70 | 20 30 89 301
71 | 21 11 81 441
72 | 21 22 92 153
73 | 21 31 98 327
74 | 22 12 92 384
75 | 22 21 92 241
76 | 22 23 92 188
77 | 22 32 96 431
78 | 23 13 94 260
79 | 23 22 99 431
80 | 23 24 97 526
81 | 23 33 97 335
82 | 24 14 92 460
83 | 24 23 89 518
84 | 24 25 95 266
85 | 24 34 82 428
86 | 25 15 84 246
87 | 25 24 89 319
88 | 25 26 99 250
89 | 25 35 96 202
90 | 26 16 81 469
91 | 26 25 94 336
92 | 26 27 94 519
93 | 26 36 95 312
94 | 27 17 80 462
95 | 27 26 81 447
96 | 27 28 95 359
97 | 27 37 94 427
98 | 28 18 95 431
99 | 28 27 81 428
100 | 28 29 88 295
101 | 28 38 81 293
102 | 29 19 94 194
103 | 29 28 80 411
104 | 29 30 98 395
105 | 29 39 94 423
106 | 30 20 80 540
107 | 30 29 86 394
108 | 30 40 95 251
109 | 31 21 82 206
110 | 31 32 98 472
111 | 31 41 85 523
112 | 32 22 81 197
113 | 32 31 95 278
114 | 32 33 86 189
115 | 32 42 91 440
116 | 33 23 93 321
117 | 33 32 87 539
118 | 33 34 96 276
119 | 33 43 99 230
120 | 34 24 99 449
121 | 34 33 89 249
122 | 34 35 98 159
123 | 34 44 93 468
124 | 35 25 87 438
125 | 35 34 91 407
126 | 35 36 83 294
127 | 35 45 85 277
128 | 36 26 96 375
129 | 36 35 97 418
130 | 36 37 96 349
131 | 36 46 82 517
132 | 37 27 82 405
133 | 37 36 84 483
134 | 37 38 94 233
135 | 37 47 86 217
136 | 38 28 100 187
137 | 38 37 93 492
138 | 38 39 93 260
139 | 38 48 96 548
140 | 39 29 87 513
141 | 39 38 94 471
142 | 39 40 87 472
143 | 39 49 83 478
144 | 40 30 83 275
145 | 40 39 96 155
146 | 40 50 96 226
147 | 41 31 89 385
148 | 41 42 83 515
149 | 41 51 91 335
150 | 42 32 92 471
151 | 42 41 92 178
152 | 42 43 85 355
153 | 42 52 94 368
154 | 43 33 94 201
155 | 43 42 95 205
156 | 43 44 84 540
157 | 43 53 83 473
158 | 44 34 84 333
159 | 44 43 94 287
160 | 44 45 89 168
161 | 44 54 85 424
162 | 45 35 92 486
163 | 45 44 85 375
164 | 45 46 98 372
165 | 45 55 92 446
166 | 46 36 99 306
167 | 46 45 97 543
168 | 46 47 89 517
169 | 46 56 84 344
170 | 47 37 80 416
171 | 47 46 80 243
172 | 47 48 97 263
173 | 47 57 98 251
174 | 48 38 86 244
175 | 48 47 94 515
176 | 48 49 85 271
177 | 48 58 91 235
178 | 49 39 84 192
179 | 49 48 88 278
180 | 49 50 84 506
181 | 49 59 81 154
182 | 50 40 82 214
183 | 50 49 83 414
184 | 50 60 86 503
185 | 51 41 91 188
186 | 51 52 100 262
187 | 51 61 83 353
188 | 52 42 95 156
189 | 52 51 85 258
190 | 52 53 80 256
191 | 52 62 91 465
192 | 53 43 84 192
193 | 53 52 86 329
194 | 53 54 94 256
195 | 53 63 85 193
196 | 54 44 85 500
197 | 54 53 82 237
198 | 54 55 84 486
199 | 54 64 97 413
200 | 55 45 94 263
201 | 55 54 95 223
202 | 55 56 81 270
203 | 55 65 85 356
204 | 56 46 85 475
205 | 56 55 100 410
206 | 56 57 91 359
207 | 56 66 82 390
208 | 57 47 80 385
209 | 57 56 85 423
210 | 57 58 96 493
211 | 57 67 83 178
212 | 58 48 84 443
213 | 58 57 88 166
214 | 58 59 88 272
215 | 58 68 91 331
216 | 59 49 94 514
217 | 59 58 86 173
218 | 59 60 92 396
219 | 59 69 92 259
220 | 60 50 93 306
221 | 60 59 83 541
222 | 60 70 99 328
223 | 61 51 86 336
224 | 61 62 84 392
225 | 61 71 88 460
226 | 62 52 86 262
227 | 62 61 88 301
228 | 62 63 85 379
229 | 62 72 94 548
230 | 63 53 98 236
231 | 63 62 88 384
232 | 63 64 94 190
233 | 63 73 81 414
234 | 64 54 93 269
235 | 64 63 98 301
236 | 64 65 100 213
237 | 64 74 93 449
238 | 65 55 87 376
239 | 65 64 91 198
240 | 65 66 95 302
241 | 65 75 100 262
242 | 66 56 91 324
243 | 66 65 84 286
244 | 66 67 97 160
245 | 66 76 85 382
246 | 67 57 89 402
247 | 67 66 93 457
248 | 67 68 95 294
249 | 67 77 84 426
250 | 68 58 82 245
251 | 68 67 97 205
252 | 68 69 89 495
253 | 68 78 88 344
254 | 69 59 91 202
255 | 69 68 100 163
256 | 69 70 86 196
257 | 69 79 98 377
258 | 70 60 96 291
259 | 70 69 88 367
260 | 70 80 92 489
261 | 71 61 98 308
262 | 71 72 94 406
263 | 71 81 89 155
264 | 72 62 93 548
265 | 72 71 82 438
266 | 72 73 85 450
267 | 72 82 82 429
268 | 73 63 98 228
269 | 73 72 85 505
270 | 73 74 97 442
271 | 73 83 96 369
272 | 74 64 85 398
273 | 74 73 84 532
274 | 74 75 85 469
275 | 74 84 84 536
276 | 75 65 87 379
277 | 75 74 81 251
278 | 75 76 99 546
279 | 75 85 93 456
280 | 76 66 86 441
281 | 76 75 94 286
282 | 76 77 82 238
283 | 76 86 85 212
284 | 77 67 88 319
285 | 77 76 81 523
286 | 77 78 81 519
287 | 77 87 82 546
288 | 78 68 96 523
289 | 78 77 98 480
290 | 78 79 82 519
291 | 78 88 91 195
292 | 79 69 92 196
293 | 79 78 96 282
294 | 79 80 94 433
295 | 79 89 86 159
296 | 80 70 93 279
297 | 80 79 85 254
298 | 80 90 88 435
299 | 81 71 88 429
300 | 81 82 88 156
301 | 81 91 88 155
302 | 82 72 94 491
303 | 82 81 98 473
304 | 82 83 87 532
305 | 82 92 91 452
306 | 83 73 84 498
307 | 83 82 81 203
308 | 83 84 94 311
309 | 83 93 94 258
310 | 84 74 97 436
311 | 84 83 88 333
312 | 84 85 81 237
313 | 84 94 100 331
314 | 85 75 93 393
315 | 85 84 83 437
316 | 85 86 83 259
317 | 85 95 93 173
318 | 86 76 96 506
319 | 86 85 97 422
320 | 86 87 87 178
321 | 86 96 99 406
322 | 87 77 82 312
323 | 87 86 81 528
324 | 87 88 84 153
325 | 87 97 94 276
326 | 88 78 80 341
327 | 88 87 87 369
328 | 88 89 82 209
329 | 88 98 81 257
330 | 89 79 88 235
331 | 89 88 93 529
332 | 89 90 98 525
333 | 89 99 91 412
334 | 90 80 97 245
335 | 90 89 89 415
336 | 90 100 92 455
337 | 91 81 93 478
338 | 91 92 95 367
339 | 92 82 88 297
340 | 92 91 93 453
341 | 92 93 89 324
342 | 93 83 86 391
343 | 93 92 91 428
344 | 93 94 96 454
345 | 94 84 96 376
346 | 94 93 80 313
347 | 94 95 81 377
348 | 95 85 98 484
349 | 95 94 100 225
350 | 95 96 100 379
351 | 96 86 97 267
352 | 96 95 80 253
353 | 96 97 88 229
354 | 97 87 82 219
355 | 97 96 80 245
356 | 97 98 89 301
357 | 98 88 93 330
358 | 98 97 85 343
359 | 98 99 81 294
360 | 99 89 99 252
361 | 99 98 100 483
362 | 99 100 96 249
363 | 100 90 80 292
364 | 100 99 97 346
365 | 56 19 95
366 | 1 22 69
367 | 10 19 76
368 | 70 85 22
369 | 55 35 44
370 | 37 45 72
371 | 85 77 59
372 | 77 24 19
373 | 60 47 24
374 | 35 34 93
375 | 16 67 26
376 | 28 70 100
377 | 16 65 38
378 | 29 55 65
379 | 13 26 81
380 | 43 26 78
381 | 22 36 33
382 | 61 50 98
383 | 7 94 87
384 | 3 83 96
385 | 29 82 80
386 | 13 77 62
387 | 71 85 58
388 | 68 28 37
389 | 70 35 49
390 | 78 100 75
391 | 52 24 17
392 | 73 9 24
393 | 19 79 22
394 | 78 65 33
395 | 18 32 45
396 | 43 89 70
397 | 60 5 71
398 | 35 59 64
399 | 45 1 13
400 | 87 58 31
401 | 76 74 77
402 | 12 2 100
403 | 87 30 81
404 | 11 57 15
405 | 42 4 85
406 | 39 88 86
407 | 44 61 15
408 | 30 73 35
409 | 41 25 47
410 | 14 26 93
411 | 80 91 27
412 | 89 30 38
413 | 77 96 67
414 | 58 4 64
415 | 25 62 13
416 | 31 94 97
417 | 76 37 70
418 | 93 87 58
419 | 73 99 58
420 | 6 53 80
421 | 56 53 76
422 | 67 60 13
423 | 16 57 27
424 | 6 38 71
425 | 43 67 29
426 | 74 47 34
427 | 1 95 20
428 | 72 16 67
429 | 94 90 55
430 | 3 30 59
431 | 13 39 52
432 | 51 33 47
433 | 39 25 18
434 | 65 20 62
435 | 92 60 22
436 | 69 42 23
437 | 81 36 46
438 | 22 63 38
439 | 86 18 30
440 | 74 76 90
441 | 69 93 86
442 | 94 61 94
443 | 37 99 57
444 | 32 19 75
445 | 84 97 86
446 | 32 90 77
447 | 19 2 32
448 | 23 31 67
449 | 60 30 13
450 | 52 81 70
451 | 4 3 32
452 | 17 66 88
453 | 71 3 53
454 | 25 60 78
455 | 92 47 30
456 | 93 63 81
457 | 9 65 27
458 | 75 79 100
459 | 88 55 39
460 | 3 86 51
461 | 72 88 21
462 | 94 91 15
463 | 58 30 21
464 | 97 77 80
465 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/data/planar/planar50.dat:
--------------------------------------------------------------------------------
1 | planar50
2 | 50
3 | 250
4 | 267
5 | 1 7 44489 61
6 | 7 1 44489 61
7 | 1 17 13169 106
8 | 17 1 13169 106
9 | 1 25 3816 125
10 | 25 1 3816 125
11 | 1 29 6165 78
12 | 29 1 6165 78
13 | 1 37 18965 80
14 | 37 1 18965 80
15 | 1 46 27490 43
16 | 46 1 27490 43
17 | 2 16 29156 154
18 | 16 2 29156 154
19 | 2 24 42929 127
20 | 24 2 42929 127
21 | 2 37 4810 139
22 | 37 2 4810 139
23 | 2 41 48800 153
24 | 41 2 48800 153
25 | 2 46 11545 44
26 | 46 2 11545 44
27 | 2 47 8521 98
28 | 47 2 8521 98
29 | 3 24 81940 144
30 | 24 3 81940 144
31 | 3 31 44644 125
32 | 31 3 44644 125
33 | 3 32 27850 75
34 | 32 3 27850 75
35 | 3 41 24049 70
36 | 41 3 24049 70
37 | 4 5 7813 147
38 | 5 4 7813 147
39 | 4 38 4194 62
40 | 38 4 4194 62
41 | 5 35 6354 37
42 | 35 5 6354 37
43 | 5 38 17929 116
44 | 38 5 17929 116
45 | 5 40 42824 39
46 | 40 5 42824 39
47 | 6 32 10485 142
48 | 32 6 10485 142
49 | 6 33 7229 49
50 | 33 6 7229 49
51 | 6 41 3562 159
52 | 41 6 3562 159
53 | 6 49 9332 50
54 | 49 6 9332 50
55 | 7 8 27586 78
56 | 8 7 27586 78
57 | 7 17 34516 107
58 | 17 7 34516 107
59 | 7 18 17082 59
60 | 18 7 17082 59
61 | 7 37 76212 114
62 | 37 7 76212 114
63 | 7 38 13793 147
64 | 38 7 13793 147
65 | 8 9 10553 122
66 | 9 8 10553 122
67 | 8 18 23656 154
68 | 18 8 23656 154
69 | 8 37 14506 87
70 | 37 8 14506 87
71 | 8 42 17986 126
72 | 42 8 17986 126
73 | 8 47 27365 42
74 | 47 8 27365 42
75 | 9 10 4149 70
76 | 10 9 4149 70
77 | 9 14 11057 136
78 | 14 9 11057 136
79 | 9 18 19045 119
80 | 18 9 19045 119
81 | 9 42 1445 81
82 | 42 9 1445 81
83 | 10 12 34385 111
84 | 12 10 34385 111
85 | 10 14 8420 43
86 | 14 10 8420 43
87 | 10 20 27121 132
88 | 20 10 27121 132
89 | 10 33 18989 158
90 | 33 10 18989 158
91 | 10 42 3200 84
92 | 42 10 3200 84
93 | 11 12 16505 103
94 | 12 11 16505 103
95 | 11 20 4597 127
96 | 20 11 4597 127
97 | 11 26 19490 63
98 | 26 11 19490 63
99 | 11 39 3385 100
100 | 39 11 3385 100
101 | 11 44 4409 121
102 | 44 11 4409 121
103 | 12 20 19508 148
104 | 20 12 19508 148
105 | 12 26 35725 47
106 | 26 12 35725 47
107 | 12 33 23796 70
108 | 33 12 23796 70
109 | 12 45 21060 56
110 | 45 12 21060 56
111 | 12 49 4381 159
112 | 49 12 4381 159
113 | 13 20 2105 40
114 | 20 13 2105 40
115 | 13 22 7578 98
116 | 22 13 7578 98
117 | 13 28 1537 62
118 | 28 13 1537 62
119 | 13 39 637 145
120 | 39 13 637 145
121 | 13 44 3229 152
122 | 44 13 3229 152
123 | 14 15 22226 72
124 | 15 14 22226 72
125 | 14 18 3074 118
126 | 18 14 3074 118
127 | 14 20 32009 137
128 | 20 14 32009 137
129 | 14 35 23850 151
130 | 35 14 23850 151
131 | 15 20 17341 57
132 | 20 15 17341 57
133 | 15 22 1576 107
134 | 22 15 1576 107
135 | 15 28 13025 103
136 | 28 15 13025 103
137 | 15 35 5096 112
138 | 35 15 5096 112
139 | 16 24 17125 43
140 | 24 16 17125 43
141 | 16 34 3281 153
142 | 34 16 3281 153
143 | 16 46 14285 83
144 | 46 16 14285 83
145 | 16 50 22810 148
146 | 50 16 22810 148
147 | 17 25 12365 133
148 | 25 17 12365 133
149 | 17 29 2066 93
150 | 29 17 2066 93
151 | 18 35 20564 151
152 | 35 18 20564 151
153 | 18 38 22385 63
154 | 38 18 22385 63
155 | 19 24 30465 110
156 | 24 19 30465 110
157 | 19 30 6597 144
158 | 30 19 6597 144
159 | 19 43 2993 98
160 | 43 19 2993 98
161 | 19 48 6530 72
162 | 48 19 6530 72
163 | 20 28 314 99
164 | 28 20 314 99
165 | 20 39 4226 130
166 | 39 20 4226 130
167 | 21 23 12322 129
168 | 23 21 12322 129
169 | 21 50 29988 63
170 | 50 21 29988 63
171 | 22 28 8653 126
172 | 28 22 8653 126
173 | 22 35 11600 72
174 | 35 22 11600 72
175 | 22 40 11050 136
176 | 40 22 11050 136
177 | 22 44 15205 45
178 | 44 22 15205 45
179 | 23 34 39005 48
180 | 34 23 39005 48
181 | 23 50 5098 158
182 | 50 23 5098 158
183 | 24 27 49733 67
184 | 27 24 49733 67
185 | 24 34 18698 123
186 | 34 24 18698 123
187 | 24 43 43136 149
188 | 43 24 43136 149
189 | 24 48 31025 134
190 | 48 24 31025 134
191 | 25 29 4329 69
192 | 29 25 4329 69
193 | 25 46 28594 39
194 | 46 25 28594 39
195 | 26 36 22250 141
196 | 36 26 22250 141
197 | 26 40 78728 108
198 | 40 26 78728 108
199 | 26 44 25681 86
200 | 44 26 25681 86
201 | 26 45 35545 96
202 | 45 26 35545 96
203 | 27 30 1217 93
204 | 30 27 1217 93
205 | 27 43 405 97
206 | 43 27 405 97
207 | 30 43 1640 48
208 | 43 30 1640 48
209 | 30 48 22445 140
210 | 48 30 22445 140
211 | 31 32 26594 39
212 | 32 31 26594 39
213 | 31 45 38666 42
214 | 45 31 38666 42
215 | 32 41 24949 106
216 | 41 32 24949 106
217 | 32 45 13520 53
218 | 45 32 13520 53
219 | 32 49 18185 48
220 | 49 32 18185 48
221 | 33 41 5725 110
222 | 41 33 5725 110
223 | 33 42 13693 48
224 | 42 33 13693 48
225 | 33 47 18932 158
226 | 47 33 18932 158
227 | 33 49 8737 113
228 | 49 33 8737 113
229 | 34 48 49993 156
230 | 48 34 49993 156
231 | 34 50 15977 90
232 | 50 34 15977 90
233 | 35 38 24733 140
234 | 38 35 24733 140
235 | 35 40 30050 150
236 | 40 35 30050 150
237 | 36 45 27785 144
238 | 45 36 27785 144
239 | 37 46 12785 68
240 | 46 37 12785 68
241 | 37 47 12937 108
242 | 47 37 12937 108
243 | 39 44 1010 93
244 | 44 39 1010 93
245 | 40 44 17525 152
246 | 44 40 17525 152
247 | 41 47 20353 86
248 | 47 41 20353 86
249 | 42 47 15773 49
250 | 47 42 15773 49
251 | 45 49 26377 122
252 | 49 45 26377 122
253 | 46 50 42125 156
254 | 50 46 42125 156
255 | 1 3 8
256 | 1 19 5
257 | 1 21 4
258 | 1 28 7
259 | 1 35 9
260 | 1 36 8
261 | 1 38 7
262 | 1 40 7
263 | 1 43 9
264 | 1 45 8
265 | 1 46 7
266 | 2 4 7
267 | 2 6 7
268 | 2 7 4
269 | 2 19 6
270 | 2 25 8
271 | 2 29 5
272 | 3 2 9
273 | 3 31 7
274 | 3 37 5
275 | 3 43 8
276 | 3 47 7
277 | 4 3 6
278 | 4 19 6
279 | 4 27 9
280 | 4 32 7
281 | 4 34 9
282 | 4 36 5
283 | 4 49 7
284 | 5 11 4
285 | 5 14 4
286 | 5 21 7
287 | 5 26 7
288 | 5 28 7
289 | 5 46 9
290 | 6 17 7
291 | 6 42 6
292 | 7 1 6
293 | 7 13 9
294 | 7 16 9
295 | 7 25 9
296 | 7 39 5
297 | 7 40 4
298 | 7 48 8
299 | 8 44 7
300 | 8 46 5
301 | 9 3 5
302 | 9 25 4
303 | 9 32 9
304 | 10 6 9
305 | 10 9 6
306 | 10 14 5
307 | 10 16 7
308 | 10 37 6
309 | 10 45 5
310 | 10 49 7
311 | 11 22 8
312 | 11 40 6
313 | 11 41 6
314 | 12 2 4
315 | 12 8 5
316 | 12 14 8
317 | 12 19 5
318 | 12 23 4
319 | 12 26 4
320 | 12 28 7
321 | 12 47 6
322 | 13 7 7
323 | 13 41 9
324 | 14 18 6
325 | 14 20 6
326 | 14 21 5
327 | 14 30 6
328 | 14 47 5
329 | 15 3 6
330 | 15 4 6
331 | 15 11 9
332 | 15 19 6
333 | 15 22 7
334 | 15 28 8
335 | 15 30 9
336 | 15 36 7
337 | 15 41 5
338 | 16 9 6
339 | 16 11 4
340 | 16 12 6
341 | 16 19 6
342 | 16 30 6
343 | 16 33 9
344 | 16 50 8
345 | 17 6 4
346 | 17 7 5
347 | 17 16 6
348 | 18 33 5
349 | 18 39 6
350 | 19 2 9
351 | 19 14 7
352 | 19 16 8
353 | 19 18 4
354 | 19 26 5
355 | 19 29 4
356 | 19 31 7
357 | 19 34 8
358 | 19 37 5
359 | 20 17 8
360 | 20 33 9
361 | 20 40 5
362 | 20 48 8
363 | 21 3 7
364 | 21 19 9
365 | 22 14 7
366 | 22 29 8
367 | 22 31 6
368 | 22 32 8
369 | 22 37 9
370 | 23 4 9
371 | 23 7 9
372 | 23 11 7
373 | 23 13 4
374 | 23 27 5
375 | 23 28 6
376 | 23 42 9
377 | 23 43 9
378 | 23 48 4
379 | 23 50 9
380 | 24 7 6
381 | 24 13 4
382 | 24 31 9
383 | 24 36 7
384 | 24 37 9
385 | 24 38 9
386 | 24 39 4
387 | 25 1 6
388 | 25 5 8
389 | 25 19 6
390 | 25 36 6
391 | 25 37 6
392 | 25 39 7
393 | 25 45 6
394 | 26 16 8
395 | 26 21 6
396 | 26 31 9
397 | 27 2 7
398 | 27 17 9
399 | 27 42 9
400 | 28 2 7
401 | 28 20 8
402 | 28 23 8
403 | 28 33 5
404 | 28 37 6
405 | 28 49 9
406 | 29 22 9
407 | 29 28 8
408 | 29 31 4
409 | 29 49 8
410 | 30 2 8
411 | 30 9 4
412 | 30 14 8
413 | 30 33 4
414 | 30 35 8
415 | 30 37 9
416 | 31 29 5
417 | 31 34 7
418 | 31 43 5
419 | 31 44 7
420 | 31 50 8
421 | 32 6 5
422 | 32 13 8
423 | 32 14 5
424 | 32 18 8
425 | 32 23 7
426 | 32 26 6
427 | 32 43 6
428 | 33 6 5
429 | 33 27 9
430 | 33 28 6
431 | 33 47 8
432 | 34 23 7
433 | 34 25 5
434 | 34 28 5
435 | 34 30 8
436 | 35 1 7
437 | 35 9 4
438 | 35 11 6
439 | 35 12 7
440 | 35 13 7
441 | 35 23 6
442 | 35 25 9
443 | 35 40 6
444 | 35 46 8
445 | 35 48 8
446 | 36 29 7
447 | 36 35 9
448 | 36 38 5
449 | 36 39 4
450 | 36 46 4
451 | 37 3 6
452 | 37 7 6
453 | 37 10 9
454 | 37 15 9
455 | 37 23 9
456 | 37 24 4
457 | 37 36 6
458 | 37 49 8
459 | 38 5 7
460 | 38 8 9
461 | 38 26 9
462 | 39 10 4
463 | 39 26 8
464 | 39 34 7
465 | 39 36 4
466 | 40 4 6
467 | 40 13 6
468 | 40 31 6
469 | 41 1 4
470 | 41 23 8
471 | 41 33 4
472 | 41 43 9
473 | 42 32 5
474 | 42 37 8
475 | 42 41 7
476 | 42 48 8
477 | 43 5 4
478 | 43 6 4
479 | 43 19 4
480 | 43 20 8
481 | 43 35 4
482 | 43 48 9
483 | 43 49 5
484 | 44 10 4
485 | 44 17 7
486 | 44 19 5
487 | 44 20 4
488 | 45 21 8
489 | 45 28 4
490 | 45 42 4
491 | 45 43 4
492 | 46 2 7
493 | 46 6 8
494 | 46 19 6
495 | 46 21 7
496 | 46 38 6
497 | 46 42 9
498 | 46 44 7
499 | 46 47 4
500 | 47 3 8
501 | 47 32 9
502 | 47 34 7
503 | 48 4 4
504 | 48 9 8
505 | 48 22 9
506 | 48 26 4
507 | 48 27 4
508 | 48 50 8
509 | 49 5 5
510 | 49 16 9
511 | 49 17 8
512 | 49 19 9
513 | 49 38 6
514 | 49 45 6
515 | 49 47 4
516 | 49 48 5
517 | 50 13 4
518 | 50 22 4
519 | 50 25 5
520 | 50 36 7
521 | 50 40 4
522 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/solution.lp:
--------------------------------------------------------------------------------
1 | \ENCODING=ISO-8859-1
2 | \Problem name: IloCplex
3 |
4 | Minimize
5 | obj: 1000000 p_1 + 59447 p_2 + 1000000 p_3 + 84259 p_4 + 1000000 p_5
6 | + 39115 p_6 + 1000000 p_7 + 102770 p_8 + 1000000 p_9 + 100661 p_10
7 | + 1000000 p_11 + 32198 p_12 + 1000000 p_13 + 6253 p_14 + 1000000 p_15
8 | + 33730 p_16 + 1000000 p_17 + 82054 p_18 + 1000000 p_19 + 8440 p_20
9 | + 1000000 p_21 + 111410 p_22 + 1000000 p_23 + 77049 p_24 + 1000000 p_25
10 | + 68132 p_26 + 1000000 p_27 + 66512 p_28 + 1000000 p_29 + 79873 p_30
11 | + 1000000 p_31 + 48120 p_32 + 1000000 p_33 + 14555 p_34 + 1000000 p_35
12 | + 9490 p_36 + 1000000 p_37 + 7754 p_38 + 1000000 p_39 + 58956 p_40
13 | + 1000000 p_41 + 15740 p_42 + 1000000 p_43 + 34642 p_44 + 1000000 p_45
14 | + 13899 p_46 + 1000000 p_47 + 58356 p_48 + 1000000 p_49 + 54370 p_50
15 | + 1000000 p_51 + 29870 p_52 + 1000000 p_53 + 59976 p_54 + 1000000 p_55
16 | + 68847 p_56 + 1000000 p_57 + 1780 p_58 + 1000000 p_59 + 75626 p_60
17 | + 1000000 p_61 + 55447 p_62 + 1000000 p_63 + 72425 p_64 + 1000000 p_65
18 | + 55613 p_66 + 1000000 p_67 + 17997 p_68 + 1000000 p_69 + 92003 p_70
19 | + 1000000 p_71 + 106219 p_72 + 1000000 p_73 + 103551 p_74 + 1000000 p_75
20 | + 79051 p_76 + 1000000 p_77 + 66723 p_78 + 1000000 p_79 + 107069 p_80
21 | + 1000000 p_81 + 7754 p_82 + 1000000 p_83 + 57176 p_84 + 1000000 p_85
22 | + 72316 p_86 + 1000000 p_87 + 63988 p_88 + 1000000 p_89 + 43216 p_90
23 | + 1000000 p_91 + 58866 p_92 + 1000000 p_93 + 74294 p_94 + 1000000 p_95
24 | + 61811 p_96 + 1000000 p_97 + 30058 p_98 + 1000000 p_99 + 63623 p_100
25 | + 1000000 p_101 + 87875 p_102 + 1000000 p_103 + 9169 p_104
26 | + 1000000 p_105 + 68132 p_106 + 1000000 p_107 + 92003 p_108
27 | + 1000000 p_109 + 72316 p_110 + 1000000 p_111 + 89434 p_112
28 | + 1000000 p_113 + 79298 p_114 + 1000000 p_115 + 25945 p_116
29 | + 1000000 p_117 + 34718 p_118 + 1000000 p_119 + 58830 p_120
30 | + 1000000 p_121 + 65345 p_122 + 1000000 p_123 + 104330 p_124
31 | + 1000000 p_125 + 70383 p_126 + 1000000 p_127 + 82947 p_128
32 | + 1000000 p_129 + 39396 p_130 + 1000000 p_131 + 114027 p_132
33 | + 1000000 p_133 + 47106 p_134 + 1000000 p_135 + 106219 p_136
34 | + 1000000 p_137 + 84597 p_138 + 1000000 p_139 + 63502 p_140
35 | + 1000000 p_141 + 84636 p_142 + 1000000 p_143 + 83140 p_144
36 | + 1000000 p_145 + 82418 p_146 + 1000000 p_147 + 31224 p_148
37 | + 1000000 p_149 + 93713 p_150 + 1000000 p_151 + 106495 p_152
38 | + 1000000 p_153 + 14130 p_154 + 1000000 p_155 + 119405 p_156
39 | + 1000000 p_157 + 79544 p_158 + 1000000 p_159 + 66512 p_160
40 | + 1000000 p_161 + 39861 p_162 + 1000000 p_163 + 91492 p_164
41 | + 1000000 p_165 + 93112 p_166 + 1000000 p_167 + 14366 p_168
42 | + 1000000 p_169 + 45842 p_170 + 1000000 p_171 + 18770 p_172
43 | + 1000000 p_173 + 76770 p_174 + 1000000 p_175 + 44590 p_176
44 | + 1000000 p_177 + 113787 p_178 + 1000000 p_179 + 106495 p_180
45 | + 1000000 p_181 + 53642 p_182 + 1000000 p_183 + 5065 p_184 + 84955 p_185
46 | + 38046 p_186 + 83136 p_187 + 112492 p_188 + 84363 p_189 + 75194 p_190
47 | + 76814 p_191 + 104887 p_192 + 79524 p_193 + 19853 p_194 + 27022 p_195
48 | + 34926 p_196 + 73274 p_197 + 38956 p_198 + 73563 p_199 + 80342 p_200
49 | + 61029 p_201 + 93159 p_202 + 107375 p_203 + 108077 p_204 + 83367 p_205
50 | + 123619 p_206 + 13184 p_207 + 63582 p_208 + 69319 p_209 + 92209 p_210
51 | + 84280 p_211 + 93159 p_212 + 63164 p_213 + 105412 p_214 + 90099 p_215
52 | + 102663 p_216 + 115183 p_217 + 107375 p_218 + 92080 p_219 + 86002 p_220
53 | + 84222 p_221 + 88866 p_222 + 121535 p_223 + 81674 p_224 + 85900 p_225
54 | + 92574 p_226 + 94194 p_227 + 50176 p_228 + 19852 p_229 + 82068 p_230
55 | + 53676 p_231 + 111793 p_232 + 74002 p_233 + 89907 p_234 + 89293 p_235
56 | + 56697 p_236 + 120352 p_237 + 104999 p_238 + 93449 p_239 + 84280 p_240
57 | + 85900 p_241 + 81996 p_242 + 20772 p_243 + 13184 p_244 + 70238 p_245
58 | + 36754 p_246 + 29061 p_247 + 92576 p_248 + 54118 p_249 + 79211 p_250
59 | + 65959 p_251 + 127379 p_252 + 124651 p_253 + 83290 p_254 + 78632 p_255
60 | + 81113 p_256 + 49360 p_257 + 73069 p_258 + 85714 p_259 + 86274 p_260
61 | + 93772 p_261 + 37970 p_262 + 63262 p_263 + 69885 p_264 + 108762 p_265
62 | + 87665 p_266 + 69856 p_267 + 61064 p_268 + 102179 p_269 + 68220 p_270
63 | + 86596 p_271 + 84816 p_272 + 33008 p_273 + 111793 p_274 + 84094 p_275
64 | + 93168 p_276 + 94788 p_277 + 16150 p_278 + 100250 p_279 + 68838 p_280
65 | + 133089 p_281 + 129975 p_282 + 79300 p_283 + 89387 p_284 + 102337 p_285
66 | + 86392 p_286 + 8584 p_287 + 115748 p_288 + 101747 p_289 + 92578 p_290
67 | + 94198 p_291 + 78134 p_292 + 68507 p_293 + 112337 p_294 + 71134 p_295
68 | + 86274 p_296 + 75194 p_297 + 108668 p_298 + 91042 p_299 + 89262 p_300
69 | + 76814 p_301 + 97614 p_302 + 99234 p_303 + 23108 p_304 + 85171 p_305
70 | + 53418 p_306 + 59668 p_307
71 | Subject To
72 | c1: p_1 + p_2 + p_234 = 4
73 | c2: p_3 + p_4 + p_185 + p_235 + p_284 = 10
74 | c3: p_5 + p_6 + p_236 = 4
75 | c4: p_7 + p_8 + p_237 = 4
76 | c5: p_9 + p_10 + p_238 + p_285 = 9
77 | c6: p_11 + p_12 = 8
78 | c7: p_13 + p_14 = 9
79 | c8: p_15 + p_16 + p_186 = 9
80 | c9: p_17 + p_18 + p_187 + p_286 = 4
81 | c10: p_19 + p_20 + p_287 = 10
82 | c11: p_21 + p_22 + p_188 + p_288 = 9
83 | c12: p_23 + p_24 + p_189 + p_239 + p_289 = 8
84 | c13: p_25 + p_26 + p_190 + p_240 + p_290 = 10
85 | c14: p_27 + p_28 + p_191 + p_241 + p_291 = 11
86 | c15: p_29 + p_30 + p_192 + p_305 = 9
87 | c16: p_31 + p_32 + p_193 + p_242 + p_306 = 9
88 | c17: p_33 + p_34 + p_194 = 11
89 | c18: p_35 + p_36 + p_243 = 11
90 | c19: p_37 + p_38 + p_244 = 6
91 | c20: p_39 + p_40 + p_245 + p_292 = 7
92 | c21: p_41 + p_42 + p_195 + p_246 = 11
93 | c22: p_43 + p_44 + p_196 = 5
94 | c23: p_45 + p_46 + p_247 = 4
95 | c24: p_47 + p_48 = 4
96 | c25: p_49 + p_50 + p_197 + p_248 + p_307 = 8
97 | c26: p_51 + p_52 + p_198 + p_249 = 7
98 | c27: p_53 + p_54 = 4
99 | c28: p_55 + p_56 + p_199 = 4
100 | c29: p_57 + p_58 = 7
101 | c30: p_59 + p_60 + p_200 = 9
102 | c31: p_61 + p_62 + p_201 + p_250 = 6
103 | c32: p_63 + p_64 = 8
104 | c33: p_65 + p_66 + p_251 = 11
105 | c34: p_67 + p_68 = 9
106 | c35: p_69 + p_70 + p_202 = 4
107 | c36: p_71 + p_72 + p_203 = 7
108 | c37: p_73 + p_74 + p_204 + p_252 = 11
109 | c38: p_75 + p_76 + p_205 = 6
110 | c39: p_77 + p_78 + p_293 = 5
111 | c40: p_79 + p_80 + p_206 + p_253 + p_294 = 11
112 | c41: p_81 + p_82 + p_207 = 7
113 | c42: p_83 + p_84 + p_295 = 8
114 | c43: p_85 + p_86 + p_296 = 6
115 | c44: p_87 + p_88 + p_254 = 6
116 | c45: p_89 + p_90 = 6
117 | c46: p_91 + p_92 + p_208 = 10
118 | c47: p_93 + p_94 + p_255 = 6
119 | c48: p_95 + p_96 + p_256 = 6
120 | c49: p_97 + p_98 + p_257 = 10
121 | c50: p_99 + p_100 + p_209 + p_258 = 8
122 | c51: p_101 + p_102 + p_210 = 7
123 | c52: p_103 + p_104 = 8
124 | c53: p_105 + p_106 + p_211 + p_259 + p_297 = 7
125 | c54: p_107 + p_108 + p_212 = 9
126 | c55: p_109 + p_110 + p_260 = 9
127 | c56: p_111 + p_112 + p_261 = 8
128 | c57: p_113 + p_114 = 11
129 | c58: p_115 + p_116 = 8
130 | c59: p_117 + p_118 + p_262 = 10
131 | c60: p_119 + p_120 + p_213 + p_263 = 4
132 | c61: p_121 + p_122 + p_264 = 5
133 | c62: p_123 + p_124 + p_214 + p_265 + p_298 = 5
134 | c63: p_125 + p_126 + p_215 = 4
135 | c64: p_127 + p_128 + p_216 + p_266 = 8
136 | c65: p_129 + p_130 + p_267 = 4
137 | c66: p_131 + p_132 + p_217 = 8
138 | c67: p_133 + p_134 + p_268 = 11
139 | c68: p_135 + p_136 + p_218 = 10
140 | c69: p_137 + p_138 + p_269 = 5
141 | c70: p_139 + p_140 + p_219 + p_270 = 4
142 | c71: p_141 + p_142 + p_220 + p_271 + p_299 = 8
143 | c72: p_143 + p_144 + p_221 + p_272 + p_300 = 11
144 | c73: p_145 + p_146 + p_222 = 7
145 | c74: p_147 + p_148 + p_273 = 7
146 | c75: p_149 + p_150 = 9
147 | c76: p_151 + p_152 + p_274 = 11
148 | c77: p_153 + p_154 = 6
149 | c78: p_155 + p_156 + p_223 = 4
150 | c79: p_157 + p_158 + p_224 = 11
151 | c80: p_159 + p_160 + p_225 + p_275 + p_301 = 5
152 | c81: p_161 + p_162 = 11
153 | c82: p_163 + p_164 + p_226 + p_276 + p_302 = 11
154 | c83: p_165 + p_166 + p_227 + p_277 + p_303 = 9
155 | c84: p_167 + p_168 + p_278 = 6
156 | c85: p_169 + p_170 + p_228 = 11
157 | c86: p_171 + p_172 + p_229 + p_304 = 9
158 | c87: p_173 + p_174 + p_230 + p_279 = 5
159 | c88: p_175 + p_176 + p_231 + p_280 = 6
160 | c89: p_177 + p_178 + p_281 = 10
161 | c90: p_179 + p_180 + p_232 + p_282 = 8
162 | c91: p_181 + p_182 + p_233 + p_283 = 7
163 | c92: p_183 + p_184 = 11
164 | c93: p_2 + p_150 + s_1 + p_185 + p_234 + p_235 + p_284 = 48
165 | c94: s_2 = 115
166 | c95: p_4 + p_6 + p_8 + p_80 + p_88 + p_96 + p_98 + p_100 + p_106 + p_138
167 | + p_160 + p_178 + s_3 + p_193 + p_197 + p_204 = 65
168 | c96: p_24 + p_26 + p_28 + p_114 + p_156 + p_158 + s_4 + p_223 + p_224 = 86
169 | c97: s_5 = 35
170 | c98: p_10 + s_6 + p_238 + p_285 = 116
171 | c99: s_7 = 42
172 | c100: s_8 = 25
173 | c101: p_6 + p_8 + s_9 + p_236 + p_237 = 114
174 | c102: p_12 + p_14 + p_138 + p_152 + s_10 + p_215 + p_216 + p_219 + p_269
175 | + p_274 = 80
176 | c103: s_11 + p_192 = 70
177 | c104: p_114 + p_150 + s_12 + p_222 + p_223 + p_224 + p_242 = 86
178 | c105: p_8 + p_102 + p_180 + s_13 + p_210 + p_232 + p_237 + p_282 = 105
179 | c106: s_14 = 109
180 | c107: s_15 = 57
181 | c108: s_16 = 97
182 | c109: p_16 + p_18 + p_20 + p_22 + s_17 + p_186 + p_187 + p_188 + p_286 + p_288
183 | = 102
184 | c110: s_18 + p_287 = 63
185 | c111: s_19 = 103
186 | c112: s_20 = 85
187 | c113: s_21 = 43
188 | c114: p_154 + s_22 + p_189 + p_190 + p_191 + p_195 + p_206 + p_207 = 107
189 | c115: s_23 + p_239 + p_240 + p_241 + p_243 + p_244 + p_245 + p_262 + p_266
190 | + p_270 = 33
191 | c116: s_24 = 95
192 | c117: s_25 = 38
193 | c118: p_52 + p_76 + s_26 + p_198 + p_205 + p_210 + p_213 + p_228 + p_249 = 59
194 | c119: s_27 = 82
195 | c120: p_24 + p_26 + p_28 + p_156 + p_158 + s_28 + p_289 + p_290 + p_291 = 72
196 | c121: p_30 + p_32 + p_34 + p_42 + p_50 + p_52 + p_62 + p_174 + p_176 + p_180
197 | + s_29 + p_294 + p_297 + p_301 = 49
198 | c122: p_18 + p_22 + p_40 + p_84 + p_86 + p_124 + p_142 + p_144 + p_152 + p_164
199 | + p_166 + p_172 + s_30 + p_187 + p_188 + p_189 + p_190 + p_191 + p_193
200 | + p_214 + p_220 + p_221 + p_226 + p_227 + p_229 + p_233 + p_239 + p_240
201 | + p_241 + p_245 + p_265 + p_271 + p_272 + p_274 + p_276 + p_277 + p_283
202 | = 111
203 | c123: p_10 + p_46 + p_94 + p_110 + p_112 + p_134 + s_31 + p_185 + p_195
204 | + p_198 + p_206 + p_211 + p_225 + p_231 + p_284 + p_285 = 84
205 | c124: s_32 = 92
206 | c125: s_33 + p_192 + p_194 + p_201 + p_209 + p_230 + p_232 + p_242 + p_305
207 | + p_306 + p_307 = 74
208 | c126: p_16 + p_52 + p_76 + p_176 + s_34 + p_243 + p_244 + p_245 + p_297
209 | + p_301 = 107
210 | c127: p_36 + p_40 + p_152 + s_35 + p_189 + p_190 + p_191 + p_233 = 49
211 | c128: p_4 + p_38 + p_118 + p_128 + p_140 + s_36 + p_216 + p_219 = 26
212 | c129: p_30 + p_32 + p_34 + p_50 + p_62 + p_74 + p_102 + p_120 + p_146 + p_170
213 | + p_174 + p_180 + s_37 + p_263 + p_292 = 101
214 | c130: p_2 + p_10 + p_42 + p_46 + p_50 + p_52 + p_62 + p_66 + p_94 + p_110
215 | + p_112 + p_130 + p_134 + p_174 + p_176 + p_180 + s_38 + p_185 + p_195
216 | + p_198 + p_201 + p_206 + p_209 + p_211 + p_225 + p_230 + p_231 + p_232
217 | + p_284 + p_285 + p_294 + p_297 + p_301 + p_307 = 111
218 | c131: p_18 + p_22 + p_40 + p_48 + p_54 + p_84 + p_86 + p_124 + p_164 + p_166
219 | + s_39 + p_187 + p_188 + p_189 + p_190 + p_191 + p_193 + p_197 + p_214
220 | + p_226 + p_227 + p_233 + p_239 + p_240 + p_241 + p_245 + p_248 + p_265
221 | + p_276 + p_277 + p_283 + p_286 + p_288 + p_295 + p_296 + p_298 + p_302
222 | + p_303 = 96
223 | c132: p_144 + s_40 + p_196 + p_220 + p_221 + p_271 + p_272 + p_299 + p_300
224 | = 113
225 | c133: s_41 + p_234 + p_235 + p_238 + p_246 + p_247 + p_249 + p_255 + p_260
226 | + p_261 + p_267 + p_268 + p_280 = 71
227 | c134: p_44 + p_142 + p_152 + s_42 + p_274 = 118
228 | c135: s_43 + p_250 + p_279 + p_282 = 79
229 | c136: s_44 = 99
230 | c137: p_58 + p_108 + p_136 + s_45 + p_199 + p_200 + p_201 + p_250 = 106
231 | c138: p_56 + p_60 + p_62 + p_70 + p_72 + p_132 + s_46 = 26
232 | c139: s_47 + p_186 + p_195 + p_198 + p_205 + p_206 + p_207 + p_210 + p_211
233 | + p_213 + p_225 + p_228 + p_231 + p_249 + p_280 = 33
234 | c140: p_18 + p_22 + p_84 + p_86 + p_124 + p_142 + p_144 + p_164 + p_166
235 | + p_172 + s_48 + p_187 + p_188 + p_214 + p_220 + p_221 + p_226 + p_227
236 | + p_229 + p_234 + p_239 + p_240 + p_241 + p_243 + p_245 + p_251 + p_265
237 | + p_267 + p_271 + p_272 + p_276 + p_277 = 84
238 | c141: p_16 + p_74 + p_76 + p_82 + p_102 + p_120 + p_146 + p_170 + s_49 + p_246
239 | + p_263 = 26
240 | c142: p_4 + p_10 + p_38 + p_94 + p_110 + p_112 + p_128 + p_134 + p_140 + s_50
241 | + p_185 + p_216 + p_219 + p_244 + p_284 + p_285 = 102
242 | c143: s_51 + p_266 + p_270 = 46
243 | c144: s_52 = 97
244 | c145: s_53 = 99
245 | c146: p_66 + p_68 + p_70 + p_72 + s_54 + p_202 + p_203 + p_204 + p_252 = 84
246 | c147: p_64 + p_74 + p_76 + p_78 + s_55 + p_205 + p_251 + p_293 = 99
247 | c148: s_56 = 35
248 | c149: s_57 = 100
249 | c150: p_80 + s_58 + p_206 + p_253 + p_294 = 99
250 | c151: s_59 = 95
251 | c152: p_16 + p_18 + p_22 + p_74 + p_76 + p_82 + p_84 + p_86 + p_102 + p_120
252 | + p_124 + p_142 + p_144 + p_146 + p_164 + p_166 + p_170 + p_172 + s_60
253 | + p_207 + p_263 + p_265 + p_271 + p_272 + p_276 + p_277 = 102
254 | c153: s_61 + p_284 + p_285 = 28
255 | c154: p_4 + p_10 + p_94 + p_112 + p_128 + p_140 + s_62 + p_185 + p_216 + p_219
256 | + p_295 + p_296 = 31
257 | c155: p_56 + p_88 + p_96 + p_98 + p_100 + p_178 + s_63 + p_193 + p_197 + p_199
258 | + p_204 + p_233 + p_283 = 48
259 | c156: p_2 + p_10 + p_90 + p_94 + p_110 + p_112 + s_64 + p_185 + p_206 + p_209
260 | + p_211 + p_225 + p_234 + p_235 + p_238 + p_255 + p_260 + p_261 + p_284
261 | + p_285 + p_294 + p_297 + p_301 = 96
262 | c157: s_65 = 100
263 | c158: p_22 + p_48 + p_54 + p_60 + p_70 + p_72 + p_86 + p_124 + p_132 + p_164
264 | + p_166 + s_66 + p_188 + p_189 + p_190 + p_191 + p_200 + p_202 + p_203
265 | + p_214 + p_217 + p_226 + p_227 + p_239 + p_240 + p_241 + p_265 + p_276
266 | + p_277 + p_288 + p_289 + p_290 + p_291 + p_296 + p_298 + p_302 + p_303
267 | = 99
268 | c159: s_67 = 79
269 | c160: s_68 + p_248 + p_252 + p_254 + p_256 + p_257 + p_281 = 46
270 | c161: p_92 + p_108 + p_136 + s_69 + p_208 + p_212 + p_218 = 95
271 | c162: s_70 + p_258 = 61
272 | c163: p_64 + s_71 = 102
273 | c164: p_4 + p_10 + p_20 + p_78 + s_72 + p_185 + p_235 + p_238 = 29
274 | c165: s_73 + p_293 = 75
275 | c166: p_16 + p_18 + p_22 + p_102 + p_120 + p_122 + p_124 + p_142 + p_144
276 | + p_146 + p_148 + p_164 + p_166 + p_168 + s_74 + p_186 + p_187 + p_188
277 | + p_210 + p_213 + p_214 + p_220 + p_221 + p_226 + p_227 + p_264 + p_273
278 | + p_278 + p_286 + p_288 + p_298 + p_299 + p_300 + p_302 + p_303 = 74
279 | c167: s_75 = 115
280 | c168: p_104 + s_76 + p_189 + p_239 + p_289 = 116
281 | c169: p_10 + p_108 + p_110 + p_112 + p_136 + s_77 + p_206 + p_211 + p_212
282 | + p_218 + p_225 + p_238 + p_260 + p_261 + p_285 + p_294 + p_297 + p_301
283 | = 99
284 | c170: p_22 + p_72 + p_124 + p_132 + p_156 + p_162 + s_78 + p_188 + p_203
285 | + p_214 + p_217 + p_223 + p_265 + p_288 + p_298 = 66
286 | c171: p_54 + p_60 + p_80 + p_106 + p_138 + p_166 + s_79 + p_191 + p_200
287 | + p_227 + p_241 + p_253 + p_259 + p_269 + p_277 + p_291 + p_303 = 102
288 | c172: p_102 + p_114 + p_120 + p_170 + p_174 + p_180 + s_80 + p_192 + p_210
289 | + p_213 + p_222 + p_223 + p_224 + p_228 + p_230 + p_232 + p_242 + p_263
290 | + p_279 + p_282 = 80
291 | c173: p_12 + p_116 + s_81 + p_262 = 117
292 | c174: p_118 + p_152 + s_82 + p_215 + p_216 + p_219 + p_274 = 36
293 | c175: s_83 = 63
294 | c176: p_120 + p_122 + p_124 + p_142 + p_144 + p_146 + p_148 + p_164 + p_166
295 | + p_168 + s_84 + p_213 + p_214 + p_220 + p_221 + p_226 + p_227 + p_298
296 | = 29
297 | c177: p_10 + p_78 + s_85 + p_238 + p_263 + p_264 + p_265 = 34
298 | c178: s_86 = 42
299 | c179: s_87 + p_215 + p_216 = 70
300 | c180: p_126 + p_128 + s_88 + p_266 = 55
301 | c181: s_89 = 76
302 | c182: s_90 = 119
303 | c183: p_66 + p_130 + p_134 + s_91 + p_201 + p_250 + p_267 + p_268 = 113
304 | c184: p_68 + p_70 + p_72 + p_132 + s_92 + p_196 + p_208 + p_220 + p_271
305 | + p_299 = 106
306 | c185: p_108 + p_136 + s_93 + p_212 + p_218 = 84
307 | c186: s_94 = 95
308 | c187: s_95 + p_199 + p_200 + p_202 + p_203 + p_204 + p_217 + p_252 = 45
309 | c188: s_96 = 25
310 | c189: p_132 + p_156 + p_162 + s_97 + p_217 + p_223 = 99
311 | c190: s_98 = 79
312 | c191: p_80 + p_136 + p_138 + s_99 + p_206 + p_218 + p_253 + p_269 + p_294
313 | = 66
314 | c192: p_24 + p_26 + p_28 + p_114 + p_150 + p_156 + p_158 + p_182 + s_100
315 | + p_223 + p_224 = 65
316 | c193: p_8 + p_88 + p_138 + s_101 + p_219 + p_237 + p_254 + p_269 = 86
317 | c194: s_102 = 46
318 | c195: p_30 + p_96 + p_178 + s_103 + p_256 + p_281 + p_305 = 55
319 | c196: s_104 = 62
320 | c197: p_4 + p_80 + p_100 + p_106 + p_126 + p_128 + p_140 + p_160 + s_105
321 | + p_253 + p_259 + p_266 + p_270 + p_275 = 32
322 | c198: s_106 = 103
323 | c199: s_107 = 38
324 | c200: s_108 + p_222 = 35
325 | c201: p_142 + p_144 + p_146 + p_148 + s_109 + p_220 + p_221 + p_271 + p_272
326 | + p_273 + p_299 + p_300 = 113
327 | c202: p_150 + p_152 + s_110 + p_274 = 105
328 | c203: s_111 = 76
329 | c204: s_112 = 109
330 | c205: p_12 + p_116 + p_154 + p_156 + p_158 + s_113 + p_262 = 59
331 | c206: s_114 + p_210 + p_213 + p_222 + p_223 + p_224 + p_228 = 117
332 | c207: s_115 = 35
333 | c208: s_116 = 65
334 | c209: p_6 + p_8 + p_80 + p_106 + p_138 + p_160 + s_117 = 86
335 | c210: p_24 + p_114 + s_118 = 114
336 | c211: p_26 + p_156 + p_162 + s_119 + p_223 + p_225 + p_301 = 102
337 | c212: s_120 = 119
338 | c213: s_121 + p_236 + p_237 + p_253 + p_259 + p_269 + p_275 = 62
339 | c214: s_122 = 85
340 | c215: s_123 = 82
341 | c216: s_124 + p_263 + p_265 + p_271 + p_272 + p_276 + p_277 = 28
342 | c217: s_125 + p_264 + p_273 + p_278 + p_299 + p_300 + p_302 + p_303 = 75
343 | c218: p_142 + p_144 + p_146 + p_148 + p_164 + p_166 + p_168 + s_126 + p_220
344 | + p_221 + p_226 + p_227 + p_284 = 34
345 | c219: s_127 = 113
346 | c220: s_128 = 68
347 | c221: s_129 = 43
348 | c222: s_130 = 92
349 | c223: s_131 + p_286 + p_288 + p_295 + p_296 + p_298 + p_299 + p_300 + p_302
350 | + p_303 + p_304 = 71
351 | c224: s_132 + p_186 + p_187 + p_188 + p_205 + p_210 + p_213 + p_214 + p_220
352 | + p_221 + p_226 + p_227 + p_228 + p_229 + p_234 + p_246 + p_247 + p_249
353 | + p_251 + p_267 + p_280 = 46
354 | c225: p_122 + s_133 + p_264 = 99
355 | c226: p_16 + p_18 + p_22 + p_74 + p_76 + p_102 + p_120 + p_124 + p_142 + p_144
356 | + p_146 + p_164 + p_166 + p_170 + p_172 + s_134 + p_260 + p_268 = 31
357 | c227: p_4 + p_10 + p_64 + p_78 + p_94 + p_112 + p_140 + s_135 + p_185 + p_219
358 | + p_235 + p_238 + p_255 + p_261 + p_270 + p_293 = 74
359 | c228: s_136 = 95
360 | c229: s_137 = 68
361 | c230: p_62 + p_174 + p_176 + p_180 + s_138 + p_230 + p_231 + p_232 + p_279
362 | + p_280 + p_282 = 118
363 | c231: p_44 + p_92 + p_108 + p_136 + p_142 + s_139 = 26
364 | c232: p_56 + p_60 + p_70 + p_72 + p_132 + p_178 + s_140 + p_199 + p_200
365 | + p_202 + p_203 + p_204 + p_217 + p_252 + p_281 = 95
366 | c233: s_141 + p_208 + p_212 + p_218 = 45
367 | c234: s_142 = 57
368 | c235: p_106 + p_160 + s_143 + p_259 + p_266 + p_270 + p_275 = 72
369 | c236: s_144 + p_274 + p_283 = 74
370 | c237: p_4 + p_80 + p_118 + p_126 + p_128 + p_140 + p_152 + p_184 + s_145
371 | + p_215 + p_216 + p_219 + p_233 + p_253 = 101
372 | c238: s_146 = 79
373 | c239: s_147 + p_289 + p_290 + p_291 + p_292 = 61
374 | c240: p_102 + p_120 + p_170 + p_174 + p_180 + s_148 + p_192 + p_230 + p_232
375 | + p_242 + p_263 + p_279 + p_282 = 36
376 | c241: p_24 + p_26 + p_28 + p_30 + p_32 + p_50 + p_74 + p_146 + p_156 + p_158
377 | + p_182 + s_149 + p_305 + p_306 + p_307 = 32
378 | c242: s_150 = 65
379 | End
380 |
--------------------------------------------------------------------------------
/Column_Generation_Algorithm/data/grid/grid5.dat:
--------------------------------------------------------------------------------
1 | grid5
2 | 225
3 | 840
4 | 100
5 | 1 2 91 193
6 | 1 16 97 340
7 | 2 1 95 159
8 | 2 3 82 195
9 | 2 17 92 207
10 | 3 2 85 409
11 | 3 4 95 472
12 | 3 18 97 346
13 | 4 3 93 232
14 | 4 5 83 199
15 | 4 19 85 249
16 | 5 4 99 198
17 | 5 6 87 167
18 | 5 20 80 184
19 | 6 5 85 539
20 | 6 7 98 368
21 | 6 21 88 311
22 | 7 6 93 499
23 | 7 8 84 481
24 | 7 22 85 280
25 | 8 7 81 406
26 | 8 9 96 214
27 | 8 23 96 340
28 | 9 8 88 338
29 | 9 10 87 251
30 | 9 24 98 442
31 | 10 9 84 266
32 | 10 11 97 475
33 | 10 25 100 325
34 | 11 10 83 339
35 | 11 12 99 273
36 | 11 26 94 470
37 | 12 11 88 209
38 | 12 13 86 454
39 | 12 27 96 360
40 | 13 12 83 357
41 | 13 14 98 433
42 | 13 28 85 507
43 | 14 13 93 289
44 | 14 15 86 324
45 | 14 29 93 357
46 | 15 14 94 438
47 | 15 30 82 321
48 | 16 1 96 439
49 | 16 17 91 495
50 | 16 31 88 207
51 | 17 2 92 434
52 | 17 16 98 376
53 | 17 18 83 306
54 | 17 32 82 389
55 | 18 3 88 529
56 | 18 17 94 313
57 | 18 19 96 239
58 | 18 33 94 251
59 | 19 4 80 338
60 | 19 18 94 338
61 | 19 20 86 284
62 | 19 34 100 546
63 | 20 5 100 348
64 | 20 19 94 353
65 | 20 21 82 199
66 | 20 35 89 508
67 | 21 6 98 453
68 | 21 20 88 226
69 | 21 22 100 462
70 | 21 36 89 301
71 | 22 7 81 441
72 | 22 21 92 153
73 | 22 23 98 327
74 | 22 37 92 384
75 | 23 8 92 241
76 | 23 22 92 188
77 | 23 24 96 431
78 | 23 38 94 260
79 | 24 9 99 431
80 | 24 23 97 526
81 | 24 25 97 335
82 | 24 39 92 460
83 | 25 10 89 518
84 | 25 24 95 266
85 | 25 26 82 428
86 | 25 40 84 246
87 | 26 11 89 319
88 | 26 25 99 250
89 | 26 27 96 202
90 | 26 41 81 469
91 | 27 12 94 336
92 | 27 26 94 519
93 | 27 28 95 312
94 | 27 42 80 462
95 | 28 13 81 447
96 | 28 27 95 359
97 | 28 29 94 427
98 | 28 43 95 431
99 | 29 14 81 428
100 | 29 28 88 295
101 | 29 30 81 293
102 | 29 44 94 194
103 | 30 15 80 411
104 | 30 29 98 395
105 | 30 45 94 423
106 | 31 16 80 540
107 | 31 32 86 394
108 | 31 46 95 251
109 | 32 17 82 206
110 | 32 31 98 472
111 | 32 33 85 523
112 | 32 47 81 197
113 | 33 18 95 278
114 | 33 32 86 189
115 | 33 34 91 440
116 | 33 48 93 321
117 | 34 19 87 539
118 | 34 33 96 276
119 | 34 35 99 230
120 | 34 49 99 449
121 | 35 20 89 249
122 | 35 34 98 159
123 | 35 36 93 468
124 | 35 50 87 438
125 | 36 21 91 407
126 | 36 35 83 294
127 | 36 37 85 277
128 | 36 51 96 375
129 | 37 22 97 418
130 | 37 36 96 349
131 | 37 38 82 517
132 | 37 52 82 405
133 | 38 23 84 483
134 | 38 37 94 233
135 | 38 39 86 217
136 | 38 53 100 187
137 | 39 24 93 492
138 | 39 38 93 260
139 | 39 40 96 548
140 | 39 54 87 513
141 | 40 25 94 471
142 | 40 39 87 472
143 | 40 41 83 478
144 | 40 55 83 275
145 | 41 26 96 155
146 | 41 40 96 226
147 | 41 42 89 385
148 | 41 56 83 515
149 | 42 27 91 335
150 | 42 41 92 471
151 | 42 43 92 178
152 | 42 57 85 355
153 | 43 28 94 368
154 | 43 42 94 201
155 | 43 44 95 205
156 | 43 58 84 540
157 | 44 29 83 473
158 | 44 43 84 333
159 | 44 45 94 287
160 | 44 59 89 168
161 | 45 30 85 424
162 | 45 44 92 486
163 | 45 60 85 375
164 | 46 31 98 372
165 | 46 47 92 446
166 | 46 61 99 306
167 | 47 32 97 543
168 | 47 46 89 517
169 | 47 48 84 344
170 | 47 62 80 416
171 | 48 33 80 243
172 | 48 47 97 263
173 | 48 49 98 251
174 | 48 63 86 244
175 | 49 34 94 515
176 | 49 48 85 271
177 | 49 50 91 235
178 | 49 64 84 192
179 | 50 35 88 278
180 | 50 49 84 506
181 | 50 51 81 154
182 | 50 65 82 214
183 | 51 36 83 414
184 | 51 50 86 503
185 | 51 52 91 188
186 | 51 66 100 262
187 | 52 37 83 353
188 | 52 51 95 156
189 | 52 53 85 258
190 | 52 67 80 256
191 | 53 38 91 465
192 | 53 52 84 192
193 | 53 54 86 329
194 | 53 68 94 256
195 | 54 39 85 193
196 | 54 53 85 500
197 | 54 55 82 237
198 | 54 69 84 486
199 | 55 40 97 413
200 | 55 54 94 263
201 | 55 56 95 223
202 | 55 70 81 270
203 | 56 41 85 356
204 | 56 55 85 475
205 | 56 57 100 410
206 | 56 71 91 359
207 | 57 42 82 390
208 | 57 56 80 385
209 | 57 58 85 423
210 | 57 72 96 493
211 | 58 43 83 178
212 | 58 57 84 443
213 | 58 59 88 166
214 | 58 73 88 272
215 | 59 44 91 331
216 | 59 58 94 514
217 | 59 60 86 173
218 | 59 74 92 396
219 | 60 45 92 259
220 | 60 59 93 306
221 | 60 75 83 541
222 | 61 46 99 328
223 | 61 62 86 336
224 | 61 76 84 392
225 | 62 47 88 460
226 | 62 61 86 262
227 | 62 63 88 301
228 | 62 77 85 379
229 | 63 48 94 548
230 | 63 62 98 236
231 | 63 64 88 384
232 | 63 78 94 190
233 | 64 49 81 414
234 | 64 63 93 269
235 | 64 65 98 301
236 | 64 79 100 213
237 | 65 50 93 449
238 | 65 64 87 376
239 | 65 66 91 198
240 | 65 80 95 302
241 | 66 51 100 262
242 | 66 65 91 324
243 | 66 67 84 286
244 | 66 81 97 160
245 | 67 52 85 382
246 | 67 66 89 402
247 | 67 68 93 457
248 | 67 82 95 294
249 | 68 53 84 426
250 | 68 67 82 245
251 | 68 69 97 205
252 | 68 83 89 495
253 | 69 54 88 344
254 | 69 68 91 202
255 | 69 70 100 163
256 | 69 84 86 196
257 | 70 55 98 377
258 | 70 69 96 291
259 | 70 71 88 367
260 | 70 85 92 489
261 | 71 56 98 308
262 | 71 70 94 406
263 | 71 72 89 155
264 | 71 86 93 548
265 | 72 57 82 438
266 | 72 71 85 450
267 | 72 73 82 429
268 | 72 87 98 228
269 | 73 58 85 505
270 | 73 72 97 442
271 | 73 74 96 369
272 | 73 88 85 398
273 | 74 59 84 532
274 | 74 73 85 469
275 | 74 75 84 536
276 | 74 89 87 379
277 | 75 60 81 251
278 | 75 74 99 546
279 | 75 90 93 456
280 | 76 61 86 441
281 | 76 77 94 286
282 | 76 91 82 238
283 | 77 62 85 212
284 | 77 76 88 319
285 | 77 78 81 523
286 | 77 92 81 519
287 | 78 63 82 546
288 | 78 77 96 523
289 | 78 79 98 480
290 | 78 93 82 519
291 | 79 64 91 195
292 | 79 78 92 196
293 | 79 80 96 282
294 | 79 94 94 433
295 | 80 65 86 159
296 | 80 79 93 279
297 | 80 81 85 254
298 | 80 95 88 435
299 | 81 66 88 429
300 | 81 80 88 156
301 | 81 82 88 155
302 | 81 96 94 491
303 | 82 67 98 473
304 | 82 81 87 532
305 | 82 83 91 452
306 | 82 97 84 498
307 | 83 68 81 203
308 | 83 82 94 311
309 | 83 84 94 258
310 | 83 98 97 436
311 | 84 69 88 333
312 | 84 83 81 237
313 | 84 85 100 331
314 | 84 99 93 393
315 | 85 70 83 437
316 | 85 84 83 259
317 | 85 86 93 173
318 | 85 100 96 506
319 | 86 71 97 422
320 | 86 85 87 178
321 | 86 87 99 406
322 | 86 101 82 312
323 | 87 72 81 528
324 | 87 86 84 153
325 | 87 88 94 276
326 | 87 102 80 341
327 | 88 73 87 369
328 | 88 87 82 209
329 | 88 89 81 257
330 | 88 103 88 235
331 | 89 74 93 529
332 | 89 88 98 525
333 | 89 90 91 412
334 | 89 104 97 245
335 | 90 75 89 415
336 | 90 89 92 455
337 | 90 105 93 478
338 | 91 76 95 367
339 | 91 92 88 297
340 | 91 106 93 453
341 | 92 77 89 324
342 | 92 91 86 391
343 | 92 93 91 428
344 | 92 107 96 454
345 | 93 78 96 376
346 | 93 92 80 313
347 | 93 94 81 377
348 | 93 108 98 484
349 | 94 79 100 225
350 | 94 93 100 379
351 | 94 95 97 267
352 | 94 109 80 253
353 | 95 80 88 229
354 | 95 94 82 219
355 | 95 96 80 245
356 | 95 110 89 301
357 | 96 81 93 330
358 | 96 95 85 343
359 | 96 97 81 294
360 | 96 111 99 252
361 | 97 82 100 483
362 | 97 96 96 249
363 | 97 98 80 292
364 | 97 112 97 346
365 | 98 83 96 527
366 | 98 97 91 413
367 | 98 99 91 440
368 | 98 113 83 202
369 | 99 84 96 301
370 | 99 98 94 422
371 | 99 100 81 366
372 | 99 114 98 189
373 | 100 85 96 211
374 | 100 99 94 516
375 | 100 101 88 219
376 | 100 115 87 549
377 | 101 86 88 274
378 | 101 100 87 391
379 | 101 102 92 464
380 | 101 116 95 451
381 | 102 87 93 250
382 | 102 101 97 540
383 | 102 103 89 492
384 | 102 117 89 528
385 | 103 88 87 461
386 | 103 102 88 380
387 | 103 104 82 364
388 | 103 118 97 269
389 | 104 89 97 323
390 | 104 103 82 439
391 | 104 105 96 180
392 | 104 119 98 211
393 | 105 90 88 200
394 | 105 104 84 461
395 | 105 120 97 220
396 | 106 91 94 320
397 | 106 107 81 389
398 | 106 121 89 290
399 | 107 92 84 329
400 | 107 106 91 498
401 | 107 108 96 454
402 | 107 122 82 195
403 | 108 93 89 498
404 | 108 107 87 193
405 | 108 109 96 315
406 | 108 123 89 304
407 | 109 94 81 323
408 | 109 108 97 269
409 | 109 110 98 314
410 | 109 124 93 206
411 | 110 95 87 468
412 | 110 109 100 504
413 | 110 111 93 455
414 | 110 125 80 380
415 | 111 96 89 249
416 | 111 110 97 272
417 | 111 112 80 452
418 | 111 126 86 520
419 | 112 97 81 439
420 | 112 111 80 172
421 | 112 113 84 373
422 | 112 127 84 415
423 | 113 98 96 213
424 | 113 112 96 174
425 | 113 114 86 320
426 | 113 128 97 446
427 | 114 99 95 152
428 | 114 113 100 436
429 | 114 115 88 523
430 | 114 129 99 162
431 | 115 100 87 201
432 | 115 114 94 354
433 | 115 116 94 304
434 | 115 130 93 407
435 | 116 101 88 515
436 | 116 115 96 423
437 | 116 117 95 474
438 | 116 131 94 237
439 | 117 102 97 491
440 | 117 116 92 446
441 | 117 118 82 424
442 | 117 132 80 525
443 | 118 103 83 297
444 | 118 117 80 276
445 | 118 119 88 484
446 | 118 133 80 277
447 | 119 104 81 225
448 | 119 118 91 240
449 | 119 120 86 387
450 | 119 134 93 355
451 | 120 105 81 163
452 | 120 119 91 216
453 | 120 135 83 433
454 | 121 106 91 247
455 | 121 122 84 515
456 | 121 136 95 520
457 | 122 107 83 186
458 | 122 121 97 163
459 | 122 123 89 465
460 | 122 137 80 368
461 | 123 108 94 493
462 | 123 122 85 500
463 | 123 124 88 511
464 | 123 138 89 269
465 | 124 109 88 456
466 | 124 123 98 164
467 | 124 125 96 379
468 | 124 139 80 528
469 | 125 110 95 358
470 | 125 124 80 184
471 | 125 126 80 416
472 | 125 140 83 202
473 | 126 111 89 169
474 | 126 125 97 502
475 | 126 127 92 397
476 | 126 141 80 284
477 | 127 112 98 220
478 | 127 126 85 396
479 | 127 128 89 245
480 | 127 142 95 273
481 | 128 113 81 491
482 | 128 127 99 384
483 | 128 129 85 166
484 | 128 143 93 290
485 | 129 114 98 295
486 | 129 128 94 497
487 | 129 130 91 344
488 | 129 144 96 313
489 | 130 115 86 384
490 | 130 129 95 361
491 | 130 131 96 473
492 | 130 145 95 280
493 | 131 116 88 500
494 | 131 130 86 363
495 | 131 132 89 455
496 | 131 146 93 228
497 | 132 117 97 353
498 | 132 131 95 162
499 | 132 133 81 187
500 | 132 147 89 241
501 | 133 118 98 279
502 | 133 132 86 199
503 | 133 134 85 524
504 | 133 148 95 545
505 | 134 119 83 350
506 | 134 133 80 480
507 | 134 135 94 151
508 | 134 149 85 337
509 | 135 120 82 182
510 | 135 134 82 290
511 | 135 150 88 471
512 | 136 121 91 503
513 | 136 137 96 227
514 | 136 151 94 297
515 | 137 122 85 415
516 | 137 136 83 374
517 | 137 138 95 387
518 | 137 152 87 314
519 | 138 123 83 499
520 | 138 137 82 505
521 | 138 139 95 335
522 | 138 153 91 175
523 | 139 124 80 427
524 | 139 138 82 422
525 | 139 140 87 181
526 | 139 154 99 198
527 | 140 125 89 363
528 | 140 139 91 507
529 | 140 141 81 277
530 | 140 155 96 284
531 | 141 126 84 177
532 | 141 140 91 186
533 | 141 142 87 384
534 | 141 156 97 527
535 | 142 127 99 383
536 | 142 141 87 370
537 | 142 143 92 209
538 | 142 157 96 387
539 | 143 128 95 279
540 | 143 142 82 328
541 | 143 144 84 327
542 | 143 158 88 499
543 | 144 129 97 203
544 | 144 143 91 547
545 | 144 145 95 293
546 | 144 159 93 170
547 | 145 130 100 214
548 | 145 144 98 533
549 | 145 146 91 176
550 | 145 160 94 235
551 | 146 131 87 512
552 | 146 145 92 334
553 | 146 147 89 297
554 | 146 161 89 329
555 | 147 132 84 318
556 | 147 146 81 332
557 | 147 148 87 213
558 | 147 162 88 238
559 | 148 133 95 505
560 | 148 147 97 467
561 | 148 149 87 545
562 | 148 163 98 399
563 | 149 134 95 322
564 | 149 148 82 273
565 | 149 150 99 258
566 | 149 164 83 398
567 | 150 135 100 295
568 | 150 149 85 461
569 | 150 165 94 223
570 | 151 136 95 540
571 | 151 152 91 439
572 | 151 166 95 239
573 | 152 137 99 449
574 | 152 151 97 151
575 | 152 153 86 280
576 | 152 167 96 310
577 | 153 138 92 227
578 | 153 152 91 467
579 | 153 154 83 206
580 | 153 168 93 521
581 | 154 139 98 166
582 | 154 153 83 186
583 | 154 155 96 257
584 | 154 169 82 530
585 | 155 140 83 166
586 | 155 154 80 333
587 | 155 156 96 271
588 | 155 170 88 436
589 | 156 141 87 310
590 | 156 155 81 506
591 | 156 157 94 286
592 | 156 171 87 156
593 | 157 142 95 313
594 | 157 156 97 365
595 | 157 158 88 331
596 | 157 172 88 498
597 | 158 143 87 525
598 | 158 157 91 431
599 | 158 159 97 500
600 | 158 173 97 289
601 | 159 144 95 506
602 | 159 158 81 445
603 | 159 160 83 426
604 | 159 174 83 539
605 | 160 145 83 182
606 | 160 159 98 161
607 | 160 161 89 276
608 | 160 175 97 384
609 | 161 146 95 402
610 | 161 160 98 438
611 | 161 162 81 371
612 | 161 176 97 179
613 | 162 147 98 299
614 | 162 161 87 278
615 | 162 163 83 343
616 | 162 177 84 505
617 | 163 148 100 276
618 | 163 162 85 486
619 | 163 164 94 550
620 | 163 178 95 446
621 | 164 149 96 421
622 | 164 163 96 410
623 | 164 165 92 250
624 | 164 179 98 312
625 | 165 150 85 373
626 | 165 164 86 428
627 | 165 180 99 456
628 | 166 151 99 547
629 | 166 167 81 444
630 | 166 181 80 233
631 | 167 152 80 378
632 | 167 166 93 412
633 | 167 168 99 411
634 | 167 182 93 392
635 | 168 153 100 173
636 | 168 167 91 185
637 | 168 169 88 195
638 | 168 183 98 433
639 | 169 154 97 504
640 | 169 168 94 451
641 | 169 170 98 431
642 | 169 184 85 524
643 | 170 155 83 426
644 | 170 169 83 236
645 | 170 171 80 354
646 | 170 185 98 412
647 | 171 156 95 517
648 | 171 170 95 362
649 | 171 172 86 199
650 | 171 186 82 272
651 | 172 157 93 358
652 | 172 171 89 164
653 | 172 173 92 336
654 | 172 187 95 347
655 | 173 158 86 479
656 | 173 172 87 357
657 | 173 174 82 357
658 | 173 188 100 418
659 | 174 159 87 280
660 | 174 173 89 191
661 | 174 175 100 313
662 | 174 189 96 395
663 | 175 160 89 443
664 | 175 174 84 475
665 | 175 176 96 528
666 | 175 190 88 261
667 | 176 161 97 152
668 | 176 175 83 221
669 | 176 177 93 194
670 | 176 191 81 256
671 | 177 162 89 414
672 | 177 176 83 477
673 | 177 178 85 362
674 | 177 192 94 350
675 | 178 163 95 225
676 | 178 177 98 308
677 | 178 179 89 347
678 | 178 193 96 274
679 | 179 164 92 463
680 | 179 178 87 490
681 | 179 180 87 342
682 | 179 194 80 366
683 | 180 165 88 234
684 | 180 179 81 277
685 | 180 195 99 480
686 | 181 166 95 500
687 | 181 182 96 192
688 | 181 196 81 403
689 | 182 167 91 333
690 | 182 181 89 157
691 | 182 183 82 328
692 | 182 197 92 492
693 | 183 168 81 268
694 | 183 182 95 500
695 | 183 184 100 350
696 | 183 198 91 413
697 | 184 169 96 284
698 | 184 183 85 319
699 | 184 185 82 168
700 | 184 199 81 180
701 | 185 170 97 524
702 | 185 184 81 308
703 | 185 186 85 193
704 | 185 200 83 319
705 | 186 171 85 283
706 | 186 185 92 329
707 | 186 187 85 162
708 | 186 201 83 499
709 | 187 172 97 531
710 | 187 186 97 539
711 | 187 188 91 202
712 | 187 202 81 367
713 | 188 173 84 352
714 | 188 187 84 227
715 | 188 189 86 453
716 | 188 203 91 360
717 | 189 174 95 317
718 | 189 188 92 443
719 | 189 190 88 545
720 | 189 204 85 450
721 | 190 175 95 405
722 | 190 189 92 252
723 | 190 191 91 461
724 | 190 205 87 195
725 | 191 176 84 281
726 | 191 190 88 316
727 | 191 192 91 488
728 | 191 206 80 446
729 | 192 177 97 345
730 | 192 191 87 421
731 | 192 193 100 169
732 | 192 207 80 479
733 | 193 178 92 168
734 | 193 192 92 255
735 | 193 194 80 368
736 | 193 208 87 517
737 | 194 179 87 318
738 | 194 193 95 464
739 | 194 195 87 366
740 | 194 209 96 199
741 | 195 180 94 200
742 | 195 194 80 469
743 | 195 210 95 496
744 | 196 181 92 158
745 | 196 197 85 314
746 | 196 211 87 505
747 | 197 182 99 231
748 | 197 196 95 477
749 | 197 198 86 348
750 | 197 212 91 333
751 | 198 183 91 231
752 | 198 197 80 384
753 | 198 199 87 318
754 | 198 213 92 498
755 | 199 184 80 277
756 | 199 198 99 537
757 | 199 200 81 162
758 | 199 214 80 198
759 | 200 185 83 386
760 | 200 199 82 282
761 | 200 201 95 212
762 | 200 215 98 408
763 | 201 186 84 237
764 | 201 200 92 426
765 | 201 202 89 345
766 | 201 216 91 350
767 | 202 187 81 199
768 | 202 201 94 304
769 | 202 203 88 229
770 | 202 217 94 342
771 | 203 188 86 303
772 | 203 202 92 488
773 | 203 204 93 481
774 | 203 218 100 314
775 | 204 189 97 440
776 | 204 203 80 313
777 | 204 205 84 347
778 | 204 219 100 234
779 | 205 190 93 518
780 | 205 204 92 378
781 | 205 206 91 511
782 | 205 220 89 517
783 | 206 191 80 282
784 | 206 205 85 378
785 | 206 207 85 251
786 | 206 221 91 278
787 | 207 192 94 312
788 | 207 206 82 439
789 | 207 208 97 360
790 | 207 222 95 290
791 | 208 193 94 310
792 | 208 207 83 316
793 | 208 209 95 226
794 | 208 223 83 510
795 | 209 194 84 192
796 | 209 208 85 215
797 | 209 210 98 512
798 | 209 224 94 232
799 | 210 195 84 488
800 | 210 209 100 396
801 | 210 225 93 214
802 | 211 196 99 340
803 | 211 212 84 380
804 | 212 197 83 531
805 | 212 211 83 341
806 | 212 213 80 512
807 | 213 198 87 270
808 | 213 212 80 373
809 | 213 214 98 211
810 | 214 199 82 438
811 | 214 213 82 405
812 | 214 215 100 301
813 | 215 200 83 181
814 | 215 214 92 330
815 | 215 216 100 468
816 | 216 201 84 494
817 | 216 215 80 423
818 | 216 217 93 161
819 | 217 202 88 441
820 | 217 216 95 511
821 | 217 218 93 358
822 | 218 203 96 524
823 | 218 217 96 463
824 | 218 219 80 434
825 | 219 204 91 365
826 | 219 218 95 544
827 | 219 220 93 392
828 | 220 205 94 529
829 | 220 219 87 364
830 | 220 221 100 530
831 | 221 206 95 372
832 | 221 220 99 198
833 | 221 222 82 511
834 | 222 207 96 423
835 | 222 221 94 338
836 | 222 223 82 381
837 | 223 208 94 184
838 | 223 222 81 486
839 | 223 224 80 156
840 | 224 209 100 165
841 | 224 223 93 502
842 | 224 225 89 527
843 | 225 210 92 318
844 | 225 224 99 172
845 | 75 84 16
846 | 155 1 87
847 | 195 20 88
848 | 87 115 40
849 | 76 163 42
850 | 72 150 45
851 | 100 16 38
852 | 189 31 33
853 | 73 32 40
854 | 80 132 26
855 | 7 33 18
856 | 165 71 68
857 | 64 155 31
858 | 59 166 47
859 | 175 126 96
860 | 148 127 97
861 | 171 66 29
862 | 6 222 80
863 | 22 165 95
864 | 219 125 23
865 | 80 45 21
866 | 9 67 98
867 | 190 218 79
868 | 18 94 19
869 | 58 68 26
870 | 56 75 46
871 | 34 137 57
872 | 30 147 12
873 | 59 84 72
874 | 85 163 24
875 | 152 127 75
876 | 143 221 81
877 | 105 5 76
878 | 92 202 32
879 | 143 141 49
880 | 127 82 18
881 | 221 194 13
882 | 173 55 85
883 | 117 59 76
884 | 165 216 79
885 | 191 7 42
886 | 184 104 59
887 | 116 73 19
888 | 77 73 73
889 | 91 40 53
890 | 147 191 62
891 | 167 158 50
892 | 80 216 69
893 | 79 175 68
894 | 41 46 19
895 | 119 3 14
896 | 137 4 55
897 | 128 22 66
898 | 46 169 73
899 | 115 105 53
900 | 5 82 36
901 | 42 179 45
902 | 142 48 61
903 | 184 138 90
904 | 192 205 47
905 | 218 101 55
906 | 108 117 95
907 | 36 24 87
908 | 82 78 58
909 | 119 17 21
910 | 192 47 68
911 | 17 23 27
912 | 198 40 42
913 | 93 200 85
914 | 110 3 24
915 | 17 121 92
916 | 118 65 98
917 | 129 70 21
918 | 25 159 20
919 | 23 189 67
920 | 155 181 95
921 | 62 134 75
922 | 37 158 75
923 | 200 71 77
924 | 108 130 61
925 | 219 224 76
926 | 34 109 78
927 | 158 180 64
928 | 47 10 96
929 | 31 185 67
930 | 42 77 96
931 | 19 174 96
932 | 45 168 99
933 | 150 94 20
934 | 214 111 27
935 | 220 138 19
936 | 205 65 81
937 | 175 68 88
938 | 156 17 42
939 | 219 10 77
940 | 161 7 15
941 | 13 118 38
942 | 89 22 52
943 | 219 128 21
944 | 67 62 69
945 |
--------------------------------------------------------------------------------