Python代写｜Optimization theory and applications assessed assignment 1: linear programming
1. The Objective: the objective of this assignment is to devise a software
package in MATLAB or Python which would be used to solve arbitrary
linear programming (LP) problems. This package will have an input file
which encodes the linear programming task under consideration, and two
output files: one giving the individual steps of the computation, such as the
pivoting steps of the Simplex method, and a second file giving the solution
found. In the second part of this coursework you will research and consider a
linear programming task of your own construction and use your LP software
package to solve this LP task.
(1) The source code for your LP solver package (e.g. linprog.py).
(2) An example input file (input.txt) which should be initialised with the
example on page 26 section 2.11 of the course notes.
(3) An output file called log.txt which gives the internal working steps of
the method, specifically listing the tableau entries or steps involved in
(4) An output file called solution.txt which gives the solution, with possi
bly extra text clearly indicating which variable is which and the values
of any slack or surplus variables.
(5) A Readme.txt file which gives extra information as to how to run
your program, how to alter input.txt, and interpret the log.txt and
(6) A separate document labelled researchproject.pdf which describes
your chosen mini research project involving linear programming. This
latter document will clearly state the task considered, how you solved
it, and the results you achieved.
These various components of the coursework are described in more detail
Comment: there is code for solving linear programming problems on the
Web. I will run the MOSS software comparison package against known code
sources. If you do use source code from the Web, you are protected from
any charge of plagiarism by citing the code, preferably both as a comment
in your source code, and as a statement in the Readme.txt. However, it is
worth noting that you do not get any marks by using somebody elses code!
It is best to devise your own software! Some aspects of the proposed package
use Gaussian elimination methods, so you may want to have a look at how
this type of computation with matrices is pursued elsewhere.
2. The mark distribution and assessment of the coursework
The program should be initialised in terms of the input file with the problem
stated as example on page 26 section 2.11 of the course notes. This is how
you present your program but it must be possible to adapt the input file
and easily switch to a new linear programming task to check the validity of
your program. Your input program will therefore have a parameter giving
the number of variables used, and the numbers of constraint equations, in
addition to giving the coefficients in the objective function and the coefficients
and other numbers in the linear constraints. For myself I have often used
an ASCII text input file with a stack of numbers, giving this information,
the number of variables, the number of constraint equations, the objective
function and numbers in the constraints. I then leave a few blank rows and
have a text annotation describing the various numbers in the top part of the
input file. For the two output files, I will leave it to you to devise your own
format, but it would also be in the form of a array of numbers with text
descriptions of the pivotings and possible text towards the bottom of the
output file describing and the interpreting the output.