Aufgabe 5, Gruppe 2 (Melanie): Beschleunigung der FCA aus Aufgabe 3
Deadline: Mittwoch, 08.04.2015
Schreibe ein Programm, dass:
- das das gleiche tut, wie das in Aufgabe 3 (FCA), nur schneller:
- Entferne zuerst die blockierten Reaktionen aus dem Netzwerk
- Finde danach die trivial gekoppelten Reaktionen
- Setze nicht die Reaktionen in der stöchimetrischen Matrix auf 0, sondern die Bounds des Flussvektors.
- Vermeide alle unnötigen Kombinationen an Reaktionen (falls der l-te Eintrag von result.x ungleich Null ist, und v_i = 0 gesetzt wurde, kann l nicht gerichtet gekoppelt an i sein.)
- Ob zwei Reaktionen voll gekoppelt sind, muss nicht extra berechnet werden, dies kann daran abgelesen werden, dass i gerichtet gekoppelt an j ist und das j gerichtet gekoppelt an i ist.
- Wenn j gerichtet gekoppelt an i ist und l gerichtet gekoppelt an j ist, dann ist auch l gerichtet gekoppelt an i. Dies braucht nicht extra berechnet werden.
- Erstelle neben dem Programm eine Laufzeitanalyse (des vorherigen Programms und des neuen Programms) für zwei der Netzwerke. Achte desweiteren darauf, dass die gleichen Kopplungen gefunden werden.
- Fragt den User des Programms, ob die blockierten Reaktionen des Netzwerks entfernt werden sollen, oder ob dies schon getan wurde.
Link zum Artikel. Es müssen nur die Beschleunigungen umgesetzt werden, die in der Aufgabenstellung beschrieben sind.