Wat is lineair programmeren. Onconventionele methoden

Als in het probleem lineaire programmering Er zijn slechts twee variabelen, dan kan het grafisch worden opgelost.

Beschouw een lineair programmeerprobleem met twee variabelen en:
(1.1) ;
(1.2)
Hier is er willekeurige cijfers. De taak kan bestaan ​​uit het vinden van het maximum (max) of het vinden van het minimum (min). Het systeem van beperkingen kan zowel tekens als tekens bevatten.

Bouw van de regio van haalbare oplossingen

De grafische methode voor het oplossen van probleem (1) is als volgt.
Eerst tekenen we de coördinaatassen en selecteren we de schaal. Elk van de ongelijkheden van het systeem van beperkingen (1.2) definieert een halfvlak dat wordt begrensd door de overeenkomstige rechte lijn.

Dus de eerste ongelijkheid
(1.2.1)
definieert een halfvlak begrensd door een rechte lijn.

Aan de ene kant van deze rechte lijn, en aan de andere kant.

Op de zeer rechte lijn.

Om erachter te komen aan welke kant de ongelijkheid (1.2.1) geldt, kiezen we een willekeurig punt dat niet op de lijn ligt. Vervolgens vervangen we de coördinaten van dit punt in (1.2.1). Als de ongelijkheid geldt, bevat het halfvlak het geselecteerde punt. Als de ongelijkheid niet geldt, bevindt het halfvlak zich aan de andere kant (bevat niet het geselecteerde punt). Schaduw het halve vlak waarvoor ongelijkheid (1.2.1) geldt.
(2)
Hetzelfde doen we voor de overige ongelijkheden van systeem (1.2). Op deze manier krijgen we schaduwrijke halfvlakken. De punten van de regio van haalbare oplossingen voldoen aan alle ongelijkheden (1.2). Grafisch gezien is het gebied van toelaatbare oplossingen (ADA) daarom het snijpunt van alle geconstrueerde halfvlakken. De ODR in de schaduw stellen. Het is een convexe veelhoek waarvan de vlakken tot de geconstrueerde lijnen behoren. Ook kan een ODF een onbeperkt convex figuur, een segment, een straal of een rechte lijn zijn.

Als aan ten minste één ongelijkheid niet wordt voldaan, kies dan een ander punt. En zo verder totdat er één punt wordt gevonden waarvan de coördinaten voldoen aan systeem (1.2).

Het vinden van het uiterste van de objectieve functie

We hebben dus een gearceerd gebied van haalbare oplossingen (ADA). Het wordt begrensd door een onderbroken lijn bestaande uit segmenten en stralen die behoren tot de geconstrueerde rechte lijnen (2). De ODS is altijd een convexe verzameling. Het kan een begrensde verzameling zijn, of in sommige richtingen niet begrensd.

Nu kunnen we op zoek gaan naar het uiterste objectieve functie
(1.1) .

Om dit te doen, kiest u een willekeurig getal en bouwt u een rechte lijn
(3) .
Voor het gemak van verdere presentatie nemen we aan dat deze rechte lijn door de ODR loopt. Op deze lijn is de doelfunctie constant en gelijk aan .
.
zo'n rechte lijn wordt een functieniveaulijn genoemd.
.
Deze rechte lijn verdeelt het vlak in twee halve vlakken. Op één halfvlak

Op een ander halfvlak

Dat wil zeggen dat aan één kant van rechte lijn (3) de objectieffunctie toeneemt. En hoe verder we het punt van de rechte lijn (3) verplaatsen, hoe groter de waarde zal zijn.

Aan de andere kant van rechte lijn (3) neemt de objectieffunctie af. En hoe verder we het punt van rechte lijn (3) naar de andere kant verplaatsen, hoe kleiner de waarde zal zijn.
.
Als we een rechte lijn trekken evenwijdig aan lijn (3), dan zal de nieuwe rechte lijn ook een niveaulijn van de doelfunctie zijn, maar met een andere waarde.
.

Er kan ook een geval zijn waarin de rechte lijn evenwijdig is aan een van de vlakken van de ODR. Vervolgens loopt de rechte lijn door twee hoekpunten van de ODR-polygoon. We bepalen de coördinaten van deze hoekpunten. Om de maximale (minimale) waarde van de doelfunctie te bepalen, kunt u de coördinaten van elk van deze hoekpunten gebruiken:
.
Het probleem heeft oneindig veel oplossingen. De oplossing is elk punt dat zich op het segment tussen de punten en bevindt, inclusief de punten en zichzelf.

Een voorbeeld van het oplossen van een lineair programmeerprobleem met behulp van de grafische methode

Probleemtoestand

Het bedrijf produceert jurken van twee modellen A en B. Er worden drie soorten stoffen gebruikt. Om één jurk van model A te maken, zijn 2 m stof van het eerste type, 1 m stof van het tweede type en 2 m stof van het derde type nodig. Om één jurk van model B te maken, is 3 m stof van het eerste type, 1 m stof van het tweede type en 2 m stof van het derde type nodig. De voorraad stof van het eerste type bedraagt ​​21 m, van het tweede type - 10 m, van het derde type - 16 m. eenheden, één producttype B - 300 den. eenheden

