diff --git a/optimierung_pymoo.ipynb b/optimierung_pymoo.ipynb index 038e8f959fdc6c1f88168e054de35b324df18506..823c93744a112020eb4fa818177a6f480be23fbf 100644 --- a/optimierung_pymoo.ipynb +++ b/optimierung_pymoo.ipynb @@ -219,7 +219,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -260,13 +260,14 @@ " ) for i in modell.pumps)\n", "modell.Power_Objective = pyo.Objective(rule=PumpPower,sense=pyo.minimize)\n", "def PumpFlow(modell,pump):\n", - " pump=np.dot(np.array([modell.Q[pump]**2,modell.n[pump]*modell.Q[pump],modell.n[pump]**2]),LR_H.coef_)\n", - " return pump>=sum(modell.Q_valve[node] for node in graph.successors(pump) if node in modell.valves)+sum(modell.Q[n] for n in graph.successors(node) if node in modell.pumps)\n", - "#modell.Flow_Objective = pyo.Objective(rule=PumpFlow,sense=pyo.as_boolean)\n", + " return np.dot(np.array([modell.Q[pump]**2,modell.n[pump]*modell.Q[pump],modell.n[pump]**2]),LR_H.coef_)\n", + "def Flow_req(modell,p):\n", + " return PumpFlow(modell,p) - pyo.summation(modell.Q,index=graph.successors(p))\n", + "modell.Flow_Objective = pyo.Objective(modell.pumps,rule=Flow_req,sense=pyo.minimize)\n", "\n", "#Constaints\n", "def continuityRule(modell,node):\n", - " return sum(modell.Q[i] for i in graph.predecessors(node))==sum(modell.Q[j] for j in graph.successors(node))\n", + " return pyo.summation(modell.Q, index=graph.predecessors(node))==pyo.summation(modell.Q, index=graph.successors(node))\n", "#alternative\n", "def continuityRule2(modell,node):\n", " return 0.==sum(graph[node][i][0]['weight'] for i in graph[node])\n", @@ -303,7 +304,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [