* I read parts of the literature added to the repo and tried to figure out if there are other inequalities which define the connectivity which may be applyable to the problem. Or if there are other techniques which can improve the runtime but still use the vertex separators as connectivity defining inequalities.

# Week 2

## Python

### Implementation

* I implemented a callback function to be used if an (unconnected) integer solution is found. Previously I called model.optimize() each time some lazy constraints were added which caused a horrible runtime.

* I implemented different additional constraints to reduce the runtime.

### runtime

* After using the callback function it takes ~103s to solve the bigger-leaf graph with parameter k = 2.

* When using the constraint from _Thinning out Steiner trees: a node-based model for uniform edge costs_ it takes ~5 s.

* As this constraint is not applyable I added another constraint which is "inspired" by the previous constraint. After implementing this constraint solving the bigger-leaf with k = 2 took ~80s.

* Then I tried to add vertex separator constraints before starting the optimization process to see in what manner the runtime is affected.

** Actually the runtime is reduced by this approach in a significant amount. And as more constraints you add the faster the problem is solved.

** I used constraints where I assumed that they would be added anyway in the iteration process. (separators which separate sets of vertices and the root)

** One thing which could be observed was that the runtime shows a correlation between the number of constraints which still had to be added in the iteration process and the runtime.

** But the ASP version was still a lot faster.

* I also implemented another type of inequalities to induce connectivity. Unfortunately this type of inequalites does not induce connectivity on graphs that are not acyclic. So they can not be used without the other inequalities. When used together the runtime is not reduced.

* I documented my observations via screenshots and wrote them into a table.

## thesis

* I wrote a paragraph which introduces ILP

## literature

* I wrote following paper where I had taken the indegree inqualities from: _On imposing connectivity constraints in integer programs_

** This paper references several other papers which deal with the topic. So I've also read the following _An Integer Programming Approach for Fault-Tolerant Connected Dominating Sets_. But they also used the vertex-separator constraints and a lazy approach.

** Their results quite good. So I guess it also makes sense to make some research how the graphs they used "looked like" and what characteristics they had that our graphs not have.