Glossar-Links: Fachbegriffe im Fließtext automatisch verlinken

Auto-Linking im Build: Glossar-Begriffe werden im Fließtext automatisch
erkannt und als Link auf den Glossar-Eintrag gesetzt — erste Nennung je
Begriff je Datei, dezent gestrichelte Unterstreichung im HTML, hyperref
im PDF. Kein manuelles Markieren bei Textänderungen nötig.

Neue Infrastruktur:
- glossar_eintraege_04.py: glossar_slug() + LINK_TEXTE-Map (automatisch
  generiert aus EINTRAEGEN + Abkürzungs-Extraktion)
- erzeuge_glossar_04.py: jeder Eintrag bekommt {#gloss:<slug>}-Anchor
- build_version_04.py: resolve_glossar() — Auto-Linking + {gl:}-Marke
- web_04/site.css: .glossar-link (dezent, nicht wie Navigationslink)

5 neue Glossar-Einträge (waren als Begriff im Text, aber nicht im Glossar):
Solver, Scheduling, Graphen, Backtest, DCP (Disciplined Convex Programming)

Schutzmechanismen:
- Code-Blöcke, Inline-Code, {idx:}/{ref:}-Marken, Markdown-Links und
  Überschriften werden nicht verlinkt
- Verschachtelung verhindert: 'CP-SAT-Solver' als Ganzes, nicht 'CP'+[
  -'SAT'+[-'Solver'
- 'OR' als 2-Zeichen-Abkürzung nicht auto-verlinkt (False Positive in
  'OR-Tools'); {gl:OR} als manuelle Marke
- Glossar selbst nicht auto-verlinkt (sonst Self-Links)
- reflow_markdown(): ::: als Block-Grenze (sonst kollabiert fenced div)

619 Glossar-Links im Gesamtdokument, 239 Anchor im Glossar, 34 im Vorwort.
This commit is contained in:
dschlueter 2026-09-10 17:40:29 +02:00
commit e8abb66d75
52 changed files with 4316 additions and 1921 deletions

108
OR_HTML_04/notation.html generated
View file

@ -123,7 +123,7 @@
<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><strong>Entscheidungsvariable(n)</strong> — das, was der <a href="anhang-glossar.md#gloss:solver" class="glossar-link">Solver</a> festlegen darf</td>
<td>Anzahl gestarteter Trading-Bots (<a href="einfuehrung.html#kap-einfuehrung">Kapitel 1</a>)</td>
</tr>
<tr class="even">
@ -147,19 +147,19 @@
<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><strong>Kosten- bzw. Ertragsvektor</strong> der <a href="anhang-glossar.md#gloss:zielfunktion" class="glossar-link">Zielfunktion</a></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><strong><a href="anhang-glossar.md#gloss:technologiematrix" class="glossar-link">Technologiematrix</a></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><strong><a href="anhang-glossar.md#gloss:kapazitaetsvektor" class="glossar-link">Kapazitätsvektor</a></strong>, „rechte Seite“ der Ungleichungen</td>
<td><span class="math inline">(40, 60)^\top</span> vCPU und GB</td>
</tr>
<tr class="even">
@ -189,7 +189,7 @@
<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><strong>Dualvariable / <a href="anhang-glossar.md#gloss:schattenpreis" class="glossar-link">Schattenpreis</a></strong> der Bedingung <span class="math inline">i</span></td>
<td>33,33 € je zusätzlicher Prüfstunde</td>
</tr>
<tr class="odd">
@ -208,7 +208,7 @@
<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>
<td>das <a href="anhang-glossar.md#gloss:polyeder" class="glossar-link">Polyeder</a> aus <a href="fundament.html#kap-fundament">Kapitel 2</a></td>
</tr>
<tr class="even">
<td><span class="math inline">Z,\ Z^*</span></td>
@ -242,7 +242,7 @@
<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>
<td>Variable darf 3,7 sein — <strong><a href="anhang-glossar.md#gloss:lineare-programmierung-lp" class="glossar-link">LP</a></strong>, schnell lösbar</td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbb{R}^n</span></td>
@ -252,7 +252,7 @@
<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>
<td>Variable muss 3 oder 4 sein — <strong><a href="anhang-glossar.md#gloss:gemischt-ganzzahlige-optimierung-milp" class="glossar-link">MILP</a></strong>, <a href="anhang-glossar.md#gloss:np-schwer" class="glossar-link">NP-schwer</a></td>
</tr>
<tr class="even">
<td><span class="math inline">\mathbb{N}_0</span></td>
@ -313,7 +313,7 @@
</tr>
<tr class="even">
<td><span class="math inline">\mathbf{c}^\top \mathbf{x}</span></td>
<td>Skalarprodukt</td>
<td><a href="anhang-glossar.md#gloss:skalarprodukt" class="glossar-link">Skalarprodukt</a></td>
<td><span class="math inline">c_1 x_1 + c_2 x_2 + \dots</span>“ — eine einzige Zahl</td>
</tr>
<tr class="odd">
@ -338,7 +338,7 @@
</tr>
<tr class="odd">
<td><span class="math inline">\nabla f</span></td>
<td>„Nabla ef“, Gradient</td>
<td>„Nabla ef“, <a href="anhang-glossar.md#gloss:gradient" class="glossar-link">Gradient</a></td>
<td>Vektor aller partiellen Ableitungen — zeigt bergauf</td>
</tr>
<tr class="even">
@ -420,12 +420,12 @@
</tr>
<tr class="even">
<td><span class="math inline">\boldsymbol{\Sigma}</span></td>
<td>„Sigma“ — <strong>Kovarianzmatrix</strong> der Renditen</td>
<td>„Sigma“ — <strong><a href="anhang-glossar.md#gloss:kovarianzmatrix" class="glossar-link">Kovarianzmatrix</a></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>„sigma“ — <strong><a href="anhang-glossar.md#gloss:volatilitaet" class="glossar-link">Volatilität</a></strong> (Standardabweichung)</td>
<td><span class="math inline">0{,}20</span> = 20 % p. a.</td>
</tr>
<tr class="even">
@ -455,12 +455,12 @@
</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><strong><a href="anhang-glossar.md#gloss:diskrete-rendite" class="glossar-link">Diskrete Rendite</a></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><strong><a href="anhang-glossar.md#gloss:logarithmische-rendite" class="glossar-link">Logarithmische Rendite</a></strong> (stetige Rendite)</td>
<td><span class="math inline">\ln(P_t/P_{t-1})</span></td>
</tr>
<tr class="odd">
@ -475,7 +475,7 @@
</tr>
<tr class="odd">
<td><span class="math inline">\alpha</span></td>
<td>Konfidenzniveau bei VaR/CVaR</td>
<td>Konfidenzniveau bei <a href="anhang-glossar.md#gloss:value-at-risk-var" class="glossar-link">VaR</a>/<a href="anhang-glossar.md#gloss:conditional-value-at-risk-cvar" class="glossar-link">CVaR</a></td>
<td><span class="math inline">0{,}95</span> = „schlechteste 5 % der Tage“</td>
</tr>
<tr class="even">
@ -548,7 +548,7 @@
<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><strong>Temperatur</strong> im <a href="anhang-glossar.md#gloss:simulated-annealing" class="glossar-link">Simulated Annealing</a> — steuert, wie oft eine Verschlechterung angenommen wird</td>
<td><a href="metaheuristiken.html#kap-metaheuristiken">Kapitel 9</a></td>
</tr>
<tr class="even">
@ -620,7 +620,7 @@
</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>
<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><a href="anhang-glossar.md#gloss:lagrange-multiplikator" class="glossar-link">Lagrange-Multiplikator</a>/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>
@ -672,55 +672,55 @@
<td><a href="milp.html#kap-milp">Kapitel 6</a></td>
</tr>
<tr class="even">
<td><strong>QP</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:quadratische-programmierung-qp" class="glossar-link">QP</a></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><strong><a href="anhang-glossar.md#gloss:miqp" class="glossar-link">MIQP</a></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><strong><a href="anhang-glossar.md#gloss:nichtlineare-programmierung-nlp" class="glossar-link">NLP</a></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><strong><a href="anhang-glossar.md#gloss:minlp" class="glossar-link">MINLP</a></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><strong><a href="anhang-glossar.md#gloss:constraint-programming-cp" class="glossar-link">CP</a></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><strong><a href="anhang-glossar.md#gloss:sat-boolean-satisfiability" class="glossar-link">SAT</a></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><strong><a href="anhang-glossar.md#gloss:cp-sat" class="glossar-link">CP-SAT</a></strong></td>
<td>Constraint Programming über SAT-Techniken</td>
<td>Solver-Name von Google OR-Tools</td>
<td>Solver-Name von Google <a href="anhang-glossar.md#gloss:or-tools" class="glossar-link">OR-Tools</a></td>
<td><a href="cpsat.html#kap-cpsat">Kapitel 7</a></td>
</tr>
<tr class="odd">
<td><strong>CDCL</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:cdcl" class="glossar-link">CDCL</a></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><strong><a href="anhang-glossar.md#gloss:dynamische-programmierung-dp" class="glossar-link">DP</a></strong></td>
<td>Dynamic Programming</td>
<td>Dynamische Programmierung</td>
<td><a href="dynamische-programmierung.html#kap-dynamische-programmierung">Kapitel 13</a></td>
@ -738,13 +738,13 @@
<td><a href="milp.html#kap-milp">Kapitel 6</a></td>
</tr>
<tr class="odd">
<td><strong>KKT</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:karush-kuhn-tucker-bedingungen-kkt" class="glossar-link">KKT</a></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><strong><a href="anhang-glossar.md#gloss:slsqp" class="glossar-link">SLSQP</a></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>
@ -752,35 +752,35 @@
<tr class="odd">
<td><strong>RMT</strong></td>
<td>Random Matrix Theory</td>
<td>Zufallsmatrizentheorie</td>
<td><a href="anhang-glossar.md#gloss:zufallsmatrizentheorie" class="glossar-link">Zufallsmatrizentheorie</a></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>Simulierte Abkühlung — <a href="anhang-glossar.md#gloss:metaheuristik" class="glossar-link">Metaheuristik</a>, 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><strong><a href="anhang-glossar.md#gloss:large-neighborhood-search-lns" class="glossar-link">LNS</a></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><a href="anhang-glossar.md#gloss:column-generation" class="glossar-link">Column Generation</a></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><strong><a href="anhang-glossar.md#gloss:iis-irreducible-infeasible-subset" class="glossar-link">IIS</a></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><strong><a href="anhang-glossar.md#gloss:mse" class="glossar-link">MSE</a></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>
@ -805,13 +805,13 @@
</thead>
<tbody>
<tr class="odd">
<td><strong>TSP</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:tsp-traveling-salesperson-problem" class="glossar-link">TSP</a></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><strong><a href="anhang-glossar.md#gloss:vehicle-routing-problem-vrp" class="glossar-link">VRP</a></strong></td>
<td>Vehicle Routing Problem</td>
<td>Tourenplanungsproblem</td>
<td><a href="graphen.html#kap-graphen">Kapitel 8</a></td>
@ -829,7 +829,7 @@
<td><a href="graphen.html#kap-graphen">Kapitel 8</a></td>
</tr>
<tr class="odd">
<td><strong>CVRPTW</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:cvrptw" class="glossar-link">CVRPTW</a></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>
@ -848,7 +848,7 @@
</tr>
<tr class="even">
<td><strong>JSSP</strong></td>
<td>Job-Shop Scheduling Problem</td>
<td>Job-Shop <a href="anhang-glossar.md#gloss:scheduling" class="glossar-link">Scheduling</a> Problem</td>
<td>Werkstattfertigungs-Reihenfolgeproblem</td>
<td><a href="cpsat.html#kap-cpsat">Kapitel 7</a></td>
</tr>
@ -878,7 +878,7 @@
<td><a href="markowitz.html#kap-markowitz">Kapitel 19</a></td>
</tr>
<tr class="even">
<td><strong>GMV</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:global-minimum-variance-portfolio-gmv" class="glossar-link">GMV</a></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>
@ -891,7 +891,7 @@
</tr>
<tr class="even">
<td><strong>SR</strong></td>
<td>Sharpe Ratio</td>
<td><a href="anhang-glossar.md#gloss:sharpe-ratio" class="glossar-link">Sharpe Ratio</a></td>
<td>Überrendite je Einheit Volatilität</td>
<td><a href="markowitz.html#kap-markowitz">Kapitel 19</a></td>
</tr>
@ -909,7 +909,7 @@
</tr>
<tr class="odd">
<td><strong>ES</strong></td>
<td>Expected Shortfall</td>
<td><a href="anhang-glossar.md#gloss:expected-shortfall" class="glossar-link">Expected Shortfall</a></td>
<td>anderes Wort für CVaR</td>
<td><a href="cvar.html#kap-cvar">Kapitel 20</a></td>
</tr>
@ -921,7 +921,7 @@
</tr>
<tr class="odd">
<td><strong>MDD</strong></td>
<td>Maximum Drawdown</td>
<td><a href="anhang-glossar.md#gloss:maximum-drawdown" class="glossar-link">Maximum Drawdown</a></td>
<td>größter Rückgang vom Höchststand</td>
<td><a href="handelsmaschine.html#kap-handelsmaschine">Kapitel 21</a></td>
</tr>
@ -963,7 +963,7 @@
</thead>
<tbody>
<tr class="odd">
<td><strong>HiGHS</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:highs" class="glossar-link">HiGHS</a></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>
@ -975,25 +975,25 @@
<td>Open Source (Apache 2.0)</td>
</tr>
<tr class="odd">
<td><strong>CVXPY</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:cvxpy" class="glossar-link">CVXPY</a></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><a href="anhang-glossar.md#gloss:scipy" class="glossar-link">SciPy</a></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><a href="anhang-glossar.md#gloss:glop" class="glossar-link">GLOP</a></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><strong><a href="anhang-glossar.md#gloss:scip" class="glossar-link">SCIP</a></strong></td>
<td>Solving Constraint Integer Programs</td>
<td>MILP/MINLP-Solver</td>
<td>akademisch frei</td>
@ -1035,7 +1035,7 @@
<td>Open Source (EPL)</td>
</tr>
<tr class="odd">
<td><strong>Gurobi</strong>, <strong>CPLEX</strong>, <strong>Xpress</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:gurobi" class="glossar-link">Gurobi</a></strong>, <strong>CPLEX</strong>, <strong>Xpress</strong></td>
<td></td>
<td>kommerzielle Hochleistungs-Solver</td>
<td>kostenpflichtig</td>
@ -1059,7 +1059,7 @@
<td></td>
</tr>
<tr class="odd">
<td><strong>GIL</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:gil-global-interpreter-lock" class="glossar-link">GIL</a></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>
@ -1120,7 +1120,7 @@
<td>Fehlende Nebenbedingung — Modell prüfen</td>
</tr>
<tr class="odd">
<td><strong>MIP-Gap</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:mip-gap" class="glossar-link">MIP-Gap</a></strong></td>
<td>Relativer Abstand beste Lösung ↔︎ beste Schranke</td>
<td>12 % sind in der Praxis meist genug</td>
</tr>
@ -1130,7 +1130,7 @@
<td>Referenz für das Pruning</td>
</tr>
<tr class="odd">
<td><strong>Relaxation</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:relaxation" class="glossar-link">Relaxation</a></strong></td>
<td>Modell mit weggelassener Ganzzahligkeit</td>
<td>liefert die Schranke</td>
</tr>
@ -1145,9 +1145,9 @@
<td>Slack = 0 → Engpass</td>
</tr>
<tr class="even">
<td><strong>Lookahead-Bias</strong></td>
<td><strong><a href="anhang-glossar.md#gloss:lookahead-bias" class="glossar-link">Lookahead-Bias</a></strong></td>
<td>Nutzung von Daten aus der Zukunft</td>
<td>Backtest ist wertlos — <a href="praxisfallen.html#kap-praxisfallen">Kapitel 22</a></td>
<td><a href="anhang-glossar.md#gloss:backtest" class="glossar-link">Backtest</a> ist wertlos — <a href="praxisfallen.html#kap-praxisfallen">Kapitel 22</a></td>
</tr>
</tbody>
</table>