One Objective with high weight, Prints for edges and compounds used in example for presentation
This commit is contained in:
@@ -141,6 +141,7 @@ def build_model(name, hyperedges, elmax, el1, el2, el3, excluded_support=None):
|
|||||||
|
|
||||||
#Multiply edgelikelihood with the edge use boolean
|
#Multiply edgelikelihood with the edge use boolean
|
||||||
#Adapt to have
|
#Adapt to have
|
||||||
|
'''
|
||||||
model.setObjectiveN(
|
model.setObjectiveN(
|
||||||
quicksum(elmax[e_id] * b[e_id] for e_id in hyperedges),
|
quicksum(elmax[e_id] * b[e_id] for e_id in hyperedges),
|
||||||
index = 0,
|
index = 0,
|
||||||
@@ -154,6 +155,8 @@ def build_model(name, hyperedges, elmax, el1, el2, el3, excluded_support=None):
|
|||||||
priority= 1,
|
priority= 1,
|
||||||
name="minimize_used_hyperedges",
|
name="minimize_used_hyperedges",
|
||||||
)
|
)
|
||||||
|
'''
|
||||||
|
model.setObjective(quicksum(1000 * elmax[e_id] * b[e_id] - x[e_id] for e_id in hyperedges),GRB.MAXIMIZE)
|
||||||
|
|
||||||
#Excluding creation and destruction only three reactions for three nmr
|
#Excluding creation and destruction only three reactions for three nmr
|
||||||
model.addConstr(quicksum(b[e_id] for e_id, (tails, heads) in hyperedges.items() if tails != [] and heads != []) == 3)
|
model.addConstr(quicksum(b[e_id] for e_id, (tails, heads) in hyperedges.items() if tails != [] and heads != []) == 3)
|
||||||
@@ -163,7 +166,8 @@ def build_model(name, hyperedges, elmax, el1, el2, el3, excluded_support=None):
|
|||||||
#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:
|
||||||
startmolecule = ["Butadien"]
|
startmolecule = ["Butadien"]
|
||||||
|
|
||||||
#model.addConstr(quicksum(b[e_id] for e_id, (tails, _) in hyperedges.items() if list(set(tails)) == startmolecule) == 1)
|
#Including it or not changes first and second solution (sometimes flipped)
|
||||||
|
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(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(quicksum(b[e_id] for e_id, (tails, heads) in hyperedges.items() if tails == [] and heads == startmolecule)== 1)
|
||||||
@@ -215,19 +219,18 @@ def main():
|
|||||||
|
|
||||||
#Chosable parameters
|
#Chosable parameters
|
||||||
modes = ["Product", "Average"]
|
modes = ["Product", "Average"]
|
||||||
mode = modes[1]
|
mode = modes[0]
|
||||||
normalize = True
|
normalize = False
|
||||||
|
|
||||||
if normalize:
|
if normalize:
|
||||||
print("test")
|
|
||||||
NMR1 = [round(l/sum(NMR1), 2) for l in NMR1]
|
NMR1 = [round(l/sum(NMR1), 2) for l in NMR1]
|
||||||
NMR2 = [round(l/sum(NMR2), 2) for l in NMR2]
|
NMR2 = [round(l/sum(NMR2), 2) for l in NMR2]
|
||||||
NMR3 = [round(l/sum(NMR3), 2) for l in NMR3]
|
NMR3 = [round(l/sum(NMR3), 2) for l in NMR3]
|
||||||
print(NMR1)
|
#print(NMR1)
|
||||||
print(NMR2)
|
#print(NMR2)
|
||||||
print(NMR3)
|
#print(NMR3)
|
||||||
|
|
||||||
|
|
||||||
return
|
|
||||||
#Kombiniert Molekül it Wahrscheinlichkeit für NMR1:
|
#Kombiniert Molekül it Wahrscheinlichkeit für NMR1:
|
||||||
VERTICE1 = {}
|
VERTICE1 = {}
|
||||||
for vertice, likelihood in zip(VERTICES, NMR1):
|
for vertice, likelihood in zip(VERTICES, NMR1):
|
||||||
@@ -269,10 +272,23 @@ def main():
|
|||||||
|
|
||||||
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[23])
|
|
||||||
#print(EDGEMAX[42])
|
|
||||||
|
|
||||||
|
'''
|
||||||
|
#Vertices from example:
|
||||||
|
verticelist = [0,1,2,3,4,5,11,12]
|
||||||
|
print([VERTICES[a] for a in verticelist])
|
||||||
|
print([NMR1[a] for a in verticelist])
|
||||||
|
print([NMR2[a] for a in verticelist])
|
||||||
|
print([NMR3[a] for a in verticelist])
|
||||||
|
#Edges from example
|
||||||
|
print(EDGEMAX[4], HYPERGRAPH[4])
|
||||||
|
print(EDGEMAX[7], HYPERGRAPH[7])
|
||||||
|
print(EDGEMAX[13], HYPERGRAPH[13])
|
||||||
|
print(EDGEMAX[23], HYPERGRAPH[23])
|
||||||
|
print(EDGEMAX[37], HYPERGRAPH[37])
|
||||||
|
print(EDGEMAX[42], HYPERGRAPH[42])
|
||||||
|
print(EDGEMAX[67], HYPERGRAPH[67])
|
||||||
|
'''
|
||||||
|
|
||||||
model, x, b = build_model("HypergraphFlow", HYPERGRAPH, EDGEMAX, EDGE1, EDGE2, EDGE3)
|
model, x, b = build_model("HypergraphFlow", HYPERGRAPH, EDGEMAX, EDGE1, EDGE2, EDGE3)
|
||||||
model.optimize()
|
model.optimize()
|
||||||
|
|||||||
Reference in New Issue
Block a user