Stel een productieplan op dat het bedrijf het grootste inkomen oplevert. Los het probleem grafisch op.

Oplossing

Laat de variabelen het aantal geproduceerde jurken aangeven, respectievelijk modellen A en B. Dan is de hoeveelheid stof van het eerste type die wordt geconsumeerd:
(M)
De hoeveelheid stof van het tweede type die wordt verbruikt, is:
(M)
De hoeveelheid stof van het derde type die wordt geconsumeerd, is:
(M)
Omdat het aantal geproduceerde jurken dus niet negatief kan zijn
En .
De inkomsten uit de geproduceerde jurken bedragen:
(den. eenheden)

Het economisch-wiskundige model van het probleem heeft dan de vorm:


Wij lossen het grafisch op.
We tekenen de coördinaatassen en .

We bouwen een rechte lijn.
Bij .
Bij .
Trek een rechte lijn door de punten (0; 7) en (10,5; 0).

We bouwen een rechte lijn.
Bij .
Bij .
Trek een rechte lijn door de punten (0; 10) en (10; 0).

We bouwen een rechte lijn.
Bij .
Bij .
Trek een rechte lijn door de punten (0; 8) en (8; 0).



We verduisteren het gebied zodat het punt (2; 2) in het gearceerde gedeelte valt. We krijgen de vierhoek OABC.


(A1.1) .
Bij .
Bij .
Trek een rechte lijn door de punten (0; 4) en (3; 0).

We merken verder op dat, aangezien de coëfficiënten van en van de objectieve functie positief zijn (400 en 300), deze toeneemt naarmate en toeneemt.
.

We trekken een rechte lijn evenwijdig aan de rechte lijn (A1.1), zo ver mogelijk ervan in de richting van toenemend , en die door ten minste één punt van de vierhoek OABC gaat. Zo'n lijn loopt door punt C. Uit de constructie bepalen we de coördinaten.

Oplossing voor het probleem: ;

.
Antwoord

Dat wil zeggen, om het grootste inkomen te verkrijgen, is het noodzakelijk om 8 jurken van model A te maken. Het inkomen zal 3200 den zijn. eenheden

Probleemtoestand

Los een lineair programmeerprobleem grafisch op.

Oplossing

Wij lossen het grafisch op.
We tekenen de coördinaatassen en .

We bouwen een rechte lijn.
Bij .
Bij .
Trek een rechte lijn door de punten (0; 6) en (6; 0).

We bouwen een rechte lijn.
Vanaf hier.
Bij .
Bij .
Trek een rechte lijn door de punten (3; 0) en (7; 2).

We bouwen een rechte lijn.
We bouwen een rechte lijn (abscissa-as).

Het gebied van toelaatbare oplossingen (ADA) wordt beperkt door de aangelegde rechte lijnen. Om erachter te komen welke kant we hebben, merken we op dat het punt tot de ODR behoort, omdat het voldoet aan het systeem van ongelijkheden:

We verduisteren het gebied langs de grenzen van de geconstrueerde lijnen zodat punt (4; 1) in het gearceerde gedeelte valt. We krijgen driehoek ABC.

We bouwen een willekeurige lijn van het niveau van de objectieve functie, bijvoorbeeld
.
Bij .
Bij .
Trek een rechte waterpaslijn door de punten (0; 6) en (4; 0).
Omdat de doelfunctie toeneemt met toenemende en , trekken we een rechte lijn evenwijdig aan de niveaulijn en zo ver mogelijk daarvandaan in de richting van toenemende , en die door ten minste één punt van driehoek ABC gaat. Zo'n lijn loopt door punt C. Uit de constructie bepalen we de coördinaten.
.

We trekken een rechte lijn evenwijdig aan de rechte lijn (A1.1), zo ver mogelijk ervan in de richting van toenemend , en die door ten minste één punt van de vierhoek OABC gaat. Zo'n lijn loopt door punt C. Uit de constructie bepalen we de coördinaten.

Oplossing voor het probleem: ;

Voorbeeld van geen oplossing

Probleemtoestand

Los een lineair programmeerprobleem grafisch op. Zoek de maximale en minimale waarde van de doelfunctie.

Oplossing

We lossen het probleem grafisch op.
We tekenen de coördinaatassen en .

We bouwen een rechte lijn.
Bij .
Bij .
Trek een rechte lijn door de punten (0; 8) en (2,667; 0).

We bouwen een rechte lijn.
Bij .
Bij .
Trek een rechte lijn door de punten (0; 3) en (6; 0).

We bouwen een rechte lijn.
Bij .
Bij .
Trek een rechte lijn door de punten (3; 0) en (6; 3).

De rechte lijnen zijn de coördinaatassen.

Het gebied van toelaatbare oplossingen (ADA) wordt beperkt door de geconstrueerde rechte lijnen en coördinaatassen. Om erachter te komen welke kant we hebben, merken we op dat het punt tot de ODR behoort, omdat het voldoet aan het systeem van ongelijkheden:

We verduisteren het gebied zodat het punt (3; 3) in het gearceerde gedeelte valt. We verkrijgen een onbegrensd gebied dat wordt begrensd door de stippellijn ABCDE.

