diff --git a/sheets/04_mip/README.md b/sheets/04_mip/README.md
index 3ac15177320f9b439ada815f831384fa0dfcdbbf..2c59bd7c02a6b64a8e524d6cdf08aec433e8ea32 100644
--- a/sheets/04_mip/README.md
+++ b/sheets/04_mip/README.md
@@ -65,4 +65,9 @@ to activate  it.
 
 ## Tasks
 
-
+* Modelliert statt des DBST das BTSP als Integer Program und implementiert einen Solver auf dieser Basis. Ihr könnt Euch dabei wieder an dem DBST-Beispiel orientieren; achtet allerdings darauf, dass die von Euch generierten Lazy Constraints so scharf wie möglich sind.
+* Modelliert auch die Variante des BTSP, bei der die kürzeste Tour gesucht wird, deren Bottleneck minimal ist, und implementiert einen Solver für diese Problemvariante.
+* Wie groß sind die Instanzen, die Ihr in der Regel noch in einer Minute bzw.\ in einer Viertelstunde lösen könnt? Wie schnell ist der IP-basierte Solver im Vergleich zum SAT-basierten und zum CP-basierten Solver? Wie viel länger dauert es, die Problemvariante zu lösen, bei der nach einer kürzesten Tour mit minimalem Bottleneck gesucht wird? Überlegt Euch, wie Ihr diese Fragen experimentell beantworten könnt, und wie Ihr die Ergebnisse Eurer Experimente graphisch (mithilfe von Plots) darstellen könnt.
+* Im Codebeispiel seht Ihr, dass Ihr nicht nur ganzzahlige Zwischenlösungen bekommen könnt, sondern im Callback auch Zugang zu den nicht-ganzzahligen (fraktionalen) Zwischenlösungen bekommt. Baut eine Option in Eure Solver ein, mit der Ihr die entstehenden fraktionalen Zwischenlösungen visualisieren könnt. Ihr könnt dazu beispielsweise jede Zwischenlösung in ein Bild exportieren. Stellt dabei am besten nur diejenigen Kanten dar, deren Entscheidungsvariablen größer als ein gewisser Minimalwert (z.\,B. $10^{-4}$) sind. Ihr könnt neben Labels an den Kanten dabei mit Transparenz oder Farben arbeiten, um den Wert der zugehörigen Variablen darzustellen.
+* Untersucht für ein paar kleine Beispiele die entstehenden Zwischenlösungen. Könnt ihr Bedingungen identifizieren, die sich als lineare Nebenbedingungen darstellen lassen, welche von allen zulässigen ganzzahligen Lösungen erfüllt werden, aber von vielen Eurer Zwischenlösungen nicht? Achtet dabei insbesondere darauf, dass der Solver nicht alle Constraints kennt und diese daher in vielen Zwischenlösungen nicht berücksichtigt werden können, bevor Ihr sie dem Solver gebt.
+* Falls Ihr solche Nebenbedingungen finden könnt, implementiert Routinen, die diese Nebenbedingungen finden und dem Solver zur Verfügung stellen. Diese Routinen sollten mit Optionen abschaltbar sein. Führt Experimente durch und untersucht, ob die Performance Eures Solvers sich mit diesen Nebenbedingungen verbessert. Versucht auch herauszufinden, mit welchen Optionen der Solver am besten funktioniert.