Beispielszenario: Kostenoptimierung
Optimierung der Kosten für die Nahrungsmittelzusammensetzung
Seien \(x_1\) und \(x_2\) die Menge an Nahrungsmitteln 1 und 2, die wir kaufen. Die Kosten für Nahrungsmittel 1 und 2 betragen 1 und 2 Euro pro Einheit. Die täglichen Ernährungsbedürfnisse sind 10 Einheiten Protein und 20 Einheiten Fett. Nahrungsmittel 1 enthält 2 Einheiten Protein und 3 Einheiten Fett pro Einheit. Nahrungsmittel 2 enthält 1 Einheit Protein und 4 Einheiten Fett pro Einheit.
Zielfunktion (objective function oder einfach nur objective)
\begin{equation*}
\text{minimiere }x_1 \cdot 1\text{€} + x_2 \cdot 2\text{€}
\end{equation*}
(unter den) Nebenbedingungen (constraints/subject to (s.t.))
\begin{equation*}
\begin{array}{rcll}
2 \cdot x_1 + 1 \cdot x_2 & \geq & 10 & \text{Nebenbedingung bzgl. Protein}\\
3 \cdot x_1 + 4 \cdot x_2 & \geq & 20 & \text{Nebenbedingung bzgl. Fett}\\
x_1, x_2 & \geq & 0 &\\
\end{array}
\end{equation*}
Lineare Programmierung
Das Ziel ist die Optimierung (Maximierung/Minimierung) einer linearen Funktion \(f\):
\begin{equation*}
f(x_1,\ldots,x_n) = a_1 \cdot x_1 + a_2 \cdot x_2 + \ldots + a_n \cdot x_n = \sum_{i=1}^{n} a_i \cdot x_i
\end{equation*}
Unter einer Menge von linearen Nebenbedingungen. Sei \(b \in \mathbb{R}\), dann ist ...
eine lineare Ungleichung der Form: \(f(x_1,\ldots,x_n) \leq b\)
eine lineare Gleichung der Form: \(f(x_1,\ldots,x_n) = b\)
lineare Ungleichungen und Gleichungen beschreiben die linearen Nebenbedingungen.
Übung
Formulierung eines linearen Programms
In einem Betrieb mit mehrschichtiger Arbeitszeit besteht folgender Mindestbedarf an Personal:
von 0 bis 4 Uhr: 3 Personen
von 4 bis 8 Uhr: 8 Personen
von 8 bis 12 Uhr: 10 Personen
von 12 bis 16 Uhr: 8 Personen
von 16 bis 20 Uhr: 14 Personen
von 20 bis 24 Uhr: 5 Personen
Der Arbeitsbeginn ist jeweils um 0, 4, 8, 12, 16 bzw. 20 Uhr. Die Arbeitszeit beträgt stets 8 Stunden hintereinander. Formulieren Sie ein lineares Program, um einen Einsatzplan mit minimalem Gesamtpersonalbedarf aufzustellen.
MTAwMDAw:7fyVtyrn1Gox8bjFqix4yFXsfwMRwerR0rbz+GM3DG4=:GWmK9r3VfyC1P9AE:NbEBhuo7wwaFDvWI+njlXI9j4bxZZp3SrxEGUF7f13wqwf//5Kd8jSpwFw1b6szKgWAhVdyO1bAjkPq4nbzm+WCdOiMLAr0n+Rirq03ACCd1Ttrbsn/pUgEu7l0N0W0IqkVSqPVHSklav1+osj45Rya8fj636AZfr4ULuDYzVFQhWcv0ubdr8brSbl8ooZgUu774hAkTCpiQp+baAo23FqpaaTarVLtjBWcihzfHTgkp92Gp1XKsUM0trT3sxGmPt1qtOR2aGGehBBErghJV4x/VRGiNPIzCjmjege5/WdRsENrCzrqz6qw/axC8CoZ0mvx+Kfks9b4nd/QmY/4/oiYiZZbMqwlFxqWRgwa+KypB1SYQy6vRTeH8yCq0oBLx6MdIQ684ySRZgTwAtDa+MTww05FC7H6aoe5jXzIYYG4zSNWIGC1Ms25kI/PWOrNc6Wd4E5IcESajppn5ljmQOcwwhdNNso7gBmwppZgkriqWhXqCGbcMgk8Yfbj7LbnI5wPwoMi91QGHZFyjEEXB1ouErI7hBndV4NTEsKBsmN51ycpHbdP6SDrAn1uXu+/7JnVMUGH6BWbYlneplmoCXqzRSeMorVpctOXXsjqk5bDIiEw97FNA0HisYLb7UfUzIi0LwAVFuYGmDeNIhhZGX24YRFEWARAJxHY30MhhEJDn/TeWI2KYlLCC2u7x8Bb35l2MFeipF9fXUcFaoq28No/OOM7TlCY7mXPESbC/NZxAtE1NgSr9AJiuJ15bghsWZ9UZguCfyHSgAeR4IddNRIaKpCA5tSgsv+kxXHxLgOBY6XUMvXRUdRHL1f0JC+HcmiibA1B4UQRhveUmuzbWq6IUkjT7VlTtG8aIwbn25XkD9FoxveXV4y1x/2fdcn0d4AzPXScH77sIaZmHXNCGGlDACX4MbQRhrkAaJacsA2M6i6A0U1qYdwXidLJ3ZCnxBSKMxjT/8RQn/xWmiFUq4DDJHQ4jn3yEiz6kyddS3+wp4f5K5luhXvC9Z3kqZzeg67UWV/L5lLvgGQ8t0P4DDB7EuYd/NYGM0u+qTVNkbdZfrSY8BkW0ArAd6oyrfIkhMik1ZfxRQdfF1KKf0BuPJVWvkRSmA4QUdfL7s9OtNVUARLekEjzQsZJtcUVARl1rmbUVILYWRUMYVtK3z63MjLjn7pJL2FJdP/f6MJOfSwG3/m4tVwhOjCqzVHtmoFVjzQlmWdXLHSFXUFa8LIUltruatupcnWlv/CJ+uiu0fY59x1nfPsLK6BsxapJk9ji6qWwZ8aZwO/E5z8FyAks8B2EZXgMMzco5SQpLTOIThyWkd2Xu7faoLLInBrKUbbG/h26Qllj8vZBDfL/0fIcbfPJEcVQW/l2F9EwsdRhAFiZ5p3Vd6fpRhT5JfLHWLT1G
Übung
Berechnung des maximalen Fluss (Maximum-Flow-Problem)
Formulieren Sie ein lineares Programm zur Bestimmung des maximalen Flusses von einer Quelle \(s\) zu einer Senke \(t\) in einem Netzwerk mit \(V\) Knoten. (Die Funktion) \(f_{uv}\) sei der Fluss zwischen zwei Knoten \(u\) und \(v\). Nebenbedingungen:
- Kapazitätsbeschränkung:
Der Fluss \(f_{uv}\) auf einer Kante darf die Kapazität (\(c(u,v)\)) der Kante nicht überschreiten.
- Flusserhaltung:
Für jeden Knoten (außer Quelle und Senke) gilt, dass der zufließende Fluss gleich dem abfließenden Fluss ist.
- Richtungsabhängigkeit:
Der Fluss ist gerichtet (von einem Knoten zum anderen).
Sie können die vereinfachende Annahme machen, dass die Summe der Zuflüsse zur Quelle \(0\) ist (\(\sum_{v\in V} f_{vs} = 0\)); dass die Quelle keine eingehenden Kanten hat. Weiterhin sei die Kapazität zwischen zwei nicht-verbundenen Knoten \(0\).
MTAwMDAw:rFO5cByzccs7grrXMe1pv+8EhuSmCCzK/napH929EL0=:LZQ84vLVpoIL3rIC:fqdi7HoWSBDUeV4jWRaYYQNRRCX/kgCLiLRw8TJv8WoCd1wEYNjhdx4wsupLTUWdAFdnvKpaa8h3zvD9E+qoB3kzpEM4iiKaIIR9+QPQnSIjuMN2IqNOVrRz12BzSlyGZtZPJB3bC9QCPPiRWaKtR3DDcTkI4EOOFvwy40nldOS0lLMazRYZOFYBB9IygYAydYowamH8zeFU6MivZScQIiA1d/rnCkqK7g2FIMM7Ji0uhld5PEs1LjAB51rBPFvPISemUjlfOQphUOe3Ql20wn1zLGBxOmJrJuxS1535J8IRhLHNI4Axvz/uuMOP1dqlDGCJnSM5NMCFSjKLBoWqZaGRVIr++I4uwiU+ljlcaLTEsF4X2h/6KPyK/oJU/CGCYytWXXTshwZkqftum6y58spD39Bqqc9BpYq1Ctumbw8VqDfa7/OMWp/ci5daGRpD3L1g1a2qT49TiBMZQ45REFrtFE/IF82BpXM9cdeGOpwnmpmqXBvCRt7JN9GYttqJ2lOQpN01X+XBD0ogGnczguJbBMgQUgXyORUIFWv9ShEsj0+0Dxd9npslPE4NGv1lkK1fJGZ+ThIQH6S7Vd/WeVVbcODWzyovPjmI5PEnhRpcwA==
Beispiel
Netzwerk mit Kapazitäten:
Eine (nicht notwendigerweise optimale) Lösung, die die Nebenbedingungen erfüllt:
Im Allgemeinen gilt
Das Netzwerk ist modelliert als gerichteter Graph \(G = (V,E\)) ohne Eigenschleifen und ohne antiparallele Kanten (d. h. \((v,u) \in E \Rightarrow (u,v) \notin E\)). Jeder Kante \((u,v) \in E\) ist eine nicht-negative Kapazität \(c(u,v) \geq 0\) zugeordnet.
Sei \((u,v) \notin E\), dann ist \(c(u,v) = 0\).
Empfohlene Vorgehensweise
Bestimmen Sie die Zielfunktion in Hinblick auf den Fluss bzw. der Variablen, die den Fluss repräsentieren.
Formulieren Sie die Nebenbedingungen:
in Hinblick auf die darauf, dass der Fluss über eine Kante nie negativ sein darf
in Bezug auf die Kanten und die Kapazitäten
in Bezug auf die Kapazitätserhaltung
Übung
Überführen Sie das lineare Programm in Standardform.
\begin{equation*}
\begin{array}{rrcrcl}
\text{minimiere} & -2x_1 & +& 3x_2 & \\
\text{unter den Nebenbedingungen} & x_1 & + & x_2 & = & 7 \\
& x_1 &-& 2x_2 & \leq & 4 \\
& x_1 & & & \geq & 0
\end{array}
\end{equation*}
MTAwMDAw:25UKZDuDua9wUjMPCXXW0yOcn6+1/5+ZdDnmXxi+u6E=:gwAo6Ph29z9He29G:vRrh2q4fkpsP7nXrXT0ncpk5Qon/QGgre7z7nQCCCWT8OWznH7JQ842KlbB8f9KI0p43g/zKIxMc6nD6WNXhU7PxD/8c7yJqwlQdNTStp114IFc/4YvnhMWhj6ZnI9YlPEObSCr0/wgqObNU3UrlXvl7cMMJV2AIZQQYYgYRqXYz7GDPnuFzCLKMAu/EyWGlSGQjVtW/MM93JlAOfPNXc5H3myk68UYeMVevejVA+Ou8G+KaLS+lM50cr1rFsbTmz+6W6oAQasFKx0+jWvToyHLr5jVwnB5eUjp117l1xcfEnIAkesDfSBxiiiS7UVUeqqdzsQt1vGGW+4FdSaieI+RwXRSiO49ymfstsu1h8vHhVIwPtVTGVRQcoB/jVopHmVm6Z8iGBAwOdC83NFu618hrRiMShKbbWYJhC0vwE8ClL1AyTT347c3r+zHTBHc3SEKd/XPGpb6b2xQsdhPFAlCJwBOnFCJPRiY5AlSEfSbgKbODd1lqvjEIDez4SRZo5v3N/yojF4SyGOheCGLLkQgAkrRa8U2P23dwq0akdaAUM3xrh4zx5KOTSMXz3iM9PTBOc/cdFnhIlBBw3rbgsE40gcthh8/TfjWB/ssFYnn/IBsm4RAbGjLs/ioYJ3TSdIsbqTC8dIoinDIpJC2hb5l7yhyq7fkezsAfo+tlKl48g7cBKLCwoatKpbv1yh4wppMzm9yq1h1gYeJXKojsT6KGVadKwZq9QZt/7DGJEHD1H9RWjVKJLD8xMfhfIu8v1TFdJ+j+nZ3WjQioGRA234WcTsff7oAwO0wyTLOyDp2pFOygpadd2AiuDyBw1r8b6CE+kQoqvXInv4V4m6i07NZ8NOsxdI7pTv1sVuI8rUwgGve5YPHFNg2UTIAdOkZ3pqfgw593t/tz0OsXGnQRKZB7DOuW4WfMo2HAVAJGgvdWiTfvzT/3ZaLU/XksyF+g2w9Fd0g6O663r73We8qFGsyauAMSXA==
Zeigen Sie, das das folgende lineare Programm unzulässig ist.
\begin{equation*}
\begin{array}{rrcrcr}
\text{maximiere} & 3x_1 & - & 2x_2 & \\
\text{unter den Nebenbedingungen} & x_1 & + & x_2 & \leq & 2 \\
& -2x_1 & - & 2x_2 & \leq & -10 \\
& & & x_1 & \geq & 0 \\
& & & x_2 & \geq & 0
\end{array}
\end{equation*}
MTAwMDAw:EkkLUxPJSdmQDdpQPKcAen9iEao/b1H2KX1Y5JqKSuc=:3dbXNNtbH/RY3379:5W7CC2cmbY9kY6HYXUjRlLE09TpK/ouaQLNlQkzQkY4/li/LG939rpp9PRrv5fHILXrzeiomt7sh0VSGR0ROy8r5AJGHGX5JiktcGpcXYpRURNsyVvgjgO6E9ArP/kQRgFw9p52NQr1ANVvlx748DWPT3aWmm2YDIfBD9/0Q5hMGJqohVrL10TGuKDw83jSY2C10wDFZOZSYEwMm91/uNgEn8NW0h3V7BNfvST/Ae8n/de1LErfKCOb2eYWEl+zUjbQkj//N9lj34OrWayr9d4yztnwy1pimxsRd5RCIdJNZp26u2fKekDV0v8Zcpa6rdceg49+3Xbrdi+HX/vOOludmWDRpblH+ZE5A3YM82AyO8hxNn028EPmyoRqrWF+p+QbFxV2oayAp2jJJMZmdb48ob7j7bg97oT6mFBgecrLK7PWY6qbKjT3/jGntJQpiybnnoALL1Y5kbHrwtHXrljIsfqAhxvoGVeX7kTF9mlktek5WjP+GpCePSSHh+0+eGbBs6S+0iaTzIuqjT+hXbFThqvnZ6OJTRyR5/AgKuvmy8aUiwdO9+MiA/Z2Xw7KVYz6+
Übung
Überführen eines linearen Programms in Schlupfform
Überführen Sie das 1. lineare Programm aus der vorhergehenden Übung in Schlupfform.
Bauen Sie ggf. auf den Ergebnissen der vorhergehenden Aufgabe auf.
MTAwMDAw:9CsjapSO+4uyheJUjQBYCiJx3hL8wOd0kkHMpWu/rIg=:e8iKtrrvF0F+A5kr:rQxFK21Vv6XvjqFfJ4n/DNRd2lxcv6I08+hwzWGKXkYtCad/ZFCoWGGMugaQ96rJdjmmgtpqLr+7qV2fsojlNjg8K70FIo7V1AWZMfgo5F1K5K9WnZAclkpHw+CqxeXoksjzulS8MOh1dHJ4BjpwcGs/OpRtuctDBJSPuo40Xs8KriC/4fgwEZGNifn3XJZZt8zQXU1J1Iie9M6hwo98zGYs1LAxSn21an9kMz8GNiioVwcxJa/NBnGb0qWgOOUOWE/Tq3fQLZSQV+hahZJBVA+F5q7yTCzGo9qdi1VKAIEZWGZUYYEe7pn6xtz7C2gISIJTkCK1t2YWTmEvhcJEs8miZ1Cl/XO6qYC1h4xh3djPegOrGVQl4FB8Pr9/N6cWRA4yNVG9k7WG7MYgFWtco1WQ/JEA3o2wQoK3eqTwF5DMJpO5XVH2sAEUs+OqtUJqXB1cvdQDvhUK73WfzlrU/Ut4puFAVSts3s3y7eQ9Aarz6lyPHAN7wVUfuNpLvj6iouxkZNCy5jVNjXopQ1Ir26fRDvDUCo8YeVpPpoMbym4HjOz3KT7Oa6FTO86dkPXBDTh6zP0AHIAEz51zR03KGukDgU/tbr7Hh38mBbIfStr50jfXlBB2XqEDNMIysEBGbX6KcPm4d5IhaMmJfkNIXNExwkECXfMfHZNNLmLylj7Q3+Cgv4+z4kG+Ku5HE9+3bUeU1AHvcLIyLyu2Vp1jXTxdjih2Iw/YvHKfBfSWUzzhNmdkx4gIN38ilVeXfY6qqfIOrv6UicOmr0uKr8y6UVl/59Txw0tmOdSEv/nrB1chkjz2jHPhlw21suXbhS4+RdvJEE8GjL9i81mVW02EPv9G7VoAwswn6unICvT7kOfeQmYGKAkSX2G8QyAD4MqkZ2bvJP8+JWrs+JcS/w==
Zeigen Sie (grafisch), das das folgende lineare Programm unbeschränkt ist.
\begin{equation*}
\begin{array}{rrcrcl}
\text{maximiere} & x_1 & - & x_2 & \\
\text{unter den Nebenbedingungen} & -2x_1 & + & x_2 & \leq & -1 \\
& -x_1 & - & 2x_2 & \leq & -2 \\
& x_1, & x_2 & & \geq & 0
\end{array}
\end{equation*}
MTAwMDAw:fLv9dgC/EuDPdBGNRLtQx8CHrr9Uc9W7ylm7VOjqlhs=:6MRsShUaPNv+WlwR:KRFw3n36i5C6n6A2IArXfNqfcFuMhm0VDH/6bLcDoCNDpFJl52YxMR95l3rhGkcsJw84lagqq0Fk2iPU5BSk4wMNYRva9AF5o3TXSU4di/dX8oSz1XK+aXC131qcZ0Zo2Bc/QS98+VwQkwIVLoSwShtRV8m38TqVcYCb9uAHyW3OdOB2pmoqbYSG5qrKU+O9Wr4xEPz4zGDEEOXrdH3qABiVqUI9v4XRYtXB+qpdAZ8=
Simplex anwenden
Beobachtungen:
Beim Start: jede Belegung der Variablen \(x_1,...,x_3\) definierte Werte für die Variablen \(x_4,...,x_6\) und ist somit eine Lösung.
eine Lösung ist (jedoch nur) dann zulässig wenn alle Variablen nicht-negativ sind.
Die Basislösung ist die Lösung, bei der die nicht-Basisvariablen (im ersten Schritt also \(x_1, x_2\) und \(x_3\)) den Wert \(0\) haben. Im ersten Schritt ergibt sich somit die Basislösung (\(\bar{x_1},...,\bar{x_6}\)) \((0,0,0,30,24,36)\); der Wert der Zielfunktion ist \(0\).
Simplex Algorithmus
1 Algorithm Simplex(A,b,c):
2 (N,B,A,b,c,v) := InitialisiereSimplex(A,b,c)
3 sei Δ ein Vektor der Länge m
4 while ∃ j ∈ N mit c_j > 0 do
5 wähle Index e ∈ N mit c_e > 0
6 for Index i ∈ B
7 Δ_i := b_i / A_ie falls A_ie > 0, sonst ∞
8 wähle l ∈ B mit Δ_l := min(Δ_1,...,Δ_m)
9 if Δ_l = ∞ then return "unbeschränkt"
10 (N,B,A,b,c,v) := Pivot(N,B,A,b,c,v,l,e)
11 for i := 1 to n
12 if i ∈ B then
13 x_i := b_i
14 else
15 x_i := 0
16 return (x_1,...,x_n)
InitialisiereSimplex(A,b,c)
Falls das LP lösbar ist, dann gib das LP in Schlupfform zurück, in der die initiale Basislösung zulässig ist.
Wir werden uns im Rahmen dieses Kurses nicht weiter mit der Implementierung des Simplex-Algorithmus beschäftigen. Es ist jedoch wichtig, dass Sie die Funktionsweise des Algorithmus verstehen.
Übung
Anwenden des Simplex-Algorithmus
Berechnen Sie die optimale Lösung für das folgende lineare Programm:
\begin{equation*}
\begin{array}{rrcrcl}
\text{maximiere} & 40x_1 & + & 30x_2 & \\
\text{unter den Nebenbedingungen} & x_1 & + & x_2 & \leq & 8 \\
& 2x_1 & + & x_2 & \leq & 12 \\
& 2x_1 & + & 3x_2 & \leq & 18 \\
& x_1, & x_2 & & \geq & 0
\end{array}
\end{equation*}
MTAwMDAw:VvTJ94bJMP1hyo+Jjrj1fUtsNZGUof8vRn4nlRkw3bI=:VY0p7zPCz5iU3ovH:4HGVZw8DbptXMP2lszJ007Et4sUQiSgc1nOzsiC/WGfCI/3Ju3ydv86GOM/vZTebBow7BJyN1RZLbDRFWRFA99dKikW1zusO9eeU0LzdMttH2kaI2rIREW7xKc5DwL72uvMlCxd0b3KJtCsJwmMneZqMquzgKOXzH8hVOe/NGywkZI1zxYSaeWhZjVbVFK/wS5k0QC0bMGQD7dO4G6Ru/l/epfw+7syiTw3UExHQRu4Qf84wFQNPzNqukzRMP7oEzo8RkG5gUCDmiw3plUgbZPlOCvJlJOlyl6dxDrmIKMH8VsiVt1XRbp/2pqZbxlad72Q8+492PCn34YAk+qolICJUnkGLMhWMjBSoCC0MaQ5jPGgvl0pUpgOxQquYXfhKg7GDaNJOZ1vhyWYiFvmEqnBwPMKglTuAof70W+A3vcXjHpbBQl4thmAO+BMD4hfsD8JWEUz1691/28MErj5SxgeUrh9s+dH7skn4N2LuzXtgOSZcJ0800IZK3LwGT2bd1PBOjO5jKfEv1GYKLfkMrDfRqfHvbTsPbhpEscED3N/zm2RvIZqU+lb9cBES2xB2k6KIVzAWed+1UtpZOAus0plJ4AMtbxtLmlnDMADTiJ+So/wntuCpEACe+ZQcE9IZV6eDeiprbdobJmvQWnRAENaapy+EsihlgR/8STz7t97A8e3Umaw8sV+HVVIb2LPDQ1q3NXpXIPBKAsZHx3JX+0LkxEOasjpa+gFUQ1qyjRojGXiqL8scrPPGKh19l1MpP5/iJWCABivSVLoYax9CUndJIDmfQhFKAkb9th1sh5YFUa7dSJt+GuaHS0xE1FMpU4pJ5/K2I6zyQMRQud2rasAEzzvHypcsXfc174OvZoqye5hTaMVEK83OcLxACBdrwlfiquIgQe+Wsk0yVpSF+rCzLSQx+eNzAWi87vyXQZJsHPWK7qoYXhVp/k7tgXdzNzPUE/mYFfRnWqe6/nBEfH+POOGZjf6x+ppNygVMi2qQ0MrVZ+32cc2MQ33vAxKi50REASqpFxVmfStAVtBWbDO2rq/JsSb6DKb+ap2/ZSe9gH70VzJhTU+ss7D6OVwUDryLA9EUp9wPrjwI3z3u3rbLBfwxNboPRDhzcIL7GAThC/3AacWvb13s2kd3uMDPOXEvrbCdMJX4SUncHI6RtsvIxFkx3RyUjyocK3aFML6M4SylnpTF5xSlFzTJUQIuX58zf2N+BHoVtTLDxoSDqKwAjkq2jrmdSmWcRyy6/wv3yDN2uVm9IvVgON3qvrhllu2hfccVbT1+GTvI7Sm2pIgaCzonc2iQC94/hE6fMTNw9diq38soH2vDpqIAmO7ux5Kdeof2TJb7e45R8O+hw6O3aTKxSUJhygWJJgTSnkJ0y7bYUTC5UgZtgcPY1hwDibkxymRv/FHOTfTAZtPMW/CB0o1+V6dnxeb98GqanoBH6SjCsrICLRKGqi982Fnve52BnbRYkUsw1Eu3Fw2BHK1fNFZFlTI6P0HHTNgVZSseLxUZUfNuZ4Lu1TdGglHAS4DFxuFgT1Wh1x+go2vBvjCKANFE4mtpaLJbgkoEduaYSfXYa02SkJsQo9/MfQDNmQSmPl2/T1yGxp1JTSh4DY/thCOjhhCsjjXCwio4HTQX/UeQXB07HFTmfrxvNAAKaTaHtcmWCEdqHhN2gwRrTc73cwKDci5q56FTo2V5m9gXzEhNGztFiNAP3hLGsM4CVyHgrALpYJkCSb2Z7vrpmqwAsRqDKANgRcv0z0ykdEMg5ccWrmMu8y83fkqUnIzA2iIlJIuPPE+mAL4gpABTZC+xuo7wK3UJTB9RM7KrLa0Fo21WzsxybbvOOhGwkxeYFBDEImxQUlhFAPttQMK/nleholQPzzTf5HbLamb8e+6D616hGCYaKhDFT1BGFzSiur0mgzpHKXvTzxBUBYAeJlLyTlsnXoL0AOfVr72Y3WShQRnfQNFuFJgVcpNaRtAKWKPedVY+TzlmJuj/BbflGx2A+YxwyCV3+vI66rrYYpKgvRJpyziI7yqJfL1cZqZiSdwJsyJ6iaL4ZarM5Zg0K1+CWclgpBpgESB960ZGV76/O2WNxO5sW3NF2R+JkT944vXZyd271z7w9aie5adVxCwBFAsUt6PfYpPxwssLeXiJoMhxJIJYYDyeknLjn88hXeMEjFftgHR1sUzrPIplZtE9HtgzQpTZtZG2CT61Dd2pw11a9foBF53XHZEs8QiChiLXNVCnqQfWKt9HJ6RYi1a/Rqt8A9rGHZ0OyMaT3dTtL83BLH5HP9UyF2KvLJmVFoPpdOpCYnt6TW024U0Yg2YOTmEVglViPaH0gvEHyBB3b6yJHSZMQg+aKVt47W+WoCoPb4OfYZQICByZLNfFrLzouzUp21aPs+Gdlrf46pLr0NxAI98THa5joNtAmnRjApEWcPKUSRAbHZGT0+kbLKFmRDm8J3oy99CKU2r9qROYrH/38ewyxeYD1TajSAsZcQhtubpYx9JjIz9IVJBovYBER/WHja1OyTg3vZEEt17Vg6pA8denWCWmTywUi9TKGBoZa+lOnYQQgd6BmXvVQdg0eYJn79XeDf+B5MPThEizja1gFv/Ej7/+/dQuwjD9rijOJBQTsnyZK5rW74xv6XEWrhHKc/FZR2tWQUHqBF994c3MgIyLc40ShuoOZqqRD4v1mmBTJYISQG0P3vNyiW1kn8K6O2pYvvrYtxAUbcyj41BHzXvYNRkBFtrwfru4guIBL43j4Z37T9ECYWh1KKH9v3uKJYPrSiV7rNd0XyiDyQY9kJCNAX/66GBVrga9H+cLyvgWMTONwUcBjttkQrjSW+FEZGQAXopvzGpVGj+Xwi+xxlE2wp2L/5l+4NAJnJEJbCCUXRUSEWJeLDesfmSp5W7Pu/KqdNy6kRqkMl/umL2L2qUYq3nQ3AsICCNJNOa0B1wpFkaozIne5YJ7uBIv+GBOBKmK60OOhKhGfbPi/7VdXnUjzGxv3v/E70K9QbTAldHsdlXl2HDjH2SCWmObK1J0mBlkBzmyezXcMtwKC3VkpL4d6NMAJUmYDTZAatjq2WIunA3zsxR9vgsmeqpjSwU38uZNik+krmrcqYJDM9/d0rcPKuFBYAN3EVBTyBVNX8uC+lZttaSqIuY1bqDqNRFbHbDSiFzYbPAhJVtQKx/tp4dn1EVQ2s3BgjYbGtXPMuQWdohUpLLbfzzhWB7REXVMHSVbPWSPYOa9UmESVzQ9DeR3ibQ0FwwJNtTefQCTrUkusQIs+OfYfIgyPfHEYVdN4wJQzroPE2X7QAoOZsFe116//r4s7HCbY10fjbXOukW+JuHG1AFHFAhNIoVVkdKvLDgadG9duFwSjYL0SgJIsE26rQrCaTpw6JsiIhy8v6CIVStSw8+Y0XJql6Uh9ySfdKPaFwz6s7CD9uKLIceRY3gwC1020DngT9IxOXE7O+ISWL59E/TLmOW1xBGbhAehSU1WaUBBnJsEzqzik3GaPIaW+nc2Orxy4f1lx2cYuhq5H+1Y0oVrTug8olENJQPvgs2ovQM/NNfwGSzsBkCHs7/EIAxex0jOK1vUdOClBHwVbPkXo/JyRGHS+PJlhHPww9iLud4F3MwFRknjwW96Y7BEQKmTtBGJRRsfcBVw4E+/Ax3bP3rFt7qGOMQrEN+w+tSp/kSbTsYjwJGkjtxdveam+/bDk9FS9PGUVcdY2ZNTuJZ4jJCqO5qTrXFFMsiAob7z2Pyh3R6hysIXMJ4TZRzMzHymW0MLpX3zwFgK5CkH2oYHpfaGyeULPJcDL2EcDZ62h0WRBKkcBNkIuSEdVjcezoUEs35/zXYqCGQnTAmLzR7h1x6FXTT3i4tVfdcJzHBRHLUdWw1xYWmA2laiGo5YpQZ4isrOEBEA07oA/jqZp1ndKMFsKNpfzIkHb0t2vmipMTU9yf1ayhizyFwq0vW8hyFzEuhn6BHkjF0W3S17NhdbwhpJ7z22+w6FcJEUTTmen85SlrVRYJHBNFgbNuHtpCKsKPm7vTIst0ylzGNWxhwJsu2BaUQALfQLhPy7Hz+UtKiYG0JTrm+s8n8J15iBzsyRncdJORsLAuh1Y3iZfBCIDo6mlg6AXhU69k+aasyZGj3iOEH0LcvP2Fwtmt5YlLJ0jxKABDKMxCXX379mCSto0/i/bCthSHxFWse3vi8itdsBvTBmFbz/ZzBRrqvalW0gfJDUCQrWr/Vw4eE/55eIZtaL6TiLA1fwBIZED7P8F80A5Gf/4qni9h3u/GpG8PtxosGQ2Xha77JX+i1kfrLCOmtP57W3PppFeAllGQKEiwFIlmUlYCtvJMch9ldWUpwBm4ui9JppDlHMbOAeH7IhpeVVaSndPZyKnHJBj9ZPwmlr645MgDa4SKspQI3gPyJwOaIWDNMBRDRgpEBLv6+zFmRSuLQYv9n6AEspzA/tLHgZixCFU06V5hURndQSoAeLSbb26AeoG400cqsMzdwtU1EQV0DWot/Nfhl2s+9j+Yo2b47f+cGhXQzpE8PGfcy4uNO9BBhImnpeho7DwwKHROonZ4StSDaz/TsQxV+QuZHumJGvGxOCgWyav0PJQV8z4zJpNvTFLi4FWoVa9EtIhQ5YF8YwuTobPi/hCc4RuOnS3SNFwj25Jf5q9GhGwV0ZyHe5Zpe85eGOBAifmriLIk09iD4lqB256veEOUlMwgqaHadwnitor6TI/75pSE5EWAt/pD5IvvCQejpMWSQHMmwAh63vCJBbxf4WXHaCT+6T+0ApzvLaxnnS7gUaPw/BW+uIR6cn/g2+ZV/z51dUrg6279sP+m0htgUQophjO/Zg4pfBwGuaROe/Nt+1i1ih2kgrcfYoMKM+OjDXAptpsLVdr2R18H9vT3/Y7FKWuRBMy7n6T6813JqzKLkMf554Cw959MMpl8X/LkvFV6ybPJm1xMCN5SCN8WWW2TdJJEmGQE+89Rch+nuvr/KYI5GCrvYfoI3/Hf6xFpBEuO9F56qjBEZo8nHZDrcYgEizHhREeHMnQT+oisVsWDn/szXvrW7ATZRAkzjG46LCAiUaMs8xR35/YQkHCAlxhNfqckj628tz4UUwAKHF3eMpwn/oDXqG3irL+bI4RtxYgWpTlKikVSUOVvUxgXvv/CK3QSvLHve3GrF1u1u9TpXn+Af2ryaRYSd1uCbCjbtmVGWaOxucMluWaV+YzusrxhB3W6TkZcR5BKdaKWkEhygaNXKbOxN3Gn5ckSoJu0CjRFYJLWc/rsoBPdYiwrRa2xnHLgyycPWLTQ9GsgJXEg1RwbszLsPCX+qB0xc8WST3/aJmuGg76Vol4tK6OscA7O30VGl+vDE2v9hh0NMl9HrUu6Luvepw9qxWcrhzytDeQh15lRrpLsKhnpQ5f7bMFjVb4jcwSk1Vh0+MsG2UA78xkyhOFz+36/mpQs7Lp7SbFg0UO/sUvQyguC82hhdYaWh7mP4UKiu0+lQn5JDC7oXFTLz+Enu8nnEk27T7J7FDyaJqUWv4qxMQx4/vER7W4dlDMHAvedIPfprV8zl9vHjvbG8SJKG1yHPWc+o0GFwQ/pplc1iOPSg9ft1oBcD7I47vc37zaSoAfYXktH8ZHNPzJbUsnul7J926/FGNrOFLQnrRzRJzGle83W+JLMyOG2MvHirC9RarhGfcqFdUf1WOUICqX8waYIS0Jc7icxLCSc0N8oS0G21EN1TkOysUJS3tfeuXMdTknO2X+7DpUiAKq3hO937ZjWnJbhaSqorTUM9K7gMVzQnUfHACdIUHyuUyRVxYK1z+WNYNHjsx3NKOoeAOf/ADen6df7VhKy46qL10cS6oMvLkWAuND7ELb8Yt6JLqfIvEhiESSoGygS2yW+pebxvWWTm+KSgdjMo7oSe4g4zloYEz5G/IiXxXpSW/crYWF5Hagz91gqCQaWdyabK2LGIMlrvEJcMKXCsj3emM+woqfLdNW6N1SwUVppGF1tRoPFb/vWWUs6dzMQkY3lsiFoOD87BxaPCCgnWjJ7+fGmYSbTv/eIyk2zn+7RNYCq2u4Gi/X2u1sXqqGUPGbOhtH7dyCxBtn3xmetzt0YmI+aIHgMAVJdi6hQ/j0kRo8ReSqai/LBEecgncSyoWZhf3BhVDR/qlB/F2E7XUNpcevm37HE3dDhIfxw8fyJmLfU5J9rBOOAdsyv6/gix0HjTIygvb6vSFxHZsH9IZrrcidLWjps1oa7IDstYCCmBxIQdDMWyAV9mlLBRV1YzoqRPvN4+6nujXtD43yxBV2QeFYPYbF6e60yITRMt/Pw+oqRsaw3X/TQ1vrosx3vWiTvTK1snY8O66IeQVlT9Eqafk9EZ/Oko2clW6BBhe9EybglMSf7GcHtZmDq19VDf5xhyO7v01juXzigqbkP100k4dKmFopRwH9h+AhwzSiLGlv9LPqQycKc3MB5+rY8FJb76DDiYhFil0SNvgXOpAIzO2Pf9BxomM44wjHoYlnXCZLiA13yBJwlI2UZQ7GZLgVU932G6r0k2cNmFuTsGtoxaIO5JzQUd1gG63jXzWdGUO+JkeAoRaPRCmhNvHuMfDndcg/14GiYZrGkLWhfmKcU/M7jCBgn+EqvnxryrPB2llfuS6BVb1jj8YCDxLFpQJtIdAXWznorHxgIwYTgUU+JGsJlrRfKsS/ZRjFQbkTCAm0FX2y0pE1QbB9Ip1vljnUF1eCCwWVy4kXnWPnE/+M41GemgLTD4XUHWa+1Iob6+Y9Tylg8a61C5vxWmN67NkVpm4ccSFbxAf5WAk6/ov6LnoZ7W7cSkBT4f1MKGp8RHoDRywMpVGM20GJ8iwAO6NeYUYCpUmwZxRoXr3T7ozPiSmAXDdPvtXJS8maGMYwX/6KC6EYp7gY01pKv7GE+NXEj8=
Lösung des Rätsels: SEND+MORE=MONEY
- Initiale Idee:
Jeder Buchstabe wird durch eine Variable repräsentiert, die auf den Wertebereich 0 bis 9 beschränkt ist.
Die Gleichung (zum Optimieren) wird dann wie folgt dargestellt:
\begin{equation*}
\begin{array}{rrrrr}
& 1000 \cdot S + & 100 \cdot E + & 10 \cdot N + & D &+ \\
& 1000 \cdot M + & 100 \cdot O + & 10 \cdot R + & E & = \\
10000 \cdot M + & 1000 \cdot O + & 100 \cdot N + & 10 \cdot E + & Y &
\end{array}
\end{equation*}
- Ergebnis:
Alle Variablen bekommen den Wert „0“ zugewiesen.
- Herausforderung:
Wir müssen die Nebenbedingungen formulieren, die sicherstellen, dass die Variablen die Werte 0 bis 9 annehmen und dass keine Ziffer doppelt vorkommt.
- Problem:
Es ist nicht direkt möglich eine mathematische Formulierung zu finden, die die Nebenbedingungen beschreibt.
- Lösungsansatz (häufiger Ansatz bei „Set-Partitioning-Problems“):
Jeder Variablen ([S, E, N, D, M, O, R, Y]) werden jeweils 10 binäre Variablen zugewiesen, die den Wert 0 oder 1 annehmen, wenn die Variable den entsprechenden Wert hat.
Nebenbedingungen
\begin{equation*}
\begin{array}{cccccccl}
S_0 & + & S_1 & + & \ldots & + & S_9 & = & 1 \\
+ & & + & & \ldots & & + & & \\
E_0 & + & E_1 & + & \ldots & + & E_9 & = & 1 \\
\vdots & & \vdots & & \vdots & & \vdots & & \\
+ & & + & & \ldots & & + & & \\
Y_0 & + & Y_1 & + & \ldots & + & Y_9 & = & 1 \\
\shortparallel & & \shortparallel & & & & \shortparallel & \\
1 & & 1 & & \ldots & & 1 & \\
\end{array}
\end{equation*}
„Optimierungsziel“
\begin{equation*}
\begin{array}{r}
\displaystyle\sum_{i=0}^{9} i \cdot S_i \times 1000 + \sum_{i=0}^{9} i \cdot E_i \times 100 + \sum_{i=0}^{9} i \cdot N_i \times 10 + \sum_{i=0}^{9} i \cdot D_i \times 1 & + \\
\displaystyle\sum_{i=0}^{9} i \cdot M_i \times 1000 + \sum_{i=0}^{9} i \cdot O_i \times 100 + \sum_{i=0}^{9} i \cdot R_i \times 10 + \sum_{i=0}^{9} i \cdot E_i \times 1 & = \\
\displaystyle\sum_{i=0}^{9} i \cdot M_i \times 10000 + \sum_{i=0}^{9} i \cdot O_i \times 1000 + \sum_{i=0}^{9} i \cdot N_i \times 100 + \sum_{i=0}^{9} i \cdot E_i \times 10 + \sum_{i=0}^{9} i \cdot Y_i \times 1 &
\end{array}
\end{equation*}
Umsetzung in Python mit Hilfe von PuLP <https://coin-or.github.io/pulp/>
Imports
1 from pulp import (
2 LpProblem, LpVariable, LpBinary,
3 lpSum
4 )
Variablen
1 VALS = range(10)
2 LETTERS = ["S", "E", "N", "D", "M", "O", "R", "Y"]
3
4 prob = LpProblem("SendMoreMoney")
5
6 choices = LpVariable.dicts("Choice", (LETTERS, VALS), cat=LpBinary)
Nebenbedingungen
1
2 for l in LETTERS:
3 varsOfLetter = [choices[l][i] for i in VALS]
4 prob += lpSum(varsOfLetter) == 1
5
6
7 for i in VALS:
8 varsOfValue = [choices[l][i] for l in LETTERS]
9 prob += lpSum(varsOfValue) <= 1
„hauptsächliche Nebenbedingung“
1 prob += (
2 lpSum([i*choices["S"][i] for i in range(10)]) * 1000
3 + lpSum([i*choices["E"][i] for i in range(10)]) * 100
4 + lpSum([i*choices["N"][i] for i in range(10)]) * 10
5 + lpSum([i*choices["D"][i] for i in range(10)])
6 + lpSum([i*choices["M"][i] for i in range(10)]) * 1000
7 + lpSum([i*choices["O"][i] for i in range(10)]) * 100
8 + lpSum([i*choices["R"][i] for i in range(10)]) * 10
9 + lpSum([i*choices["E"][i] for i in range(10)])
10 == lpSum([i*choices["M"][i] for i in range(10)]) * 10000
11 + lpSum([i*choices["O"][i] for i in range(10)]) * 1000
12 + lpSum([i*choices["N"][i] for i in range(10)]) * 100
13 + lpSum([i*choices["E"][i] for i in range(10)]) * 10
14 + lpSum([i*choices["Y"][i] for i in range(10)]))
Lösung berechnen lassen
1 prob.solve()
2 values = [
3 c + "=" + str(i)
4 for c in choices
5 for i in range(10)
6 if choices[c][i].value() == 1
7 ]
8 print("; ".join(values))
Ausgabe
S=8; E=3; N=2; D=4; M=0; O=9; R=1; Y=7
Eine Formulierung wie \(28 \leq S + E + N + D + M + O + R + Y \leq 45\), um sicherzustellen, dass (zumindest einige) Variablen nicht \(0\) sind stellt leider nicht die gewünschte Nebenbedingung sicher, dass jeder Wert nur einmal vergeben wird (\(0 + 1+ 2 + 3 + 4 + 5 + 6 + 7 = 28\) und \(0 + 1+ 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45\)).
Eine Lösung mit obiger Nebenbedingung wäre zum Beispiel:
S=0 E=8 N=9 D=0
M=0 O=0 R=9 E=8
M=0 O=0 N=9 E=8 Y=8
PuLP (Details)
Die Datenstruktur choices
ist ein Dictionary mit folgenden Aufbau:
choices =
{'S': {0: Choice_S_0, 1: Choice_S_1,..., 9: Choice_S_9},
...
'Y': {0: Choice_Y_0, 1: Choice_Y_1,..., 9: Choice_Y_9}}
Übung
Maximaler Fluss
Berechnen Sie für folgenden Graphen den maximalen Fluss mit Hilfe von Pulp. Der Graph ist in der Vorlage definiert und kann als Grundlage für das Lösen des Problems verwendet werden. Orientieren Sie sich an dem Programm, dass sie im Vorfeld für das Maximum-Flow-Problem erstellt haben.
MTAwMDAw:HWZHDsWUpdOUdjNknkojG8wsAeTSf9/PZNRRon5OXJ0=:uAYAE94jvU0uybGL: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
Vorlage
from pulp import (
LpProblem,
LpVariable,
LpMaximize,
LpStatus,
value,
lpSum,
)
CAPACITIES = {
"S": {"V1": 16, "V2": 13},
"V1": {"V3": 12},
"V2": {"V1": 4, "V4": 14},
"V3": {"V2": 9, "T": 20},
"V4": {"V3": 7, "T": 4},
"T": {},
}
prob = LpProblem("Maximum Flow", LpMaximize)
Übung
Gruppenzuteilung
Finden Sie eine sehr gute Aufteilung von Personen (Studierenden) auf eine feste Anzahl an Gruppen, basierend auf den Präferenzen der Personen. Nutzen Sie dazu Mixed-Integer-Programmierung. Im Template ist eine initiale Aufgabenstellung hinterlegt, die es zu lösen gilt: Verteilung von 16 Studierenden auf 4 Gruppen inkl. Bewertungsmatrix (jeder Studierende hat jeden anderen mit Werten von 1 bis 10 bewertet). Ggf. ist die Funktion pulp.allcombinations beim Modellieren hilfreich.
MTAwMDAw:6d1mmvTm2nszzRyuYo9e9T6hf9LgWrHhHBH+mXK2R1k=:jfLUIbi0wOmiET/A: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
Alle Gruppen gleich glücklich machen
Fragen Sie sich was Sie tun müssten, wenn Sie zusätzlich sicherstellen wollen, dass alle Gruppen in etwa die gleiche Glücklichkeit haben sollen. (Hier geht es nur um ein Gedankenexperiment.)
MTAwMDAw:qWKUw+Co6KF01hw19O1tplq3xs3yB1Qy6rqLJNLv2/g=:k1/VcfbZQwj0fkqP:OxnAOb1d4Qg4t41ewoJqC380h0HKOgFPANRiNt5MTB/fm1hAdWmR8y0KTwuK/VyWnrPC2pbGRM6kbSiqcNHPCju2qVrdIdSbU5eJgzI5iF2m9sbb0Qli/HtOJL1fmVGznJzTVOnpbMzWs4UY9ky0CuYqoZDv1L2R61T4A09RFRKIKmUVDHXvIl0QbLaOXr40MLjv93nmQY3SaC+TyPP1UJgHFAhzovK/MUJDlfj843Br/Ei/mk+6QIYuZ1MgSC7bHmh74/D0TmA6cTuPnpAlvkZ2PfoNwF2N2Br7jdtwUTr+mgMYAotM3N+asTYl+PWCTYMn7DBCEQuNApVFXh29DhlNL11h7+NIpHYuWZ0LjiC3La9HwxIgDOHjHpyAAoXJ+3RUC/876txmLjvu2daGxke9tJy67wccZWibdtg4rxsHw3NgkM1V6MjKaX8s+7FPZ+hR0DQV/N+IN26Qi65/k32e8mtQZEvBId9V2CAx7b7RqLCA4ptCgKLrXvikW5kjj/c=