We bouwen een willekeurige lijn van het niveau van de objectieve functie, bijvoorbeeld
(A3.1) .
Bij .
Bij .
Trek een rechte lijn door de punten (0; 7) en (7; 0).
Omdat de coëfficiënten van en positief zijn, neemt deze toe met toenemende en .

Om het maximum te vinden, moet je een evenwijdige lijn trekken, die zo ver mogelijk weg is in de richting van toenemend en die door ten minste één punt van de regio ABCDE gaat. Omdat het gebied echter onbeperkt is aan de kant van grote waarden van en , kan zo'n rechte lijn niet worden getrokken. Welke rechte lijn we ook trekken, er zullen altijd punten in de regio zijn die verder weg liggen in de richting van toenemende en .

Er is dus geen maximum. je kunt het zo groot maken als je wilt.
.
Wij zoeken het minimum. We trekken een rechte lijn evenwijdig aan de rechte lijn (A3.1) en zo ver mogelijk daarvandaan in de afnemende richting, en gaat door ten minste één punt van het gebied ABCDE. Zo'n lijn loopt door punt C. Uit de constructie bepalen we de coördinaten. Minimale waarde

Oplossing voor het probleem: ;

objectieve functie: Maximale waarde
bestaat niet.
.

Lineaire programmering

Lineaire programmering- een wiskundige discipline gewijd aan de theorie en methoden voor het oplossen van extreme problemen op sets van dimensionale vectorruimte gedefinieerd door systemen van lineaire vergelijkingen en ongelijkheden.

Lineair programmeren is een speciaal geval van convex programmeren, wat op zijn beurt weer een speciaal geval is van wiskundig programmeren. Tegelijkertijd is het de basis van verschillende methoden voor het oplossen van integer- en niet-lineaire programmeerproblemen. Een generalisatie van lineaire programmering is fractionele lineaire programmering.

Veel eigenschappen van lineaire programmeerproblemen kunnen ook worden geïnterpreteerd als eigenschappen van veelvlakken en dus geometrisch geformuleerd en bewezen.

Verhaal

De interne puntmethode werd voor het eerst genoemd door I.I. Dikin in 1967.

Taken

Het belangrijkste (standaard) lineaire programmeerprobleem wordt het probleem genoemd van het vinden van het minimum van een lineaire objectieve functie ( lineaire vorm) van het formulier:

onder voorwaarden

, .

Het lineaire programmeringsprobleem zal hebben canonieke visie , als er in het hoofdprobleem in plaats van het eerste systeem van ongelijkheden een systeem van vergelijkingen bestaat:

,

Het hoofdprobleem kan worden teruggebracht tot een canoniek probleem door aanvullende variabelen te introduceren.

Lineaire programmeerproblemen van de meest algemene vorm (problemen met gemengde beperkingen: gelijkheden en ongelijkheden, de aanwezigheid van variabelen die vrij zijn van beperkingen) kunnen worden teruggebracht tot gelijkwaardige problemen (met dezelfde reeks oplossingen) door variabelen te vervangen en gelijkheden te vervangen door een paar ongelijkheden.

Het is gemakkelijk in te zien dat het probleem van het vinden van het maximum kan worden vervangen door de taak van het vinden van het minimum door coëfficiënten met het tegenovergestelde teken te nemen.

Voorbeeldproblemen

Maximale matching

Beschouw het maximale matchingprobleem in een bipartiete grafiek: er zijn meerdere jongens en meisjes, en van elke jongen en meisje is bekend of ze aantrekkelijk voor elkaar zijn. Moet trouwen maximaal aantal paren met wederzijdse sympathie.

Laten we variabelen introduceren die overeenkomen met het paar van de -jongen en het -meisje en aan de beperkingen voldoen:

met objectieve functie. Er kan worden aangetoond dat er onder de optimale oplossingen voor dit probleem een ​​geheel getal bestaat. Variabelen gelijk aan 1 komen overeen met paren die zouden moeten trouwen.

Maximale stroom

Laat er een grafiek zijn (met georiënteerde randen), waarin voor elke rand zijn doorvoer. En er worden twee hoekpunten gegeven: drain en source. Het is noodzakelijk om voor elke rand aan te geven hoeveel vloeistof er doorheen zal stromen (niet meer dan de capaciteit ervan), om de totale stroom van bron naar afvoer te maximaliseren (vloeistof kan niet op alle hoekpunten verschijnen of verdwijnen behalve de afvoer en de bron).

Laten we als variabelen de hoeveelheid vloeistof nemen die door de ribbe stroomt. Dan

,

waar is de capaciteit van die rand. Deze ongelijkheden moeten worden aangevuld met de gelijkheid van de hoeveelheid instromende en uitstromende vloeistof voor elk hoekpunt, behalve voor de afvoer en de bron. Als functie is het normaal om het verschil te nemen tussen de hoeveelheid uitstromende en instromende vloeistof bij de bron.

Een generalisatie van het voorgaande probleem is een maximale stroom tegen minimale kosten. In dit probleem worden de kosten voor elke rand gegeven en moet u uit de maximale stromen de stroom met de minimale kosten selecteren. Dit probleem komt neer op twee lineaire programmeerproblemen: eerst moet je het probleem van de maximale stroom oplossen, en dan aan dit probleem de beperking toevoegen, waar is de waarde van de maximale stroom, en het probleem oplossen met nieuwe functie- stroomkosten.

