COMP331/COMP557 Optimisation

Programming Assignment

Due date: Thursday, December 10th, 2020, noon, via SAM

(https://sam.csc.liv.ac.uk/COMP/Submissions.pl?strModule=COMP331 or

https://sam.csc.liv.ac.uk/COMP/Submissions.pl?strModule=COMP557)

This assignment is worth 10% of your grade.

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:

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 ∈ R

36 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

A height vector h ∈ R

36 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.

1/2

COMP331/COMP557 Optimisation

Here is an example of a mountain:

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 ∈ R

36 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) = X

node v

w(v) · h(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 R

15. 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.

2/2

版权所有：留学生程序辅导网 2019 All Rights Reserved 联系方式：QQ:99515681 电子信箱：99515681@qq.com

免责声明：本站部分内容从网络整理而来，只供参考！如有版权问题可联系本站删除。