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": [