From 78465d3c6745cf69a8c4d72678a5874c238a9fe1 Mon Sep 17 00:00:00 2001 From: kilian Date: Wed, 9 Sep 2026 11:08:33 +0200 Subject: [PATCH] Dateien nach "ILP/butadien" hochladen --- ILP/butadien/butadiensynthesis.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/ILP/butadien/butadiensynthesis.py b/ILP/butadien/butadiensynthesis.py index 9f8ce38..ce29599 100644 --- a/ILP/butadien/butadiensynthesis.py +++ b/ILP/butadien/butadiensynthesis.py @@ -126,7 +126,7 @@ EDGE3 = {} EDGEMAX = {} modes = ["Product", "Average"] -mode = modes[0] +mode = modes[0] #print(round(np.prod([1, 0.9]))) #Ordnet die Kantenwahrscheinlichkeit basierend auf dem Mittel oder Produkt der Wahrscheinlichkeiten der Produkte @@ -142,15 +142,15 @@ for edge, (tails, heads) in HYPERGRAPH.items(): EDGE2[edge] = round(np.prod([VERTICE2[head] for head in heads]),2) EDGE3[edge] = round(np.prod([VERTICE3[head] for head in heads]),2) elif mode == "Average": - print(tails) EDGE1[edge] = round(sum(VERTICE1[head] for head in heads)/len(heads),2) EDGE2[edge] = round(sum(VERTICE2[head] for head in heads)/len(heads),2) EDGE3[edge] = round(sum(VERTICE3[head] for head in heads)/len(heads),2) EDGEMAX[edge] = max([EDGE1[edge], EDGE2[edge], EDGE3[edge]]) print(EDGEMAX[edge], HYPERGRAPH[edge]) -#print(EDGEMAX[4]) -#print(EDGEMAX[42]) +print(EDGEMAX[4]) +print(EDGEMAX[23]) +print(EDGEMAX[42]) FIXED_FLOWS = { @@ -182,6 +182,7 @@ def build_model(name, hyperedges, edgelikelihoodsmax, edgelikelihoods1, edgelike vertices = set(v for tails, heads in hyperedges.values() for v in tails + heads) + print(vertices) #Every item created has to be consumed: ''' for v in vertices: @@ -219,7 +220,7 @@ def build_model(name, hyperedges, edgelikelihoodsmax, edgelikelihoods1, edgelike model.setObjectiveN( quicksum(enmax[e_id] * b[e_id] for e_id in hyperedges), index = 0, - priority = 2, + priority = 2000, name = "maximize_nmr_similarity", ) #Minimize the overall flow @@ -236,8 +237,14 @@ def build_model(name, hyperedges, edgelikelihoodsmax, edgelikelihoods1, edgelike #model.addConstr(quicksum(x[e_id] for e_id in hyperedges) <= 16) #2 Butadien create first different molecule and it has to be created first: - model.addConstr(b[4] + b[7] == 1) - model.addConstr(b[213] == 1) + startmolecule = ["Butadien"] + + model.addConstr(quicksum(b[e_id] for e_id, (tails, _) in hyperedges.items() if list(set(tails)) == startmolecule) == 1) + #model.addConstr(b[4] + b[7] == 1) + + model.addConstr(quicksum(b[e_id] for e_id, (tails, heads) in hyperedges.items() if tails == [] and heads == startmolecule)== 1) + #model.addConstr(b[213] == 1) + #model.addConstr(b[41] == 1)