operations_research/OR_HTML_04/notation.html

1177 lines
57 KiB
HTML
Raw Normal View History

Version 04 als eigenes Repository Erster Commit des Strangs "Optimierte Entscheidungsfindung mit Python" (Version 04). Die Historie der 71 Commits bis zur Trennung bleibt im uebergeordneten Repository OR_mit_Python liegen, das ab jetzt nur noch Version_03 (eingefroren) verwaltet und Version_04/ ignoriert. Bewusst kein "git subtree split": Der Pfad Version_04/ existiert erst seit der Verzeichnistrennung, ein Split braechte daher nur 7 der 41 einschlaegigen Commits - eine Teilhistorie, die vollstaendig aussieht und es nicht ist. Stand: 5 Teile, 23 Kapitel, 5 Anhaenge, 292 Abschnitte, 703 Querverweise, 325 Indexmarken, 73 Beispielprogramme, 32 SVGs, 4 Plotly-Figuren, 25 Notebooks, PDF mit 715 Seiten. Zusaetzlich in diesem Commit: * pyproject.toml mit Abhaengigkeitsgruppen finance, large-scale, api, figures, dev, empfehlungen. Die abgedruckte requirements.txt bleibt unveraendert daneben bestehen. ortools steht in der Grundausstattung, highspy erst in [large-scale] - so kann der HiGHS-Symbolkonflikt bei der schlanken Installation gar nicht erst auftreten. * Dabei zwei Funde: graphviz wird von erzeuge_architektur_diagramme.py importiert, fehlt aber in requirements.txt (jetzt in [figures]); pymoo steht in requirements.txt, wird aber von keinem Programm importiert, sondern nur im Kapitel Metaheuristiken empfohlen (jetzt in [empfehlungen]). * NEUER_TITEL.md nach Kritik_und_Verbesserungsvorschlaege/ verschoben - es ist die Vorlage des Titelblatts, kein Bestandteil des Werks. Die beiden Fundstellen in PROGRESS.md und erzeuge_titelseite.py nachgezogen. * PROGRESS.md nannte noch den Untertitel der ersten Fassung; auf den tatsaechlichen aus erzeuge_titelseite.py korrigiert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 01:20:09 +02:00
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Notation & Abkürzungen · Optimierte Entscheidungsfindung mit Python</title>
<script>
(function () {
try {
var t = localStorage.getItem("or-theme");
if (t) document.documentElement.setAttribute("data-theme", t);
} catch (e) {}
})();
</script>
<link rel="stylesheet" href="assets/highlight.css" />
<link rel="stylesheet" href="katex/katex.min.css" />
<script defer="" src="katex/katex.min.js"></script>
<script>document.addEventListener("DOMContentLoaded", function () {
var mathElements = document.getElementsByClassName("math");
var macros = [];
for (var i = 0; i < mathElements.length; i++) {
var texText = mathElements[i].firstChild;
if (mathElements[i].tagName == "SPAN") {
katex.render(texText.data, mathElements[i], {
displayMode: mathElements[i].classList.contains('display'),
throwOnError: false,
macros: macros,
fleqn: false
});
}}
// Der Browser springt zu einem #anker in der URL schon beim ersten Rendern
// an, BEVOR die KaTeX-Formeln oben im Text ihre finale Hoehe bekommen -
// durch den Reflow landet der Anker danach zu weit unten. Nach dem
// Formel-Rendering hier erneut zum Anker springen, das behebt es.
if (location.hash) {
var ziel = document.getElementById(decodeURIComponent(location.hash.slice(1)));
if (ziel) ziel.scrollIntoView({behavior: "instant", block: "start"});
}
});
</script>
<link rel="stylesheet" href="assets/site.css" />
</head>
<body>
<svg style="display:none" aria-hidden="true"><symbol id="icon-menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/>
</symbol>
<symbol id="icon-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.2" y2="16.2"/>
</symbol>
<symbol id="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<circle cx="12" cy="12" r="4.5"/>
<line x1="12" y1="1.5" x2="12" y2="4"/><line x1="12" y1="20" x2="12" y2="22.5"/>
<line x1="1.5" y1="12" x2="4" y2="12"/><line x1="20" y1="12" x2="22.5" y2="12"/>
<line x1="4.5" y1="4.5" x2="6.2" y2="6.2"/><line x1="17.8" y1="17.8" x2="19.5" y2="19.5"/>
<line x1="19.5" y1="4.5" x2="17.8" y2="6.2"/><line x1="6.2" y1="17.8" x2="4.5" y2="19.5"/>
</symbol>
<symbol id="icon-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M20 14.5A8.5 8.5 0 1 1 9.5 4a6.8 6.8 0 0 0 10.5 10.5z"/>
</symbol>
<symbol id="icon-chevron-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="15 4 7 12 15 20"/>
</symbol>
<symbol id="icon-chevron-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="9 4 17 12 9 20"/>
</symbol>
<symbol id="icon-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="4 13 9.5 18.5 20 6"/>
</symbol>
<symbol id="icon-external-link" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M18 13.5V19a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 19V7A1.5 1.5 0 0 1 5 5.5h5.5"/>
<polyline points="14.5 3.5 20.5 3.5 20.5 9.5"/><line x1="11" y1="13" x2="20" y2="4"/>
</symbol>
<symbol id="icon-book" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M4 5.5A2 2 0 0 1 6 4h6v16H6a2 2 0 0 0-2 1.5z"/>
<path d="M20 5.5A2 2 0 0 0 18 4h-6v16h6a2 2 0 0 1 2 1.5z"/>
</symbol>
<symbol id="icon-copy" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
</symbol>
<symbol id="icon-download" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 3v12"/><polyline points="7 10 12 15 17 10"/><path d="M4 19.5h16"/>
</symbol></svg>
<header class="site-header">
<button type="button" class="icon-btn" id="sidebar-toggle" aria-label="Menü öffnen"><svg class="icon" aria-hidden="true"><use href="#icon-menu"></use></svg></button>
<a class="brand" href="index.html"><svg class="icon" aria-hidden="true"><use href="#icon-book"></use></svg> <span>Optimierte Entscheidungsfindung mit Python</span></a>
<div class="site-search">
<input id="suche-eingabe" type="search" placeholder="Suchen …" aria-label="Suche" autocomplete="off" />
<svg class="icon such-icon" aria-hidden="true"><use href="#icon-search"></use></svg>
<div id="suche-ergebnisse" class="suche-ergebnisse" hidden></div>
</div>
<button type="button" class="icon-btn" id="theme-toggle" aria-label="Darstellung umschalten">
<svg class="icon icon-sun" aria-hidden="true"><use href="#icon-sun"></use></svg><svg class="icon icon-moon" aria-hidden="true"><use href="#icon-moon"></use></svg>
</button>
</header>
<div class="site-body">
<div class="sidebar-overlay" id="sidebar-overlay" hidden></div>
<nav class="sidebar" id="sidebar" aria-label="Kapitelnavigation"><div class="sidebar-inhalt"><details class="sidebar-gruppe" open><summary>Einstieg</summary><ul><li data-kapitel="vorwort.html"><a href="vorwort.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Vorwort & Lesehilfe</span></a></li><li data-kapitel="notation.html" class="aktiv"><a href="notation.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Notation & Abkürzungen</span></a></li></ul></details><details class="sidebar-gruppe"><summary>Teil I: Grundlagen des Operations Research</summary><ul><li data-kapitel="einfuehrung.html"><a href="einfuehrung.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 1: Einführung in Operations Research — Vom Ursprung zur mathematischen Entscheidungsfindung</span></a></li><li data-kapitel="fundament.html"><a href="fundament.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 2: Das mathematische Fundament — Vektoren, Matrizen, Konvexität{idx:Konvexität}</span></a></li><li data-kapitel="oekosystem.html"><a href="oekosystem.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 3: Das Python-Ökosystem für OR — Solver, Bindings und Modellierungsschichten</span></a></li><li data-kapitel="modellierung.html"><a href="modellierung.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 4: Vom Management-Wunsch zum Modell</span></a></li><li data-kapitel="synthese-grundlagen.html"><a href="synthese-grundlagen.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Synthese Teil I</span></a></li></ul></details><details class="sidebar-gruppe"><summary>Teil II: Die Kernverfahren der deterministischen Optimierung</summary><ul><li data-kapitel="lp.html"><a href="lp.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 5: Lineare Programmierung — Simplex, Dualität und Schattenpreise</span></a></li><li data-kapitel="milp.html"><a href="milp.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 6: Gemischt-ganzzahlige Optimierung — Diskrete Entscheidungen und Branch-and-Bound{idx:Branch-and-Bound}</span></a></li><li data-kapitel="cpsat.html"><a href="cpsat.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 7: Constraint Programming mit CP-SAT{idx:CP-SAT} — Logik, Scheduling und Zuweisung</span></a></li><li data-kapitel="graphen.html"><a href="graphen.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 8: Graphen, Flüsse und Touren — Min-Cost-Flow, Matching und VRP</span></a></li><li data-kapitel="metaheuristiken.html"><a href="metaheuristiken.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 9: Metaheuristiken — wenn der exakte Solver aussteigt</span></a></li><li data-kapitel="dekomposition.html"><a href="dekomposition.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 10: Spaltengenerierung — das Modell umbauen statt die Lösung raten</span></a></li><li data-kapitel="synthese-kernverfahren.html"><a href="synthese-kernverfahren.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Synthese Teil II</span></a></li></ul></details><details class="sidebar-gruppe"
Version 04 als eigenes Repository Erster Commit des Strangs "Optimierte Entscheidungsfindung mit Python" (Version 04). Die Historie der 71 Commits bis zur Trennung bleibt im uebergeordneten Repository OR_mit_Python liegen, das ab jetzt nur noch Version_03 (eingefroren) verwaltet und Version_04/ ignoriert. Bewusst kein "git subtree split": Der Pfad Version_04/ existiert erst seit der Verzeichnistrennung, ein Split braechte daher nur 7 der 41 einschlaegigen Commits - eine Teilhistorie, die vollstaendig aussieht und es nicht ist. Stand: 5 Teile, 23 Kapitel, 5 Anhaenge, 292 Abschnitte, 703 Querverweise, 325 Indexmarken, 73 Beispielprogramme, 32 SVGs, 4 Plotly-Figuren, 25 Notebooks, PDF mit 715 Seiten. Zusaetzlich in diesem Commit: * pyproject.toml mit Abhaengigkeitsgruppen finance, large-scale, api, figures, dev, empfehlungen. Die abgedruckte requirements.txt bleibt unveraendert daneben bestehen. ortools steht in der Grundausstattung, highspy erst in [large-scale] - so kann der HiGHS-Symbolkonflikt bei der schlanken Installation gar nicht erst auftreten. * Dabei zwei Funde: graphviz wird von erzeuge_architektur_diagramme.py importiert, fehlt aber in requirements.txt (jetzt in [figures]); pymoo steht in requirements.txt, wird aber von keinem Programm importiert, sondern nur im Kapitel Metaheuristiken empfohlen (jetzt in [empfehlungen]). * NEUER_TITEL.md nach Kritik_und_Verbesserungsvorschlaege/ verschoben - es ist die Vorlage des Titelblatts, kein Bestandteil des Werks. Die beiden Fundstellen in PROGRESS.md und erzeuge_titelseite.py nachgezogen. * PROGRESS.md nannte noch den Untertitel der ersten Fassung; auf den tatsaechlichen aus erzeuge_titelseite.py korrigiert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 01:20:09 +02:00
<main class="content">
<nav class="breadcrumb" aria-label="Breadcrumb"><a href="index.html">Start</a> <span>Notation & Abkürzungen</span></nav>
<nav class="prev-next"><a class="prev-next-knopf prev-next-prev" href="vorwort.html"><svg class="icon" aria-hidden="true"><use href="#icon-chevron-left"></use></svg><span><small>Zurück</small>Vorwort & Lesehilfe</span></a><a class="prev-next-knopf prev-next-next" href="einfuehrung.html"><span><small>Weiter</small>Kapitel 1: Einführung in Operations Research — Vom Ursprung zur mathematischen Entscheidungsfindung</span><svg class="icon" aria-hidden="true"><use href="#icon-chevron-right"></use></svg></a></nav>
<article>
<h1 id="notation-und-abkürzungen">Notation und Abkürzungen</h1>
<p>Dieses Kapitel ist zum Nachschlagen gedacht, nicht zum Durchlesen. Schlagen Sie hier nach, sobald Ihnen ein Symbol oder ein Kürzel begegnet, das Sie nicht sicher zuordnen können.</p>
<hr />
<h2 id="die-symbole-der-optimierung">1. Die Symbole der Optimierung</h2>
<h3 id="grundgrößen-jedes-modells">1.1 Grundgrößen jedes Modells</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Symbol</th>
<th>Sprechweise</th>
<th>Bedeutung</th>
<th>Beispiel aus dem Buch</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><span class="math inline">x</span></td>
<td>„iks“</td>
<td><strong>Entscheidungsvariable(n)</strong> — das, was der Solver festlegen darf</td>
<td>Anzahl gestarteter Trading-Bots (<a href="einfuehrung.html#kap-einfuehrung">Kapitel 1</a>)</td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbf{x}</span></td>
<td>„Vektor iks“</td>
<td>Alle Entscheidungsvariablen als Spaltenvektor</td>
<td><span class="math inline">\mathbf{x} = (x_1, \dots, x_n)^\top</span></td>
</tr>
<tr class="odd">
<td><span class="math inline">n</span></td>
<td>„en“</td>
<td>Anzahl der Entscheidungsvariablen</td>
<td>10 Aktien <span class="math inline">\Rightarrow n = 10</span></td>
</tr>
<tr class="even">
<td><span class="math inline">m</span></td>
<td>„em“</td>
<td>Anzahl der Nebenbedingungen</td>
<td>3 Ressourcen <span class="math inline">\Rightarrow m = 3</span></td>
</tr>
<tr class="odd">
<td><span class="math inline">\mathbf{c}</span></td>
<td>„Vektor ze“</td>
<td><strong>Kosten- bzw. Ertragsvektor</strong> der Zielfunktion</td>
<td>Gewinn je Bot-Typ: <span class="math inline">(150, 250)^\top</span></td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbf{A}</span></td>
<td>„Matrix a“</td>
<td><strong>Technologiematrix</strong> — wie viel Ressource verbraucht welche Variable</td>
<td>Zeile „RAM“: <span class="math inline">(4, 6)</span></td>
</tr>
<tr class="odd">
<td><span class="math inline">\mathbf{b}</span></td>
<td>„Vektor be“</td>
<td><strong>Kapazitätsvektor</strong>, „rechte Seite“ der Ungleichungen</td>
<td><span class="math inline">(40, 60)^\top</span> vCPU und GB</td>
</tr>
<tr class="even">
<td><span class="math inline">f(\mathbf{x})</span></td>
<td>„ef von iks“</td>
<td><strong>Zielfunktion</strong> — die eine Zahl, die bewertet wird</td>
<td>Tagesgewinn in Euro</td>
</tr>
<tr class="odd">
<td><span class="math inline">g_i(\mathbf{x})</span></td>
<td>„ge i von iks“</td>
<td><span class="math inline">i</span>-te <strong>Ungleichungs-Nebenbedingung</strong>, Form <span class="math inline">g_i(\mathbf{x}) \le 0</span></td>
<td>„RAM-Verbrauch minus 60 GB“</td>
</tr>
<tr class="even">
<td><span class="math inline">h_j(\mathbf{x})</span></td>
<td>„ha j von iks“</td>
<td><span class="math inline">j</span>-te <strong>Gleichungs-Nebenbedingung</strong>, Form <span class="math inline">h_j(\mathbf{x}) = 0</span></td>
<td>„Summe der Gewichte minus 1“</td>
</tr>
<tr class="odd">
<td><span class="math inline">s_i</span></td>
<td>„es i“</td>
<td><strong>Schlupfvariable</strong> — ungenutzte Reserve der Ressource <span class="math inline">i</span></td>
<td>1 GB RAM übrig <span class="math inline">\Rightarrow s_2 = 1</span></td>
</tr>
<tr class="even">
<td><span class="math inline">y_i,\ \lambda_i</span></td>
<td>„y i“, „lambda i“</td>
<td><strong>Dualvariable / Schattenpreis</strong> der Bedingung <span class="math inline">i</span></td>
<td>33,33 € je zusätzlicher Prüfstunde</td>
</tr>
<tr class="odd">
<td><span class="math inline">M</span></td>
<td>„groß em“</td>
<td><strong>Big-M</strong> — hinreichend große Konstante zum Ein-/Ausschalten von Bedingungen</td>
<td><span class="math inline">x_j \le M \cdot y_j</span></td>
</tr>
<tr class="even">
<td><span class="math inline">z_i,\ y_i</span></td>
<td></td>
<td><strong>Binärvariable</strong> <span class="math inline">\in \{0,1\}</span> — Ja/Nein-Schalter</td>
<td>„Position <span class="math inline">i</span> wird eröffnet“</td>
</tr>
<tr class="odd">
<td><span class="math inline">\mathcal{F}</span></td>
<td>„kalligrafisches ef“</td>
<td><strong>Zulässiger Bereich</strong> — Menge aller erlaubten Lösungen</td>
<td>das Polyeder aus <a href="fundament.html#kap-fundament">Kapitel 2</a></td>
</tr>
<tr class="even">
<td><span class="math inline">Z,\ Z^*</span></td>
<td>„zet“, „zet Stern“</td>
<td>Zielfunktionswert bzw. <strong>optimaler</strong> Zielfunktionswert</td>
<td><span class="math inline">Z^* = 2300</span></td>
</tr>
<tr class="odd">
<td><span class="math inline">\mathbf{x}^*</span></td>
<td>„iks Stern“</td>
<td>Die <strong>optimale Lösung</strong>. Der Stern markiert immer „im Optimum“</td>
<td><span class="math inline">\mathbf{x}^* = (7, 5)^\top</span></td>
</tr>
</tbody>
</table>
<h3 id="mengen-und-zahlbereiche">1.2 Mengen und Zahlbereiche</h3>
<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="header">
<th>Symbol</th>
<th>Bedeutung</th>
<th>Praktische Folge</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><span class="math inline">\mathbb{R}</span></td>
<td>Reelle Zahlen (beliebig teilbar)</td>
<td>Variable darf 3,7 sein — <strong>LP</strong>, schnell lösbar</td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbb{R}^n</span></td>
<td><span class="math inline">n</span>-Tupel reeller Zahlen</td>
<td>Der Raum, in dem <span class="math inline">\mathbf{x}</span> lebt</td>
</tr>
<tr class="odd">
<td><span class="math inline">\mathbb{Z}</span></td>
<td>Ganze Zahlen</td>
<td>Variable muss 3 oder 4 sein — <strong>MILP</strong>, NP-schwer</td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbb{N}_0</span></td>
<td>Natürliche Zahlen einschließlich 0</td>
<td>Stückzahlen, nie negativ</td>
</tr>
<tr class="odd">
<td><span class="math inline">\{0, 1\}</span></td>
<td>Nur zwei Werte</td>
<td>Ja/Nein-Entscheidung</td>
</tr>
<tr class="even">
<td><span class="math inline">\in</span></td>
<td>„ist Element von“</td>
<td><span class="math inline">x \in \mathbb{Z}</span>: „<span class="math inline">x</span> ist ganzzahlig“</td>
</tr>
<tr class="odd">
<td><span class="math inline">\forall</span></td>
<td>„für alle“</td>
<td><span class="math inline">w_i \ge 0\ \forall i</span>: jedes Gewicht ist nichtnegativ</td>
</tr>
<tr class="even">
<td><span class="math inline">\exists</span></td>
<td>„es existiert“</td>
<td>seltener; „es gibt mindestens ein …“</td>
</tr>
<tr class="odd">
<td><span class="math inline">\subseteq</span></td>
<td>„ist Teilmenge von“</td>
<td><span class="math inline">\mathcal{C} \subseteq \mathbb{R}^n</span></td>
</tr>
<tr class="even">
<td><span class="math inline">[a, b]</span></td>
<td>Geschlossenes Intervall</td>
<td><span class="math inline">\theta \in [0,1]</span>: <span class="math inline">\theta</span> liegt zwischen 0 und 1</td>
</tr>
</tbody>
</table>
<h3 id="operatoren-und-schreibweisen">1.3 Operatoren und Schreibweisen</h3>
<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="header">
<th>Symbol</th>
<th>Bedeutung</th>
<th>Lesehilfe</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><span class="math inline">\sum_{i=1}^n a_i</span></td>
<td>Summe</td>
<td>„addiere <span class="math inline">a_1</span> bis <span class="math inline">a_n</span></td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbf{c}^\top \mathbf{x}</span></td>
<td>Skalarprodukt</td>
<td><span class="math inline">c_1 x_1 + c_2 x_2 + \dots</span>“ — eine einzige Zahl</td>
</tr>
<tr class="odd">
<td><span class="math inline">^\top</span></td>
<td>Transponiert</td>
<td>dreht Zeilen und Spalten; macht aus Spalten- einen Zeilenvektor</td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbf{A}\mathbf{x}</span></td>
<td>Matrix-Vektor-Produkt</td>
<td>„berechne alle Ressourcenverbräuche auf einmal“</td>
</tr>
<tr class="odd">
<td><span class="math inline">\min_x,\ \max_x</span></td>
<td>Minimum/Maximum über <span class="math inline">x</span></td>
<td>„wähle <span class="math inline">x</span> so, dass … kleinst-/größtmöglich wird“</td>
</tr>
<tr class="even">
<td><span class="math inline">\arg\min</span></td>
<td>Argument des Minimums</td>
<td>nicht der <em>Wert</em>, sondern die <em>Stelle</em> des Minimums</td>
</tr>
<tr class="odd">
<td><span class="math inline">\nabla f</span></td>
<td>„Nabla ef“, Gradient</td>
<td>Vektor aller partiellen Ableitungen — zeigt bergauf</td>
</tr>
<tr class="even">
<td><span class="math inline">\partial Z / \partial b_i</span></td>
<td>Partielle Ableitung</td>
<td>„wie ändert sich <span class="math inline">Z</span>, wenn nur <span class="math inline">b_i</span> sich ändert?“</td>
</tr>
<tr class="odd">
<td><span class="math inline">\Vert \mathbf{v} \Vert_1</span></td>
<td><span class="math inline">L_1</span>-Norm</td>
<td>Summe der Beträge: <span class="math inline">\vert v_1\vert + \vert v_2\vert + \dots</span></td>
</tr>
<tr class="even">
<td><span class="math inline">\Vert \mathbf{v} \Vert_2</span></td>
<td><span class="math inline">L_2</span>-Norm (euklidisch)</td>
<td>die gewöhnliche Länge eines Pfeils</td>
</tr>
<tr class="odd">
<td><span class="math inline">\mathbf{P} \succeq 0</span></td>
<td>positiv <strong>semi</strong>definit</td>
<td>alle Eigenwerte <span class="math inline">\ge 0</span>; Funktion ist konvex</td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbf{P} \succ 0</span></td>
<td>positiv <strong>definit</strong></td>
<td>alle Eigenwerte <span class="math inline">&gt; 0</span>; Funktion ist <em>streng</em> konvex</td>
</tr>
<tr class="odd">
<td><span class="math inline">\mathbb{E}[\cdot]</span></td>
<td>Erwartungswert</td>
<td>gewichteter Mittelwert über alle Szenarien</td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbb{1}</span> oder <span class="math inline">\mathbf{1}</span></td>
<td>Einsvektor</td>
<td><span class="math inline">(1,1,\dots,1)^\top</span>; <span class="math inline">\mathbf{1}^\top\mathbf{w}</span> ist die Summe aller <span class="math inline">w_i</span></td>
</tr>
<tr class="odd">
<td><span class="math inline">\mathbf{I}</span></td>
<td>Einheitsmatrix</td>
<td>Diagonale 1, sonst 0</td>
</tr>
<tr class="even">
<td>s.t. / u. d. N.</td>
<td><em>subject to</em> / unter den Nebenbedingungen</td>
<td>leitet die Restriktionen ein</td>
</tr>
</tbody>
</table>
<h3 id="symbole-der-finanzkapitel-teil-iv">1.4 Symbole der Finanzkapitel (Teil IV)</h3>
<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="header">
<th>Symbol</th>
<th>Bedeutung</th>
<th>Einheit / typischer Wert</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><span class="math inline">\mathbf{w}</span></td>
<td><strong>Portfoliogewichte</strong> — Kapitalanteile je Titel</td>
<td>dimensionslos, Summe <span class="math inline">= 1</span></td>
</tr>
<tr class="even">
<td><span class="math inline">w_i</span></td>
<td>Anteil von Titel <span class="math inline">i</span></td>
<td><span class="math inline">0{,}15 \equiv 15\,\%</span></td>
</tr>
<tr class="odd">
<td><span class="math inline">\boldsymbol{\mu}</span></td>
<td>„mü“ — Vektor der <strong>erwarteten Renditen</strong></td>
<td>z. B. <span class="math inline">0{,}11</span> = 11 % p. a.</td>
</tr>
<tr class="even">
<td><span class="math inline">\boldsymbol{\Sigma}</span></td>
<td>„Sigma“ — <strong>Kovarianzmatrix</strong> der Renditen</td>
<td><span class="math inline">N \times N</span>, Einheit Rendite²</td>
</tr>
<tr class="odd">
<td><span class="math inline">\sigma</span></td>
<td>„sigma“ — <strong>Volatilität</strong> (Standardabweichung)</td>
<td><span class="math inline">0{,}20</span> = 20 % p. a.</td>
</tr>
<tr class="even">
<td><span class="math inline">\sigma^2</span></td>
<td><strong>Varianz</strong></td>
<td>Quadrat der Volatilität</td>
</tr>
<tr class="odd">
<td><span class="math inline">\mathbf{S}</span></td>
<td><strong>Stichproben</strong>-Kovarianzmatrix (aus Daten geschätzt)</td>
<td>verrauscht</td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbf{F}</span></td>
<td><strong>Shrinkage-Target</strong> — strukturierte Vergleichsmatrix</td>
<td>verzerrt, aber stabil</td>
</tr>
<tr class="odd">
<td><span class="math inline">\delta</span></td>
<td>„delta“ — Shrinkage-Intensität</td>
<td><span class="math inline">\in [0,1]</span>, z. B. <span class="math inline">0{,}18</span></td>
</tr>
<tr class="even">
<td><span class="math inline">r_f</span></td>
<td><em>risk-free rate</em>, <strong>risikoloser Zins</strong></td>
<td>z. B. <span class="math inline">0{,}03</span> = 3 % p. a.</td>
</tr>
<tr class="odd">
<td><span class="math inline">R_{i,t}</span></td>
<td><strong>Diskrete Rendite</strong> von Titel <span class="math inline">i</span> am Tag <span class="math inline">t</span></td>
<td><span class="math inline">P_t/P_{t-1} - 1</span></td>
</tr>
<tr class="even">
<td><span class="math inline">r_{i,t}</span></td>
<td><strong>Logarithmische Rendite</strong> (stetige Rendite)</td>
<td><span class="math inline">\ln(P_t/P_{t-1})</span></td>
</tr>
<tr class="odd">
<td><span class="math inline">P_{i,t}</span></td>
<td><strong>Kurs</strong> (bereinigter Schlusskurs) von Titel <span class="math inline">i</span></td>
<td>in Währungseinheiten</td>
</tr>
<tr class="even">
<td><span class="math inline">\lambda</span></td>
<td>Risikoaversion / Gewichtung des Risikoterms</td>
<td>Modellparameter, frei wählbar</td>
</tr>
<tr class="odd">
<td><span class="math inline">\alpha</span></td>
<td>Konfidenzniveau bei VaR/CVaR</td>
<td><span class="math inline">0{,}95</span> = „schlechteste 5 % der Tage“</td>
</tr>
<tr class="even">
<td><span class="math inline">\gamma</span></td>
<td>Hilfsvariable, schätzt den VaR (<a href="cvar.html#kap-cvar">Kapitel 20</a>); Diskontfaktor (<a href="dynamische-programmierung.html#kap-dynamische-programmierung">Kapitel 13</a>)</td>
<td>kontextabhängig</td>
</tr>
<tr class="odd">
<td><span class="math inline">\eta</span></td>
<td>„eta“ — Marktimpact-Koeffizient</td>
<td><a href="dynamische-programmierung.html#kap-dynamische-programmierung">Kapitel 13</a>, Almgren-Chriss</td>
</tr>
<tr class="even">
<td><span class="math inline">X_t</span></td>
<td>Verbleibender Aktienbestand zum Zeitpunkt <span class="math inline">t</span></td>
<td><a href="dynamische-programmierung.html#kap-dynamische-programmierung">Kapitel 13</a></td>
</tr>
<tr class="odd">
<td><span class="math inline">n_t</span></td>
<td>In Periode <span class="math inline">t</span> verkaufte Stückzahl</td>
<td><a href="dynamische-programmierung.html#kap-dynamische-programmierung">Kapitel 13</a></td>
</tr>
<tr class="even">
<td><span class="math inline">S</span> (kursiv, Skalar)</td>
<td>Anzahl der <strong>Szenarien</strong></td>
<td><a href="unsicherheit.html#kap-unsicherheit">Kapitel 12</a>, <a href="cvar.html#kap-cvar">Kapitel 20</a></td>
</tr>
<tr class="odd">
<td><span class="math inline">T</span></td>
<td>Anzahl <strong>Zeitschritte</strong> bzw. Handelstage</td>
<td>252 Handelstage/Jahr</td>
</tr>
<tr class="even">
<td><span class="math inline">N</span></td>
<td>Anzahl <strong>Titel</strong> im Universum</td>
<td>z. B. 10 Aktien</td>
</tr>
</tbody>
</table>
<h3 id="symbole-der-verfahrenskapitel-teil-ii-und-iii">1.5 Symbole der Verfahrenskapitel (Teil II und III)</h3>
<p>Diese Zeichen kommen erst in den Kapiteln vor, die über das klassische LP hinausgehen.</p>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Symbol</th>
<th>Sprechweise</th>
<th>Bedeutung</th>
<th>Kapitel</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><span class="math inline">\pi</span></td>
<td>„pi“</td>
<td><strong>Reihenfolge (Permutation)</strong>: <span class="math inline">\pi(k)</span> ist der Auftrag, der als <span class="math inline">k</span>-ter läuft</td>
<td><a href="metaheuristiken.html#kap-metaheuristiken">Kapitel 9</a></td>
</tr>
<tr class="even">
<td><span class="math inline">\Delta</span></td>
<td>„delta“</td>
<td><strong>Zugbewertung</strong> — um wie viel ein Nachbarschaftszug die Lösung verschlechtert (<span class="math inline">\Delta &gt; 0</span>) oder verbessert (<span class="math inline">\Delta \le 0</span>)</td>
<td><a href="metaheuristiken.html#kap-metaheuristiken">Kapitel 9</a></td>
</tr>
<tr class="odd">
<td><span class="math inline">T</span></td>
<td>„te“</td>
<td><strong>Temperatur</strong> im Simulated Annealing — steuert, wie oft eine Verschlechterung angenommen wird</td>
<td><a href="metaheuristiken.html#kap-metaheuristiken">Kapitel 9</a></td>
</tr>
<tr class="even">
<td><span class="math inline">e^{-\Delta/T}</span></td>
<td></td>
<td><strong>Annahmewahrscheinlichkeit</strong> (Metropolis-Kriterium): kleine Verschlechterungen fast immer, große fast nie</td>
<td><a href="metaheuristiken.html#kap-metaheuristiken">Kapitel 9</a></td>
</tr>
<tr class="odd">
<td><span class="math inline">\pi_i</span></td>
<td>„pi i“</td>
<td><strong>Dualpreis</strong> der Bedingung <span class="math inline">i</span> im Master-LP — der Preis, mit dem das Pricing rechnet</td>
<td><a href="dekomposition.html#kap-dekomposition">Kapitel 10</a></td>
</tr>
<tr class="even">
<td><span class="math inline">a_i</span></td>
<td>„a i“</td>
<td>Wie oft Stück <span class="math inline">i</span> in einem <strong>Schnittmuster</strong> vorkommt (eine Spalte des Masters)</td>
<td><a href="dekomposition.html#kap-dekomposition">Kapitel 10</a></td>
</tr>
<tr class="odd">
<td><span class="math inline">1 - \sum_i \pi_i a_i</span></td>
<td></td>
<td><strong>Reduzierte Kosten</strong> einer neuen Spalte. Negativ heißt: Das Muster lohnt sich, nimm es auf</td>
<td><a href="dekomposition.html#kap-dekomposition">Kapitel 10</a></td>
</tr>
<tr class="even">
<td><span class="math inline">x</span> dominiert <span class="math inline">y</span></td>
<td></td>
<td><strong>Pareto-Dominanz</strong>: <span class="math inline">x</span> ist in keinem Ziel schlechter und in mindestens einem besser</td>
<td><a href="mehrziel.html#kap-mehrziel">Kapitel 14</a></td>
</tr>
<tr class="odd">
<td><span class="math inline">\varepsilon</span></td>
<td>„epsilon“</td>
<td><strong>Schranke im <span class="math inline">\varepsilon</span>-Constraint-Verfahren</strong>: ein Ziel wird zur Nebenbedingung, <span class="math inline">e(x) \le \varepsilon</span></td>
<td><a href="mehrziel.html#kap-mehrziel">Kapitel 14</a></td>
</tr>
<tr class="even">
<td><span class="math inline">\hat{d}_t</span></td>
<td>„d Dach t“</td>
<td><strong>Prognostizierter</strong> Wert — das Dach unterscheidet die Schätzung vom später eintretenden Ist-Wert <span class="math inline">d_t</span></td>
<td><a href="prognose.html#kap-prognose">Kapitel 15</a></td>
</tr>
<tr class="odd">
<td><span class="math inline">a_{k,t}</span></td>
<td>„a k t“</td>
<td><strong>Anfahrvariable</strong>: Anlage <span class="math inline">k</span> wird in Stunde <span class="math inline">t</span> angefahren</td>
<td><a href="supplychain.html#kap-supplychain">Kapitel 17</a></td>
</tr>
<tr class="even">
<td><span class="math inline">u_{k,t}</span></td>
<td>„u k t“</td>
<td><strong>Einsatzvariable</strong>: Anlage <span class="math inline">k</span> läuft in Stunde <span class="math inline">t</span></td>
<td><a href="supplychain.html#kap-supplychain">Kapitel 17</a></td>
</tr>
<tr class="odd">
<td><span class="math inline">L_k</span></td>
<td>„el k“</td>
<td><strong>Mindestlaufzeit</strong> von Anlage <span class="math inline">k</span> in Stunden</td>
<td><a href="supplychain.html#kap-supplychain">Kapitel 17</a></td>
</tr>
<tr class="even">
<td><span class="math inline">\tau</span></td>
<td>„tau“</td>
<td>Laufender <strong>Zeitindex innerhalb eines Fensters</strong> — dort, wo <span class="math inline">t</span> schon den Fensteranfang bezeichnet</td>
<td><a href="supplychain.html#kap-supplychain">Kapitel 17</a></td>
</tr>
</tbody>
</table>
<blockquote>
<p><strong>⚠️ Achtung, Doppelbelegungen.</strong> In der Literatur — und deshalb auch hier — tragen einige Buchstaben je nach Kapitel verschiedene Bedeutungen. Die wichtigsten Fälle: <span class="math inline">\lambda</span> ist in <a href="lp.html#kap-lp">Kapitel 5</a> und <a href="qp-nlp.html#kap-qp-nlp">Kapitel 11</a> ein <strong>Lagrange-Multiplikator/Schattenpreis</strong>, in <a href="markowitz.html#kap-markowitz">Kapitel 19</a> und <a href="cvar.html#kap-cvar">Kapitel 20</a> ein <strong>frei gewählter Risikoaversionsparameter</strong>. <span class="math inline">\gamma</span> ist in <a href="dynamische-programmierung.html#kap-dynamische-programmierung">Kapitel 13</a> der <strong>Diskontfaktor</strong>, in <a href="cvar.html#kap-cvar">Kapitel 20</a> die <strong>VaR-Hilfsvariable</strong>. <span class="math inline">S</span> bezeichnet als Matrix <span class="math inline">\mathbf{S}</span> die Stichprobenkovarianz, als Skalar <span class="math inline">S</span> die Szenarienzahl. <span class="math inline">\pi</span> ist in <a href="metaheuristiken.html#kap-metaheuristiken">Kapitel 9</a> eine <strong>Reihenfolge</strong>, in <a href="dekomposition.html#kap-dekomposition">Kapitel 10</a> ein <strong>Dualpreis</strong> — beide Bedeutungen sind so verbreitet, dass ein Ausweichbuchstabe mehr verwirren als helfen würde. Der Kontext ist jeweils eindeutig, und die Kapitel weisen an der betreffenden Stelle darauf hin.</p>
</blockquote>
<hr />
<h2 id="abkürzungen-vollständig-ausgeschrieben">2. Abkürzungen — vollständig ausgeschrieben</h2>
<h3 id="problemklassen-und-verfahren">2.1 Problemklassen und Verfahren</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Kürzel</th>
<th>Ausgeschrieben</th>
<th>Deutsch</th>
<th>Kapitel</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><strong>OR</strong></td>
<td>Operations Research</td>
<td>Unternehmensforschung / mathematische Entscheidungsoptimierung</td>
<td><a href="einfuehrung.html#kap-einfuehrung">Kapitel 1</a></td>
</tr>
<tr class="even">
<td><strong>LP</strong></td>
<td>Linear Program(ming)</td>
<td>Lineare Programmierung/Optimierung</td>
<td><a href="lp.html#kap-lp">Kapitel 5</a></td>
</tr>
<tr class="odd">
<td><strong>MILP</strong></td>
<td>Mixed-Integer Linear Program(ming)</td>
<td>Gemischt-ganzzahlige lineare Optimierung</td>
<td><a href="milp.html#kap-milp">Kapitel 6</a></td>
</tr>
<tr class="even">
<td><strong>MIP</strong></td>
<td>Mixed-Integer Program(ming)</td>
<td>Oberbegriff, meist synonym zu MILP</td>
<td><a href="milp.html#kap-milp">Kapitel 6</a></td>
</tr>
<tr class="odd">
<td><strong>IP</strong></td>
<td>Integer Program(ming)</td>
<td>Rein ganzzahlige Optimierung</td>
<td><a href="milp.html#kap-milp">Kapitel 6</a></td>
</tr>
<tr class="even">
<td><strong>QP</strong></td>
<td>Quadratic Program(ming)</td>
<td>Quadratische Optimierung</td>
<td><a href="qp-nlp.html#kap-qp-nlp">Kapitel 11</a></td>
</tr>
<tr class="odd">
<td><strong>MIQP</strong></td>
<td>Mixed-Integer Quadratic Program(ming)</td>
<td>Ganzzahlig-quadratische Optimierung</td>
<td><a href="markowitz.html#kap-markowitz">Kapitel 19</a></td>
</tr>
<tr class="even">
<td><strong>NLP</strong></td>
<td>Nonlinear Program(ming)</td>
<td>Nichtlineare Optimierung</td>
<td><a href="qp-nlp.html#kap-qp-nlp">Kapitel 11</a></td>
</tr>
<tr class="odd">
<td><strong>MINLP</strong></td>
<td>Mixed-Integer Nonlinear Program(ming)</td>
<td>Ganzzahlig-nichtlineare Optimierung</td>
<td><a href="oekosystem.html#kap-oekosystem">Kapitel 3</a></td>
</tr>
<tr class="even">
<td><strong>CP</strong></td>
<td>Constraint Programming</td>
<td>Bedingungsprogrammierung</td>
<td><a href="cpsat.html#kap-cpsat">Kapitel 7</a></td>
</tr>
<tr class="odd">
<td><strong>SAT</strong></td>
<td>Boolean <strong>Sat</strong>isfiability Problem</td>
<td>Erfüllbarkeitsproblem der Aussagenlogik</td>
<td><a href="cpsat.html#kap-cpsat">Kapitel 7</a></td>
</tr>
<tr class="even">
<td><strong>CP-SAT</strong></td>
<td>Constraint Programming über SAT-Techniken</td>
<td>Solver-Name von Google OR-Tools</td>
<td><a href="cpsat.html#kap-cpsat">Kapitel 7</a></td>
</tr>
<tr class="odd">
<td><strong>CDCL</strong></td>
<td>Conflict-Driven Clause Learning</td>
<td>konfliktgetriebenes Klausellernen</td>
<td><a href="cpsat.html#kap-cpsat">Kapitel 7</a></td>
</tr>
<tr class="even">
<td><strong>DP</strong></td>
<td>Dynamic Programming</td>
<td>Dynamische Programmierung</td>
<td><a href="dynamische-programmierung.html#kap-dynamische-programmierung">Kapitel 13</a></td>
</tr>
<tr class="odd">
<td><strong>B&amp;B</strong></td>
<td>Branch and Bound</td>
<td>Verzweigen und Beschränken</td>
<td><a href="milp.html#kap-milp">Kapitel 6</a></td>
</tr>
<tr class="even">
<td><strong>B&amp;C</strong></td>
<td>Branch and Cut</td>
<td>Verzweigen mit Schnittebenen</td>
<td><a href="milp.html#kap-milp">Kapitel 6</a></td>
</tr>
<tr class="odd">
<td><strong>KKT</strong></td>
<td>KarushKuhnTucker (Bedingungen)</td>
<td>Optimalitätsbedingungen bei Restriktionen</td>
<td><a href="qp-nlp.html#kap-qp-nlp">Kapitel 11</a></td>
</tr>
<tr class="even">
<td><strong>SLSQP</strong></td>
<td>Sequential Least Squares Programming</td>
<td>sequentielle quadratische Optimierung</td>
<td><a href="qp-nlp.html#kap-qp-nlp">Kapitel 11</a></td>
</tr>
<tr class="odd">
<td><strong>RMT</strong></td>
<td>Random Matrix Theory</td>
<td>Zufallsmatrizentheorie</td>
<td><a href="finanzdaten.html#kap-finanzdaten">Kapitel 18</a></td>
</tr>
<tr class="even">
<td><strong>SA</strong></td>
<td>Simulated Annealing</td>
<td>Simulierte Abkühlung — Metaheuristik, die Verschlechterungen mit fallender Wahrscheinlichkeit zulässt</td>
<td><a href="metaheuristiken.html#kap-metaheuristiken">Kapitel 9</a></td>
</tr>
<tr class="odd">
<td><strong>LNS</strong></td>
<td>Large Neighborhood Search</td>
<td>Große Nachbarschaftssuche: Teil der Lösung verwerfen, Rest exakt neu bauen</td>
<td><a href="metaheuristiken.html#kap-metaheuristiken">Kapitel 9</a></td>
</tr>
<tr class="even">
<td><strong>CG</strong></td>
<td>Column Generation</td>
<td>Spaltengenerierung — Variablen erst erzeugen, wenn sie sich lohnen</td>
<td><a href="dekomposition.html#kap-dekomposition">Kapitel 10</a></td>
</tr>
<tr class="odd">
<td><strong>IIS</strong></td>
<td>Irreducible Infeasible Subset</td>
<td>Kleinste widersprüchliche Teilmenge von Bedingungen</td>
<td><a href="anhang-fehlerdiagnose.html#anhang-fehlerdiagnose">Anhang C</a></td>
</tr>
<tr class="even">
<td><strong>MSE</strong></td>
<td>Mean Squared Error</td>
<td>Mittlerer quadratischer Fehler — das Standardmaß für Prognosegüte</td>
<td><a href="prognose.html#kap-prognose">Kapitel 15</a></td>
</tr>
</tbody>
</table>
<h3 id="probleme-mit-eigennamen">2.2 Probleme mit Eigennamen</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Kürzel</th>
<th>Ausgeschrieben</th>
<th>Deutsch</th>
<th>Kapitel</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><strong>TSP</strong></td>
<td>Traveling Salesperson Problem</td>
<td>Problem des Handlungsreisenden</td>
<td><a href="graphen.html#kap-graphen">Kapitel 8</a></td>
</tr>
<tr class="even">
<td><strong>VRP</strong></td>
<td>Vehicle Routing Problem</td>
<td>Tourenplanungsproblem</td>
<td><a href="graphen.html#kap-graphen">Kapitel 8</a></td>
</tr>
<tr class="odd">
<td><strong>CVRP</strong></td>
<td><strong>C</strong>apacitated VRP</td>
<td>VRP mit Fahrzeugkapazitäten</td>
<td><a href="graphen.html#kap-graphen">Kapitel 8</a></td>
</tr>
<tr class="even">
<td><strong>VRPTW</strong></td>
<td>VRP with <strong>T</strong>ime <strong>W</strong>indows</td>
<td>VRP mit Zeitfenstern</td>
<td><a href="graphen.html#kap-graphen">Kapitel 8</a></td>
</tr>
<tr class="odd">
<td><strong>CVRPTW</strong></td>
<td>Capacitated VRP with Time Windows</td>
<td>mit Kapazitäten <em>und</em> Zeitfenstern</td>
<td><a href="graphen.html#kap-graphen">Kapitel 8</a></td>
</tr>
<tr class="even">
<td><strong>MCNFP</strong></td>
<td>Minimum-Cost Network Flow Problem</td>
<td>Kostenminimales Flussproblem</td>
<td><a href="graphen.html#kap-graphen">Kapitel 8</a></td>
</tr>
<tr class="odd">
<td><strong>MTZ</strong></td>
<td>MillerTuckerZemlin (Formulierung)</td>
<td>Kurzzyklus-Eliminierung</td>
<td><a href="graphen.html#kap-graphen">Kapitel 8</a></td>
</tr>
<tr class="even">
<td><strong>JSSP</strong></td>
<td>Job-Shop Scheduling Problem</td>
<td>Werkstattfertigungs-Reihenfolgeproblem</td>
<td><a href="cpsat.html#kap-cpsat">Kapitel 7</a></td>
</tr>
</tbody>
</table>
<h3 id="finanz--und-risikokennzahlen">2.3 Finanz- und Risikokennzahlen</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Kürzel</th>
<th>Ausgeschrieben</th>
<th>Deutsch / Bedeutung</th>
<th>Kapitel</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><strong>MPT</strong></td>
<td>Modern Portfolio Theory</td>
<td>Moderne Portfoliotheorie (Markowitz)</td>
<td><a href="markowitz.html#kap-markowitz">Kapitel 19</a></td>
</tr>
<tr class="even">
<td><strong>GMV</strong></td>
<td>Global Minimum Variance (Portfolio)</td>
<td>Portfolio kleinstmöglicher Varianz</td>
<td><a href="markowitz.html#kap-markowitz">Kapitel 19</a></td>
</tr>
<tr class="odd">
<td><strong>MVO</strong></td>
<td>Mean-Variance Optimization</td>
<td>Erwartungswert-Varianz-Optimierung</td>
<td><a href="markowitz.html#kap-markowitz">Kapitel 19</a></td>
</tr>
<tr class="even">
<td><strong>SR</strong></td>
<td>Sharpe Ratio</td>
<td>Überrendite je Einheit Volatilität</td>
<td><a href="markowitz.html#kap-markowitz">Kapitel 19</a></td>
</tr>
<tr class="odd">
<td><strong>VaR</strong></td>
<td>Value at Risk</td>
<td>Verlustschwelle bei gegebener Wahrscheinlichkeit</td>
<td><a href="cvar.html#kap-cvar">Kapitel 20</a></td>
</tr>
<tr class="even">
<td><strong>CVaR</strong></td>
<td>Conditional Value at Risk</td>
<td>mittlerer Verlust jenseits des VaR</td>
<td><a href="cvar.html#kap-cvar">Kapitel 20</a></td>
</tr>
<tr class="odd">
<td><strong>ES</strong></td>
<td>Expected Shortfall</td>
<td>anderes Wort für CVaR</td>
<td><a href="cvar.html#kap-cvar">Kapitel 20</a></td>
</tr>
<tr class="even">
<td><strong>CAGR</strong></td>
<td>Compound Annual Growth Rate</td>
<td>durchschnittliche jährliche Wachstumsrate</td>
<td><a href="handelsmaschine.html#kap-handelsmaschine">Kapitel 21</a></td>
</tr>
<tr class="odd">
<td><strong>MDD</strong></td>
<td>Maximum Drawdown</td>
<td>größter Rückgang vom Höchststand</td>
<td><a href="handelsmaschine.html#kap-handelsmaschine">Kapitel 21</a></td>
</tr>
<tr class="even">
<td><strong>LW</strong></td>
<td>LedoitWolf (Shrinkage)</td>
<td>Schrumpfungsverfahren für Kovarianzmatrizen</td>
<td><a href="finanzdaten.html#kap-finanzdaten">Kapitel 18</a></td>
</tr>
<tr class="odd">
<td><strong>p. a.</strong></td>
<td><em>per annum</em></td>
<td>pro Jahr</td>
<td><a href="bruecke.html#teil-anwendungen">Teil IV</a></td>
</tr>
<tr class="even">
<td><strong>bp</strong></td>
<td>Basispunkt</td>
<td>0,01 Prozentpunkt; 15 bp = 0,15 %</td>
<td><a href="cvar.html#kap-cvar">Kapitel 20</a>, <a href="handelsmaschine.html#kap-handelsmaschine">Kapitel 21</a></td>
</tr>
</tbody>
</table>
<h3 id="software-solver-und-schnittstellen">2.4 Software, Solver und Schnittstellen</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Kürzel</th>
<th>Ausgeschrieben</th>
<th>Was es ist</th>
<th>Lizenz</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><strong>HiGHS</strong></td>
<td><strong>Hi</strong>gh Performance <strong>G</strong>eneral-purpose <strong>S</strong>olver</td>
<td>LP-, MILP- und QP-Solver in C++</td>
<td>Open Source (MIT)</td>
</tr>
<tr class="even">
<td><strong>OR-Tools</strong></td>
<td>Google Operations Research Tools</td>
<td>Solver-Sammlung (CP-SAT, Routing, Wrapper)</td>
<td>Open Source (Apache 2.0)</td>
</tr>
<tr class="odd">
<td><strong>CVXPY</strong></td>
<td><strong>C</strong>on<strong>v</strong>e<strong>x</strong> <strong>Py</strong>thon</td>
<td>Modellierungssprache für konvexe Optimierung</td>
<td>Open Source (Apache 2.0)</td>
</tr>
<tr class="even">
<td><strong>SciPy</strong></td>
<td><strong>Sci</strong>entific <strong>Py</strong>thon</td>
<td>Wissenschaftliches Python-Paket; <code>scipy.optimize</code> liefert LP- (über HiGHS), Zuordnungs- (<code>linear_sum_assignment</code>) und NLP-Solver (<code>minimize</code>)</td>
<td>Open Source (BSD)</td>
</tr>
<tr class="odd">
<td><strong>GLOP</strong></td>
<td><strong>G</strong>oogle <strong>L</strong>inear <strong>Op</strong>timizer</td>
<td>LP-Solver in OR-Tools</td>
<td>Open Source</td>
</tr>
<tr class="even">
<td><strong>SCIP</strong></td>
<td>Solving Constraint Integer Programs</td>
<td>MILP/MINLP-Solver</td>
<td>akademisch frei</td>
</tr>
<tr class="odd">
<td><strong>CBC</strong></td>
<td><strong>C</strong>oin-or <strong>B</strong>ranch and <strong>C</strong>ut</td>
<td>MILP-Solver des COIN-OR-Projekts</td>
<td>Open Source</td>
</tr>
<tr class="even">
<td><strong>GLPK</strong></td>
<td>GNU Linear Programming Kit</td>
<td>LP/MILP-Solver</td>
<td>Open Source (GPL)</td>
</tr>
<tr class="odd">
<td><strong>OSQP</strong></td>
<td><strong>O</strong>perator <strong>S</strong>plitting <strong>Q</strong>uadratic <strong>P</strong>rogram</td>
<td>QP-Solver</td>
<td>Open Source</td>
</tr>
<tr class="even">
<td><strong>ECOS</strong></td>
<td>Embedded Conic Solver</td>
<td>konischer Solver</td>
<td>Open Source</td>
</tr>
<tr class="odd">
<td><strong>SCS</strong></td>
<td>Splitting Conic Solver</td>
<td>konischer Solver</td>
<td>Open Source</td>
</tr>
<tr class="even">
<td><strong>IPOPT</strong></td>
<td><strong>I</strong>nterior <strong>Po</strong>int <strong>Opt</strong>imizer</td>
<td>NLP-Solver</td>
<td>Open Source (EPL)</td>
</tr>
<tr class="odd">
<td><strong>Gurobi</strong>, <strong>CPLEX</strong>, <strong>Xpress</strong></td>
<td></td>
<td>kommerzielle Hochleistungs-Solver</td>
<td>kostenpflichtig</td>
</tr>
<tr class="even">
<td><strong>API</strong></td>
<td>Application Programming Interface</td>
<td>Programmierschnittstelle</td>
<td></td>
</tr>
<tr class="odd">
<td><strong>DSL</strong></td>
<td>Domain-Specific Language</td>
<td>fachspezifische Sprache (hier: Modellierungssprache)</td>
<td></td>
</tr>
<tr class="even">
<td><strong>CSR</strong></td>
<td>Compressed Sparse Row</td>
<td>Speicherformat für dünnbesetzte Matrizen</td>
<td></td>
</tr>
<tr class="odd">
<td><strong>GIL</strong></td>
<td>Global Interpreter Lock</td>
<td>Pythons Sperre, die echte Parallelität von Python-Code verhindert — Solverbibliotheken in C++ geben sie frei (<a href="testing.html#kap-testing">Kapitel 23</a>)</td>
<td></td>
</tr>
<tr class="even">
<td><strong>JSON</strong></td>
<td>JavaScript Object Notation</td>
<td>Textformat für strukturierte Daten; Austauschformat des Optimierungsdienstes</td>
<td></td>
</tr>
<tr class="odd">
<td><strong>RHS</strong></td>
<td>Right-Hand Side</td>
<td>rechte Seite einer (Un-)Gleichung, der Vektor <span class="math inline">\mathbf{b}</span></td>
<td></td>
</tr>
<tr class="even">
<td><strong>FFI</strong></td>
<td>Foreign Function Interface</td>
<td>Aufruf von C/C++-Code aus Python</td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="begriffe-aus-dem-solver-alltag">2.5 Begriffe aus dem Solver-Alltag</h3>
<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="header">
<th>Kürzel / Begriff</th>
<th>Bedeutung</th>
<th>Was Sie tun sollten</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><strong>OPTIMAL</strong></td>
<td>Beweisbar beste Lösung gefunden</td>
<td>Nichts — alles gut</td>
</tr>
<tr class="even">
<td><strong>FEASIBLE</strong></td>
<td>Zulässige Lösung gefunden, Optimalität nicht bewiesen</td>
<td>Zeitlimit erhöhen oder Gap akzeptieren</td>
</tr>
<tr class="odd">
<td><strong>INFEASIBLE</strong></td>
<td>Keine Lösung erfüllt alle Bedingungen</td>
<td><a href="anhang-fehlerdiagnose.html#anhang-fehlerdiagnose">Anhang C</a>: Diagnose durchführen</td>
</tr>
<tr class="even">
<td><strong>UNBOUNDED</strong></td>
<td>Zielfunktion unbeschränkt verbesserbar</td>
<td>Fehlende Nebenbedingung — Modell prüfen</td>
</tr>
<tr class="odd">
<td><strong>MIP-Gap</strong></td>
<td>Relativer Abstand beste Lösung ↔︎ beste Schranke</td>
<td>12 % sind in der Praxis meist genug</td>
</tr>
<tr class="even">
<td><strong>Incumbent</strong></td>
<td>Beste bisher gefundene zulässige Lösung</td>
<td>Referenz für das Pruning</td>
</tr>
<tr class="odd">
<td><strong>Relaxation</strong></td>
<td>Modell mit weggelassener Ganzzahligkeit</td>
<td>liefert die Schranke</td>
</tr>
<tr class="even">
<td><strong>Warm Start</strong></td>
<td>Solver startet von bekannter Lösung</td>
<td>beschleunigt wiederholte Läufe</td>
</tr>
<tr class="odd">
<td><strong>Slack</strong></td>
<td>Schlupf, ungenutzte Kapazität</td>
<td>Slack = 0 → Engpass</td>
</tr>
<tr class="even">
<td><strong>Lookahead-Bias</strong></td>
<td>Nutzung von Daten aus der Zukunft</td>
<td>Backtest ist wertlos — <a href="praxisfallen.html#kap-praxisfallen">Kapitel 22</a></td>
</tr>
</tbody>
</table>
<hr />
<h2 id="konventionen-in-diesem-buch">3. Konventionen in diesem Buch</h2>
<p><strong>Vektoren</strong> sind grundsätzlich <strong>Spaltenvektoren</strong> und werden fett gesetzt: <span class="math inline">\mathbf{x}</span>. Ein transponierter Vektor <span class="math inline">\mathbf{x}^\top</span> ist eine Zeile. Skalare bleiben mager: <span class="math inline">n</span>, <span class="math inline">Z</span>.</p>
<p><strong>Matrizen</strong> sind fett und groß: <span class="math inline">\mathbf{A}</span>, <span class="math inline">\boldsymbol{\Sigma}</span>.</p>
<p><strong>Der Stern</strong> markiert immer Optimalwerte: <span class="math inline">\mathbf{x}^*</span>, <span class="math inline">Z^*</span>, <span class="math inline">\lambda^*</span>.</p>
<p><strong>Minimierung ist die Standardform.</strong> Jede Maximierung lässt sich durch Vorzeichenwechsel in eine Minimierung überführen: <span class="math inline">\max f(\mathbf{x}) = -\min\,(-f(\mathbf{x}))</span>. Die meisten Solver — auch <code>scipy.optimize.linprog</code> — minimieren intern. Wer das vergisst, erhält systematisch das Gegenteil des Gewünschten; siehe <a href="lp.html#sec:lp-die-vorzeichenfalle-bei-schattenpreisen">Abschnitt 5.7</a>.</p>
<p><strong>Dezimaltrennzeichen.</strong> Im Fließtext und in Formeln steht das deutsche Komma (<span class="math inline">3{,}14</span>), in Code und Programmausgaben der englische Punkt (<code>3.14</code>) — Python kennt nichts anderes.</p>
<p><strong>Code-Sprache.</strong> Kommentare und Ausgaben der Beispielprogramme sind deutsch, Bezeichner überwiegend englisch, weil das der Konvention der verwendeten Bibliotheken entspricht und die Programme so anschlussfähig an die Originaldokumentation bleiben.</p>
<p><strong>Anglizismen.</strong> Fachbegriffe werden bei der ersten Verwendung deutsch eingeführt und der englische Originalbegriff <em>kursiv</em> in Klammern ergänzt, weil Sie ihn für die Recherche brauchen: „zulässiger Bereich (<em>feasible region</em>)“.</p>
</article>
<nav class="prev-next"><a class="prev-next-knopf prev-next-prev" href="vorwort.html"><svg class="icon" aria-hidden="true"><use href="#icon-chevron-left"></use></svg><span><small>Zurück</small>Vorwort & Lesehilfe</span></a><a class="prev-next-knopf prev-next-next" href="einfuehrung.html"><span><small>Weiter</small>Kapitel 1: Einführung in Operations Research — Vom Ursprung zur mathematischen Entscheidungsfindung</span><svg class="icon" aria-hidden="true"><use href="#icon-chevron-right"></use></svg></a></nav>
</main>
</div>
<footer class="site-footer">
<p>© Dieter Schlüter · <a href="gesamtdokument.html">Gesamtdokument</a> ·
<a href="programme.html">Beispielprogramme</a></p>
</footer>
<script defer src="assets/search-index.js"></script>
<script defer src="assets/programme.js"></script>
<script defer src="assets/site.js"></script>
</body>
</html>