Lineares Optimierungsproblem: Unterschied zwischen den Versionen

Aus FLBK-Wiki
Zur Navigation springen Zur Suche springen
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:
* '''Maximierungsprobleme''' (z. B. Maximierung von Gewinn oder Deckungsbeitrag)
* '''Maximierungsprobleme''' (z. B. Maximierung von Gewinn oder Deckungsbeitrag)
* '''Minimierungsprobleme''' (z. B. Minimierung von Kosten oder Transportaufwand)
* '''Minimierungsprobleme''' (z. B. Minimierung von Kosten oder Transportaufwand)


Maximiere bzw. minimiere die Zielfunktion
Maximiere bzw. minimiere die Zielfunktion
Zeile 38: Zeile 37:
* Untersuchung der Eckpunkte (vgl. [[Eckpunktberechnungsmethode]])
* Untersuchung der Eckpunkte (vgl. [[Eckpunktberechnungsmethode]])


== Beispiel (Gewinnmaximierung) ==
== Beispiel==
Ein Unternehmen produziert zwei Produkte:
Ein Unternehmen produziert zwei Produkte:


Zeile 56: Zeile 55:
:<math>Z = 3x + 5y \rightarrow \max</math>
:<math>Z = 3x + 5y \rightarrow \max</math>


=== Grafische Darstellung (JSXGraph) ===
<html>
<html>
<head>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/1.4.6/jsxgraphcore.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/1.4.6/jsxgraphcore.js"></script>
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/1.4.6/jsxgraph.css" />
</head>
</head>
<body>
<body>
<div id="lp1" style="width:400px;height:300px;"></div>
    <div id="box_lop" class="jxgbox" style="width: 400px; height: 400px; margin-top:20px;"></div>
<script>
    <script type="text/javascript">
var board = JXG.JSXGraph.initBoard('lp1',{
        (function () {
boundingbox:[-1,9,9,-1], axis:true, grid:true
            var board = JXG.JSXGraph.initBoard('box_lop', {
});
                boundingbox: [-1, 9, 9, -1],
                axis: true,
                grid: true,
                showCopyright: false,
                defaultAxes: {
                    x: {
                        withLabel: true,
                        name: 'x',
                        label: { position: 'rt', offset: [-10, 15] }
                    },
                    y: {
                        withLabel: true,
                        name: 'y',
                        label: { position: 'rt', offset: [10, -5] }
                    }
                }
            });
 
            // Nebenbedingung: 2x + y = 8  -> y = -2x + 8
            var nb1 = board.create('functiongraph', [
                function (x) { return -2 * x + 8; }
            ], {
                strokeColor: 'red',
                name: '2x + y = 8',
                withLabel: true,
                label: { offset: [-60, 20] }
            });
 
            // Nebenbedingung: x + 2y = 8  -> y = -0.5x + 4
            var nb2 = board.create('functiongraph', [
                function (x) { return -0.5 * x + 4; }
            ], {
                strokeColor: 'blue',
                name: 'x + 2y = 8',
                withLabel: true,
                label: { offset: [10, -20] }
            });
 
            // Zulässiger Bereich
            board.create('polygon', [
                [0, 0],
                [4, 0],
                [8 / 3, 8 / 3],
                [0, 4]
            ], {
                fillColor: '#0055aa',
                fillOpacity: 0.2,
                borders: { visible: false }
            });
 
            // Slider für Zielfunktion Z = 3x + 5y
            var Z = board.create('slider', [[0.5, 8.6], [6.5, 8.6], [0, 0, 40]], {
                name: 'Z'
            });


var g1 = board.create('line', [[0,8],[4,0]]);
            // Zielfunktion: 3x + 5y = Z  -> y = (Z - 3x)/5
var g2 = board.create('line', [[0,4],[8,0]]);
            board.create('functiongraph', [
                function (x) { return (Z.Value() - 3 * x) / 5; }
            ], {
                strokeColor: 'green',
                dash: 2,
                name: 'Zielfunktion',
                withLabel: true
            });


board.create('text',[5,5,'Zulässiger Bereich']);
        })();
</script>
    </script>
</body>
</body>
</html>
</html>

Aktuelle Version vom 6. Februar 2026, 09:20 Uhr

Definition

Ein lineares Optimierungsproblem besteht aus einer Zielfunktion und einem System von einschränkenden Bedingungen (Nebenbedingungen), die alle linear sind.

Man unterscheidet:

  • Maximierungsprobleme (z. B. Maximierung von Gewinn oder Deckungsbeitrag)
  • Minimierungsprobleme (z. B. Minimierung von Kosten oder Transportaufwand)

Maximiere bzw. minimiere die Zielfunktion

[math]\displaystyle{ Z = c_1x_1 + c_2x_2 + \dots + c_nx_n }[/math]

unter den Nebenbedingungen

[math]\displaystyle{ \begin{aligned} a_{11}x_1 + a_{12}x_2 &\le b_1\\ a_{21}x_1 + a_{22}x_2 &\le b_2\\ \vdots \end{aligned} }[/math]

sowie den Nichtnegativitätsbedingungen

[math]\displaystyle{ x_1 \ge 0,\; x_2 \ge 0,\; \dots }[/math]

Die Menge aller zulässigen Lösungen heißt zulässiger Bereich.

Ökonomische Interpretation

Grafische Lösung

Bei zwei Entscheidungsvariablen kann das Problem grafisch gelöst werden:

Beispiel

Ein Unternehmen produziert zwei Produkte:

  • Gewinn pro Stück A: 3 GE
  • Gewinn pro Stück B: 5 GE

Nebenbedingungen:

[math]\displaystyle{ \begin{aligned} 2x + y &\le 8\\ x + 2y &\le 8\\ x,y &\ge 0 \end{aligned} }[/math]

Zielfunktion:

[math]\displaystyle{ Z = 3x + 5y \rightarrow \max }[/math]

Zusammenhang zu anderen Themen