Deze problemen kunnen sneller worden opgelost dan met algemene algoritmen voor het oplossen van lineaire programmeerproblemen vanwege de speciale structuur van vergelijkingen en ongelijkheden.

Transport taak

Er is een bepaalde homogene lading die van magazijnen naar fabrieken moet worden overgebracht. Van elk magazijn is bekend hoeveel vracht het bevat, en van elke fabriek is de vraag naar vracht bekend. De transportkosten zijn evenredig met de afstand van het magazijn tot de fabriek (alle afstanden van het e magazijn tot de e fabriek zijn bekend). Het is vereist om het meeste te componeren goedkoop abonnement vervoer.

Beslissende variabelen in in dit geval zijn de hoeveelheden vracht die van het e magazijn naar de e fabriek zijn vervoerd. Ze voldoen aan de beperkingen:

De doelfunctie heeft de vorm: , die geminimaliseerd moet worden.

Nulsomspel

Er is een maatmatrix. De eerste speler kiest een getal van 1 tot , de tweede - van 1 tot . Vervolgens controleren ze de cijfers en de eerste speler krijgt punten, en de tweede krijgt punten (het door de eerste speler gekozen nummer krijgt de tweede). We moeten de optimale strategie voor de eerste speler vinden.

Stel dat in een optimale strategie de startspeler bijvoorbeeld een getal met waarschijnlijkheid moet kiezen. Dan is de optimale strategie een oplossing voor het volgende lineaire programmeerprobleem:

, , (),

waarin de functie moet worden gemaximaliseerd. De waarde in de optimale oplossing zal de wiskundige verwachting zijn van de uitbetaling van de eerste speler in het ergste geval.

Oplossingsalgoritmen

De bekendste en meest gebruikte in de praktijk om op te lossen gemeenschappelijke taak Lineair programmeren (LP) is een simplexmethode. Ondanks het feit dat de simplexmethode een redelijk effectief algoritme is, is dat gebleken goede resultaten bij het oplossen van toegepaste LP-problemen is het een algoritme met exponentiële complexiteit. De reden hiervoor is het combinatorische karakter van de simplexmethode, die opeenvolgend de hoekpunten van het veelvlak van haalbare oplossingen opsomt bij het zoeken naar de optimale oplossing.

Het eerste polynoomalgoritme, de ellipsoïdemethode, werd in 1979 voorgesteld door de Sovjetwiskundige L. Khachiyan, waarmee het probleem werd opgelost voor een lange tijd bleef onopgelost. De ellipsoïdemethode heeft een geheel ander, niet-combinatorisch karakter dan de simplexmethode. Vanuit computationeel oogpunt bleek deze methode echter weinig belovend. Het feit zelf van de polynomiale complexiteit van problemen leidde echter tot de creatie van een hele klasse efficiënte algoritmen LP - methoden voor interne punten, waarvan de eerste het algoritme van N. Karmarkar was, voorgesteld in 1984. Algoritmen van dit type gebruiken een continue interpretatie van het LP-probleem, wanneer in plaats van het opsommen van de hoekpunten van het veelvlak van oplossingen voor het LP-probleem, wordt gezocht langs trajecten in de ruimte. probleemvariabelen, die niet door de hoekpunten van het veelvlak gaat. De interne puntmethode, die, in tegenstelling tot de simplexmethode, punten uit het binnenste van de regio omzeilt aanvaardbare waarden, maakt gebruik van niet-lineaire programmeermethoden met logbarrières, ontwikkeld in de jaren zestig door Fiacco en McCormick.

Zie ook

  • Grafische methode voor het oplossen van een lineair programmeerprobleem

Opmerkingen

Literatuur

  • Thomas H. Corman et al. Hoofdstuk 29. Lineair programmeren // Algoritmen: constructie en analyse = INLEIDING TOT ALGORITMEN. - 2e druk. - M.: “Williams”, 2006. - P. 1296. - ISBN 5-8459-0857-4
  • Akulich I.L. Hoofdstuk 1. Lineaire programmeerproblemen, Hoofdstuk 2. Speciale lineaire programmeerproblemen // Wiskundig programmeren in voorbeelden en problemen. - M.: Hogere School, 1986. - 319 p. - ISBN 5-06-002663-9
  • Karmanov V.G. Wiskundig programmeren. - 3e editie. - M.: Nauka, 1986. - 288 p.
  • Danzig George Bernard "Herinneringen aan het begin van lineaire programmering"

Koppelingen

  • - Gratis optimalisatiepakket ontworpen om lineaire, integer- en doelprogrammeringsproblemen op te lossen.
  • Vershik A. M. “Over L. V. Kantorovich en lineaire programmering”
  • Bolshakova I.V., Kuralenko M.V. “Lineaire programmering. Educatieve en methodologische handleiding voor de test."
  • Barsov A. S. “Wat is lineair programmeren”, Populaire lezingen over wiskunde, Gostekhizdat, 1959.
  • MN Vyalyi Lineaire ongelijkheden en combinatoriek. - MCNMO, 2003.

