Dateien nach "ILP/butadien" hochladen
This commit is contained in:
@@ -126,7 +126,7 @@ EDGE3 = {}
|
|||||||
EDGEMAX = {}
|
EDGEMAX = {}
|
||||||
|
|
||||||
modes = ["Product", "Average"]
|
modes = ["Product", "Average"]
|
||||||
mode = modes[0]
|
mode = modes[0]
|
||||||
|
|
||||||
#print(round(np.prod([1, 0.9])))
|
#print(round(np.prod([1, 0.9])))
|
||||||
#Ordnet die Kantenwahrscheinlichkeit basierend auf dem Mittel oder Produkt der Wahrscheinlichkeiten der Produkte
|
#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)
|
EDGE2[edge] = round(np.prod([VERTICE2[head] for head in heads]),2)
|
||||||
EDGE3[edge] = round(np.prod([VERTICE3[head] for head in heads]),2)
|
EDGE3[edge] = round(np.prod([VERTICE3[head] for head in heads]),2)
|
||||||
elif mode == "Average":
|
elif mode == "Average":
|
||||||
print(tails)
|
|
||||||
EDGE1[edge] = round(sum(VERTICE1[head] for head in heads)/len(heads),2)
|
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)
|
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)
|
EDGE3[edge] = round(sum(VERTICE3[head] for head in heads)/len(heads),2)
|
||||||
|
|
||||||
EDGEMAX[edge] = max([EDGE1[edge], EDGE2[edge], EDGE3[edge]])
|
EDGEMAX[edge] = max([EDGE1[edge], EDGE2[edge], EDGE3[edge]])
|
||||||
print(EDGEMAX[edge], HYPERGRAPH[edge])
|
print(EDGEMAX[edge], HYPERGRAPH[edge])
|
||||||
#print(EDGEMAX[4])
|
print(EDGEMAX[4])
|
||||||
#print(EDGEMAX[42])
|
print(EDGEMAX[23])
|
||||||
|
print(EDGEMAX[42])
|
||||||
|
|
||||||
|
|
||||||
FIXED_FLOWS = {
|
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)
|
vertices = set(v for tails, heads in hyperedges.values() for v in tails + heads)
|
||||||
|
|
||||||
|
print(vertices)
|
||||||
#Every item created has to be consumed:
|
#Every item created has to be consumed:
|
||||||
'''
|
'''
|
||||||
for v in vertices:
|
for v in vertices:
|
||||||
@@ -219,7 +220,7 @@ def build_model(name, hyperedges, edgelikelihoodsmax, edgelikelihoods1, edgelike
|
|||||||
model.setObjectiveN(
|
model.setObjectiveN(
|
||||||
quicksum(enmax[e_id] * b[e_id] for e_id in hyperedges),
|
quicksum(enmax[e_id] * b[e_id] for e_id in hyperedges),
|
||||||
index = 0,
|
index = 0,
|
||||||
priority = 2,
|
priority = 2000,
|
||||||
name = "maximize_nmr_similarity",
|
name = "maximize_nmr_similarity",
|
||||||
)
|
)
|
||||||
#Minimize the overall flow
|
#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)
|
#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:
|
#2 Butadien create first different molecule and it has to be created first:
|
||||||
model.addConstr(b[4] + b[7] == 1)
|
startmolecule = ["Butadien"]
|
||||||
model.addConstr(b[213] == 1)
|
|
||||||
|
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)
|
#model.addConstr(b[41] == 1)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user