## **Short Overview**

The practical exercises for the lecture Optimization won't be programming exercises. Mostly you have to get familiar with an LP Solver, try to solve LPs and understand the results.

### Assessment

For each exercise you can score 3 Points:

3 Pts = program runs without errors

2 Pts = program contains small errors

1 Pts = program contains critical errors

0 Pts = no program submitted

There will be code reviews on each friday after the deadlines.

### Exercise 1: **MATLAB**

**Deadline: 17.12.2015, 8:00 a.m.**
### Exercise 2: **Flux Balance Analysis**

**Deadline: 14.1.2015, 8:00 p.m.**
Write a program that:

- reads in a metabolic network: A struct in a .mat file called "network" with:
- S: the stoichiometric matrix
- rev: the reversibility vector (rev(i) = 0: reaction i is not reversible, rev(i) = 1: reaction i is reversible)
- rxns: names of the reactions
- lb: lower bounds
- ub: upper bounds
- description: name of the network

- reads a second argument that is either BIOMASS or BLOCKED
- reads a third argument that is the output filename.
- depending on the given argument either:
- computes flux distribution that maximizes the biomass production and fulfills the steady state assumption. The network will contain a reaction named "Biomass" whose rate has to be maximized.
- determines for every reaction whether it is blocked or not.

- Output format:
- in BIOMASS mode:
- a cell (or a .txt file) with two columns where each row contains the reaction_id and the corresponding rate
- the first row contains the Biomass reaction, the remaining reactions are ordered according to their index

- in BLOCKED mode:
- a vector which contains the names of the blocked reactions
- they are ordered according to their index

- To download the zip file with the networks click here.

### Exercise 3: **n-Queens Problem**

**Deadline: 28.1.2016, 8:00 p.m.**
Write a program that solves the n-Queens Problem:

Place as much queens as possible on a n x n chess board such that no two queens interfere. Thus:

- In each vertical line …
- In each horizontal line …
- In each diagonal line …

… is only one queen allowed.

Use MATLAB and gurobi or glpk.

Write a function board = nQueens(n) that gives you a n x n matrix where the entries are 0 or 1. A 1 deontes that a queen was placed in the corresponding field.