Stichting Wikimedia.

  • 2010.
  • Salten, Felix

Glagow, Martina

Lineaire programmering

Lineaire programmering- een wiskundige discipline gewijd aan de theorie en methoden voor het oplossen van extreme problemen op sets van dimensionale vectorruimte gedefinieerd door systemen van lineaire vergelijkingen en ongelijkheden.

Lineair programmeren is een speciaal geval van convex programmeren, wat op zijn beurt weer een speciaal geval is van wiskundig programmeren. Tegelijkertijd is het de basis van verschillende methoden voor het oplossen van integer- en niet-lineaire programmeerproblemen. Een generalisatie van lineaire programmering is fractionele lineaire programmering.

Veel eigenschappen van lineaire programmeerproblemen kunnen ook worden geïnterpreteerd als eigenschappen van veelvlakken en dus geometrisch geformuleerd en bewezen.

Verhaal

De interne puntmethode werd voor het eerst genoemd door I.I. Dikin in 1967.

Taken

Het belangrijkste (standaard) lineaire programmeerprobleem Economisch-wiskundig woordenboek

onder voorwaarden

, .

Het lineaire programmeringsprobleem zal hebben wordt het probleem genoemd van het vinden van het minimum van een lineaire objectieve functie (lineaire vorm) van de vorm: , als er in het hoofdprobleem in plaats van het eerste systeem van ongelijkheden een systeem van vergelijkingen bestaat:

,

Het hoofdprobleem kan worden teruggebracht tot een canoniek probleem door aanvullende variabelen te introduceren.

Lineaire programmeerproblemen van de meest algemene vorm (problemen met gemengde beperkingen: gelijkheden en ongelijkheden, de aanwezigheid van variabelen die vrij zijn van beperkingen) kunnen worden teruggebracht tot gelijkwaardige problemen (met dezelfde reeks oplossingen) door variabelen te vervangen en gelijkheden te vervangen door een paar ongelijkheden.

Het is gemakkelijk in te zien dat het probleem van het vinden van het maximum kan worden vervangen door de taak van het vinden van het minimum door coëfficiënten met het tegenovergestelde teken te nemen.

Voorbeeldproblemen

Maximale matching

canonieke visie

Laten we variabelen introduceren die overeenkomen met het paar van de -jongen en het -meisje en aan de beperkingen voldoen:

met objectieve functie. Er kan worden aangetoond dat er onder de optimale oplossingen voor dit probleem een ​​geheel getal bestaat. Variabelen gelijk aan 1 komen overeen met paren die zouden moeten trouwen.

Maximale stroom

Beschouw het maximale matchingprobleem in een bipartiete grafiek: er zijn meerdere jongens en meisjes, en van elke jongen en meisje is bekend of ze aantrekkelijk voor elkaar zijn. We moeten het maximale aantal paren met wederzijdse sympathie trouwen.

Laten we als variabelen de hoeveelheid vloeistof nemen die door de ribbe stroomt. Dan

,

waar is de capaciteit van die rand. Deze ongelijkheden moeten worden aangevuld met de gelijkheid van de hoeveelheid instromende en uitstromende vloeistof voor elk hoekpunt, behalve voor de afvoer en de bron. Als functie is het normaal om het verschil te nemen tussen de hoeveelheid uitstromende en instromende vloeistof bij de bron.

Laat er een grafiek zijn (met georiënteerde randen) waarin voor elke rand de capaciteit ervan wordt aangegeven. En er worden twee hoekpunten gegeven: drain en source. Het is noodzakelijk om voor elke rand aan te geven hoeveel vloeistof er doorheen zal stromen (niet meer dan de capaciteit ervan), om de totale stroom van bron naar afvoer te maximaliseren (vloeistof kan niet op alle hoekpunten verschijnen of verdwijnen behalve de afvoer en de bron).

Deze problemen kunnen sneller worden opgelost dan met algemene algoritmen voor het oplossen van lineaire programmeerproblemen vanwege de speciale structuur van vergelijkingen en ongelijkheden.

Transport taak

Een generalisatie van het voorgaande probleem is een maximale stroom tegen minimale kosten. In dit probleem worden de kosten voor elke rand gegeven en moet u uit de maximale stromen de stroom met de minimale kosten selecteren. Dit probleem komt neer op twee lineaire programmeerproblemen: eerst moet je het probleem van de maximale stroom oplossen, en dan aan dit probleem de beperking toevoegen, waar is de waarde van de maximale stroom, en het probleem oplossen met een nieuwe functie - de kosten van de stroom.

De doorslaggevende variabelen in dit geval zijn de hoeveelheden vracht die van het e magazijn naar de e fabriek worden vervoerd. Ze voldoen aan de beperkingen:

De doelfunctie heeft de vorm: , die geminimaliseerd moet worden.

Nulsomspel

Er is een maatmatrix. De eerste speler kiest een getal van 1 tot , de tweede - van 1 tot . Vervolgens controleren ze de cijfers en de eerste speler krijgt punten, en de tweede krijgt punten (het door de eerste speler gekozen nummer krijgt de tweede). We moeten de optimale strategie voor de eerste speler vinden.

