1: // Argument:
|
2: // , a collection of cut sets for objective reaction |
3: // set J ⊂ N in system S ∈ ℝm × n
|
4: // Output:
|
5: // MCS, a collection of MCS for J
|
6: |
7: MCS, Done = empty collection |
8: for all sets H in collection do
|
9: ToDo = {H}; |
10: while ToDo is not empty do
|
11: = a lowest cardinality set from ToDo
|
12: //Apply LP based test to all |
13: //immediate subsets of to determine |
14: //which cut at least one flux in objective set J
|
15: = collection of size || - 1 subsets of that are also cut sets for objective set J in S
|
16: add to collection Done
|
17: if is empty then
|
18: add to collection MCS
|
19: else if contains one set then
|
20: add sole set in to MCS and Done
|
21: else
|
22: add sets in to ToDo
|
23: end if
|
24: Remove from ToDo super sets of any set in collection Done
|
25: end while
|
26: end for
|
27: return MCS
|