Optimisation
We are given a triangular array of 36 nodes in the plane that are connected among each other as follows.
•
••
•••
••••
•••••
••••••
•••••••
••••••••
A small triangle is a set of three adjacent nodes. If two small triangles share two nodes, then they form a small rhombus. In each small rhombus, two nodes are at obtuse corners and two nodes are at acute corners:
acute
obtuse acute acute obtuse
• ••
obtuse
•
acute
•• •• •• ••
acute obtuse obtuse acute
obtuse
Each of the 36 nodes gets assigned a height, which is a real number. Hence, by linear interpolation between the nodes, a height vector h ∈ R36 gives rise to a triangulation of a surface in 3-dimensional space that on a small rhombus looks as the picture on the right.
We will only consider those height vectors that have fixed heights as follows on the nodes at the boundary:
Figure 1
7
0
9 16• • • •
• 6••
4 12• • •
11 19• • • • •
13 22• • • • • •
14 25• • • • • • •
15
A height vector h ∈ R36 is called mountain if for all small rhombi (in all three rotations) we have that the sum of the heights of the nodes at the obtuse corners is at least as high as the sum of the nodes at the acute corners.
••••••••
28 28 27 26 25 23 20
1/2
Optimisation
Here is an example of a mountain:
0
4
7
• 6••
1•0
1•3
The inequalities for all small rhombi are satisfied, for example 6+4 ≥ 10+0 and 10+4 ≥ 6+7 and 10+6 ≥ 12+4. A weighting w ∈ R36 is a vector of real numbers. For a given weighting w, the w-weight weightw(h) of a
mountain h is defined as
weightw(h) = w(v) · h(v). node v
For a given weighting w, a mountain h is called w-optimal if there is no other mountain with a higher w-weight.
The set of mountains whose heights at the boundary nodes are as illustrated in Figure 1 forms a polytope in R15. Your taks is to experimentally determine the number of the polytope’s vertices. This shall be done by choosing random linear objective functions and maximising them within the polytope.
1. Write a function (in any programming language) that picks a random weighting w and writes to the disk an .lp file whose optimal solution is a w-optimal mountain.
2. Write a program that calls the above function 1000 times to generate 1000 .lp files, calls glpsol on those files and analyses the output. After this analysis, the program should output the set of distinct mountains that were found.
3. For each mountain that was found, draw a picture analogous to Figure 2. Put them in a single .pdf file.
Submission format: Put the following into a single .zip file:
1. The program code.
2. The 1000 .lp files.
3. The .pdf file containing the figures of the mountains analogous to Figure 2.
Figure 2
12• 16•
•
9
15
1•5
•
19• 22•
•
•
2•2
1•9
2•1
25•
28 28 27 26 25 23 20
1•8
• ••••••••
2•0
1•5
1•7
11
13
14
2•5
2•4
2•3
2•2
1•9
2/2