• Nie Znaleziono Wyników

G. Plebanek Mathematical programming and optimization Spring semester 2020/21 Mathematical programming

N/A
N/A
Protected

Academic year: 2021

Share "G. Plebanek Mathematical programming and optimization Spring semester 2020/21 Mathematical programming"

Copied!
1
0
0

Pełen tekst

(1)

G. Plebanek Mathematical programming and optimization

Spring semester 2020/21

Mathematical programming1 is a part of mathematics dealing with the theory and methods of solving problems directly related to practical real-life questions. Typically, such problems have the form

Find the minimum of a given function f : A → R.

Depending on the nature of the set A and the function in question, various mathematical techniques can be applied to design an algorithmic procedure leading to the solution.

The present lecture will focus on linear programming (in which A is a polyhedron in an Euclidean space and f is a linear function) and discrete programming (where the set A is finite but so big that it is practically impossible to compare all the values f (x)).

Outline

1. Introduction: optimization problems and methods.

2. The simplex algorithm (the theory and a concrete implementation).

3. Duality theory.

4. Examples of integer programming problems and methods.

5. Basic network problems (including the minimal spanning tree, the shortest path algori- thms, the transportation problem).

6. Network flows problems.

7. The knapsack problem.

Basic references

(a) D. Bertsimas, J. Tsitsiklis, Introduction to linear optimalization, Athena Scientific (1997).

(b) G. Sheithauer, Introduction to cutting and packing optimization, Springer (2018).

(c) D. Bertsimas, Introduction to Mathematical Programming, lecture notes available at MitOpenCourseWare

(d) M. Uetz, Discrete optimization, course available athis webpage.

1not to be confused with computer programming

Cytaty

Powiązane dokumenty

(3) set a dedicated pointer (killer) to the last node using the address in the next pointer of the node pointed to by tmp (or the head pointer if tmp is empty, or the tail pointer

● during instantiation of a template with a specific type, the compiler replaces each instance of a parametric type with the specified type and compiles the data structure

(1) set the pred pointer on the node preceding the deleted node, and succ on the node to be removed (if there is no node we are looking for, throw an exception or abort the

(1) create two auxiliary pointers: set pred to an empty address, and succ on to the address of the first node (head) and pass the auxiliary pointers towards the end of the list

(1) by comparing values, go from root to children and set the pred pointer on the parent node to be removed, and succ on the node to be removed (if there is no node we are looking

(1) invoke two auxiliary pointers set on the adjacent nodes pred and succ (assume that the pointers next in the preceding nodes pointed to by succ are already inverted, succ is

● input/output streams: iostream, fstream, sstream, iomanip. ● string

● sequence container – double-ended queue, dynamic array using non- contiguous storage, a list of arrays. ● fast addition/removal at the beginning and at the end of