Stel dat in een optimale strategie de startspeler bijvoorbeeld een getal met waarschijnlijkheid moet kiezen. Dan is de optimale strategie een oplossing voor het volgende lineaire programmeerprobleem:

, , (),

waarin de functie moet worden gemaximaliseerd. De waarde in de optimale oplossing zal de wiskundige verwachting zijn van de uitbetaling van de eerste speler in het ergste geval.

Oplossingsalgoritmen

De meest bekende en in de praktijk meest gebruikte methode voor het oplossen van een algemeen lineair programmeerprobleem (LP) is de simplexmethode. Ondanks het feit dat de simplexmethode een redelijk effectief algoritme is dat goede resultaten heeft laten zien bij het oplossen van toegepaste LP-problemen, is het een algoritme met exponentiële complexiteit. De reden hiervoor is het combinatorische karakter van de simplexmethode, die opeenvolgend de hoekpunten van het veelvlak van haalbare oplossingen opsomt bij het zoeken naar de optimale oplossing.

Het eerste polynoomalgoritme, de ellipsoïdemethode, werd in 1979 voorgesteld door de Sovjetwiskundige L. Khachiyan, waarmee een probleem werd opgelost dat lange tijd onopgelost was gebleven. De ellipsoïdemethode heeft een geheel ander, niet-combinatorisch karakter dan de simplexmethode. Vanuit computationeel oogpunt bleek deze methode echter weinig belovend. Niettemin leidde juist het feit van de polynomiale complexiteit van problemen tot de creatie van een hele klasse van effectieve LP-algoritmen - methoden voor interne punten, waarvan de eerste het algoritme van N. Karmarkar was, voorgesteld in 1984. Algoritmen van dit type gebruiken een continue interpretatie van het LP-probleem, wanneer in plaats van het opsommen van de hoekpunten van het veelvlak voor oplossingen voor het LP-probleem, wordt gezocht langs trajecten in de ruimte van probleemvariabelen die niet door de hoekpunten van het LP-probleem gaan. het veelvlak. De interne puntmethode, die, in tegenstelling tot de simplexmethode, punten vanuit het binnenste van het haalbare gebied doorkruist, maakt gebruik van niet-lineaire programmeermethoden met logbarrières die in de jaren zestig zijn ontwikkeld door Fiacco en McCormick.

Zie ook

  • Grafische methode voor het oplossen van een lineair programmeerprobleem

Opmerkingen

Literatuur

  • Thomas H. Corman et al. Hoofdstuk 29. Lineair programmeren // Algoritmen: constructie en analyse = INLEIDING TOT ALGORITMEN. - 2e druk. - M.: “Williams”, 2006. - P. 1296. - ISBN 5-8459-0857-4
  • Akulich I.L. Hoofdstuk 1. Lineaire programmeerproblemen, Hoofdstuk 2. Speciale lineaire programmeerproblemen // Wiskundig programmeren in voorbeelden en problemen. - M.: Hogere School, 1986. - 319 p. - ISBN 5-06-002663-9
  • Karmanov V.G. Wiskundig programmeren. - 3e editie. - M.: Nauka, 1986. - 288 p.
  • Danzig George Bernard "Herinneringen aan het begin van lineaire programmering"

Koppelingen

  • - Gratis optimalisatiepakket ontworpen om lineaire, integer- en doelprogrammeringsproblemen op te lossen.
  • Vershik A. M. “Over L. V. Kantorovich en lineaire programmering”
  • Bolshakova I.V., Kuralenko M.V. “Lineaire programmering. Educatieve en methodologische handleiding voor de test."
  • Barsov A. S. “Wat is lineair programmeren”, Populaire lezingen over wiskunde, Gostekhizdat, 1959.
  • MN Vyalyi Lineaire ongelijkheden en combinatoriek. - MCNMO, 2003.

Stichting Wikimedia.

  • 2010.
  • Salten, Felix

Glagow, Martina

    Zie wat "Lineair programmeren" is in andere woordenboeken:- - lineaire programmering Een gebied van wiskundige programmering gewijd aan de theorie en methoden voor het oplossen van extreme problemen, gekenmerkt door een lineaire relatie tussen ... ... tussen… …

    Lineaire programmering

    Lineaire programmering Handleiding voor technische vertalers - een gebied van wiskundig programmeren gewijd aan de theorie en methoden voor het oplossen van extreme problemen die worden gekenmerkt door een lineaire relatie tussen variabelen. In zijn meest algemene vorm is het probleem van L.p. kan zo geschreven worden. Dan... ...

Lineair programmeren is een van de meest voorkomende belangrijke secties wiskunde, waar de theoretische en methodologische grondslagen voor het oplossen van bepaalde problemen worden bestudeerd. Deze wiskundige discipline wordt veel gebruikt in de afgelopen jaren op verschillende economische en technische gebieden, waar niet de minste rol wordt gespeeld door wiskundige planning en gebruik automatische systemen berekeningen. Deze tak van de wetenschap is gewijd aan de studie van lineaire optimalisatiemodellen. Dat wil zeggen: lineair programmeren gaat over getallen. Voor de eerste keer deze termijn werd in 1951 voorgesteld door T. Koopmans. Optimaal plan elk lineair programma automatisch gekoppeld moet worden optimaal niveau prijzen, dat wil zeggen met objectief bepaalde beoordelingen.

