Dateien nach "ILP/butadien" hochladen

This commit is contained in:
2026-09-09 11:08:33 +02:00
parent 03055f9946
commit 78465d3c67
+14 -7
View File
@@ -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)