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 |