Lineaire programmering: methoden

Met behulp van deze techniek is het mogelijk een aanzienlijk aantal extreme economische problemen op te lossen. In dit geval is het meestal nodig om de extreme waarden van sommige functies van een variabele waarde te vinden. De oplossing voor een systeem van transformeerbare vergelijkingen en ongelijkheden wordt uitgedrukt als de basis van lineaire programmering. Dit soort programmeren wordt gekenmerkt door een wiskundige formulering van variabelen, een volgorde en een bepaalde volgorde van berekeningen, evenals logische analyse. Dit geldt:

Als er wiskundige zekerheid en kwantitatieve beperking bestaat tussen de factoren die worden bestudeerd variabele hoeveelheden;

Als er sprake is van uitwisselbaarheid van factoren vanwege de volgorde van berekeningen;

Als wiskundige logica wordt gecombineerd met inzicht in de essentie van de verschijnselen die worden bestudeerd.

Lineaire programmering helpt bij het berekenen van de optimale prestaties van alle machines, productielijnen, eenheden, en bij het oplossen van problemen van rationeel gebruik van beschikbare materialen.

In de landbouw gebruikt deze methode De minimale kosten van het voedingsrantsoen worden bepaald rekening houdend met de beschikbare hoeveelheid voer. Hierbij wordt rekening gehouden met de soorten en inhoud van bepaalde heilzame stoffen daarin.

In gieterij deze techniek stelt u in staat een oplossing te vinden transport probleem en problemen met mengsels die deel uitmaken van de metallurgische lading. De essentie van het transportprobleem impliceert in dit geval de optimale gehechtheid van consumerende bedrijven aan bedrijven die zich bezighouden met productie.

Lineaire programmering: problemen

Onderscheidend kenmerk iedereen economische taken, die worden opgelost met behulp van lineaire programmeertechnieken, is de keuze bepaalde opties oplossingen, maar ook randvoorwaarden. Door een dergelijk probleem op te lossen, is het mogelijk om voor iedereen de optimale oplossing te vinden alternatieve opties.

Een belangrijke waarde van het gebruik van lineaire programmeertechnieken in de economie is de keuze van de optimale optie van grote hoeveelheid alle opties die aanvaardbaar worden geacht. Dergelijke problemen zijn bijna onmogelijk op andere manieren op te lossen, omdat ze ons alleen in staat stellen de mate van rationaliteit van de toepassing te vinden. Met behulp van lineaire programmering wordt een dergelijk basisprobleem als transport opgelost, wat de vrachtomzet van consumptiegoederen tijdens de levering ervan zou moeten minimaliseren van de fabrikant.

Lineair programmeren in Excel

Bij het oplossen van dergelijke problemen is het eerst noodzakelijk om een ​​model te creëren, wat de formulering van voorwaarden impliceert wiskundige taal. Na deze fase kan een oplossing worden gevonden door grafische methode. Voor dit doel in Excel-programma bestaat speciale functie"Een oplossing vinden."

Zoals uit het bovenstaande al duidelijk is, heeft lineair programmeren een zeer breed toepassingsgebied.

15. Analytische methoden. Lineaire programmeermethoden.

15.1. Analytische methoden

Gedurende zijn hele evolutie heeft de mens bij het uitvoeren van bepaalde handelingen geprobeerd zich zo te gedragen dat het resultaat dat als gevolg van een bepaalde handeling werd bereikt, in zekere zin het beste bleek te zijn. Terwijl hij van het ene punt naar het andere ging, probeerde hij de kortst mogelijke weg te vinden. Bij het bouwen van een woning zocht hij naar een geometrie die, met het minste brandstofverbruik, een acceptabele geometrie zou opleveren comfortabele omstandigheden bestaan. Bij het bouwen van schepen probeerde hij ze een vorm te geven waarin het water de minste weerstand zou bieden. De lijst met soortgelijke voorbeelden kan gemakkelijk worden voortgezet.

Meestal worden de beste oplossingen voor problemen in zekere zin genoemd optimaal. Momenteel kan geen enkel probleem worden opgelost zonder het gebruik van optimalisatieprincipes. complex probleem. Bij het stellen en oplossen van optimalisatieproblemen rijzen er twee vragen: wat en hoe optimaliseren?

Het antwoord op de eerste vraag wordt verkregen als resultaat van een diepgaande studie van het op te lossen probleem. De parameter die de mate van perfectie bepaalt van de oplossing voor het gerezen probleem, wordt geïdentificeerd. Deze parameter wordt meestal aangeroepen doelfunctie of kwaliteitscriterium. Vervolgens wordt een reeks grootheden vastgesteld die de objectieve functie bepalen. Ten slotte worden alle beperkingen geformuleerd waarmee rekening moet worden gehouden bij het oplossen van het probleem. Hierna wordt een wiskundig model geconstrueerd, dat bestaat uit het vaststellen van de analytische afhankelijkheid van de objectieve functie van alle argumenten en de analytische formulering van de beperkingen die aan het probleem zijn gekoppeld. Vervolgens gaan we op zoek naar een antwoord op de tweede vraag.

Dus als als gevolg van de formalisering van het toegepaste probleem wordt vastgesteld dat de objectieve functie , waarbij de verzameling X een generalisatie van beperkingen is, wordt dit de verzameling haalbare oplossingen genoemd. De essentie van het optimalisatieprobleem is het zoeken op de verzameling X - de verzameling haalbare oplossingen voor een dergelijke oplossing
, waarbij de doelfunctie F zijn minimale of maximale waarde bereikt.

Een integraal onderdeel van optimalisatiemethoden is lineair programmeren.

15.2. Basisconcepten van lineair programmeren

De eerste vermelding (1938) van wiskundige methoden voor effectief productiebeheer is van de Sovjet-wiskundige L. V. Kantorovich. Een jaar later, in 1939, publiceerde L. V. Kantorovich het werk "Wiskundige methoden voor het organiseren en plannen van de productie" en paste de verkregen resultaten praktisch toe. De term ‘lineair programmeren’ werd eind jaren veertig geïntroduceerd door de Amerikaanse wiskundigen J. Danzig en T. Koopmans. J. Dantzig ontwikkelde het wiskundige apparaat van de simplexmethode voor het oplossen van lineaire programmeerproblemen (1951). Simplex-methode wordt gebruikt om een ​​breed scala aan lineaire programmeerproblemen op te lossen en is nog steeds een van de belangrijkste methoden.

Lineair programmeren is een tak van de wiskunde die zich richt op het vinden van een extremum (maximum of minimum) in beschreven problemen lineaire vergelijkingen. Bovendien beschrijven lineaire vergelijkingen zowel de objectieve functie zelf als de invoerparameters (variabelen) van de voorwaarden voor beperkingen invoerparameters. Een noodzakelijke voorwaarde voor lineaire programmeringsproblemen is de verplichte aanwezigheid van beperkingen op hulpbronnen (grondstoffen, materialen, financiën, vraag naar gefabriceerde producten, enz.). Aan anderen een belangrijke voorwaarde het oplossen van het probleem is de keuze van het stopcriterium voor het algoritme, dat wil zeggen dat de objectieve functie in zekere zin optimaal moet zijn. De optimaliteit van de doelfunctie moet kwantitatief worden uitgedrukt. Als de doelfunctie wordt weergegeven door een of twee vergelijkingen, kunnen dergelijke problemen in de praktijk vrij eenvoudig worden opgelost. Het algoritme-stopcriterium (of optimaliteitscriterium) moet aan de volgende eisen voldoen:

    de enige zijn voor een bepaalde taak;

    gemeten in hoeveelheidseenheden;

    lineair afhankelijk van de invoerparameters.

Op basis van het bovenstaande kunnen we het lineaire programmeerprobleem in algemene vorm formuleren:

vind het uiterste van de objectieve functie

onder beperkingen in de vorm van gelijkheid:

(2.2)

onder beperkingen in de vorm van ongelijkheid:

(2.3)

en voorwaarden voor niet-negativiteit van invoerparameters:

In korte vorm kan het lineaire programmeerprobleem als volgt worden geschreven:

(2.5)

gezien dat

Waar
- invoervariabelen;

Getallen zijn positief, negatief en gelijk aan nul.

In matrixvorm kan dit probleem als volgt worden geschreven:

Lineaire programmeerproblemen kunnen analytisch en grafisch worden opgelost.

15.3. Canonisch lineair programmeerprobleem

, ik=1,…,m,

, j=1,…,n.

De belangrijkste computationele methoden voor het oplossen van lineaire programmeerproblemen zijn specifiek ontwikkeld voor het canonieke probleem.

15.4. Algemeen lineair programmeerprobleem

Het is noodzakelijk om een ​​lineaire functie van te maximaliseren (minimaliseren). N variabelen.

onder beperkingen

, i=1,…, k,

, i=1+ k,…, M,

, …,

Hier kM, RN. Het standaardprobleem wordt verkregen als een speciaal geval van het algemene probleem k= M, R= N; canoniek – op k=0, R= N.

Voorbeeld.

De zoetwarenfabriek produceert verschillende soorten snoep. Laten we ze "A", "B" en "C" noemen. Het is bekend dat de verkoop van tien kilo snoep "A" een winst oplevert van 90 roebel, "B" - 100 roebel en "C" - 160 roebel. Snoep kan in elke hoeveelheid worden geproduceerd (de verkoop is gegarandeerd), maar de grondstoffenvoorraad is beperkt. Het is noodzakelijk om te bepalen wat voor soort snoep en hoeveel tientallen kilo's er moeten worden geproduceerd, zodat de totale winst uit de verkoop wordt gemaximaliseerd. De consumptiecijfers van grondstoffen voor de productie van 10 kg snoep van elk type worden gegeven in Tabel 1.

Tabel 1. Grondstoffenverbruik

voor productie

De economische en wiskundige formulering van het probleem heeft de vorm

Zoek dergelijke variabelewaarden X=(x1, x2, x3), naar

objectieve functie

onder voorwaarden-beperkingen: