Optimering (matematik)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 25 september 2021; kontroller kräver 4 redigeringar .

Optimering (inom matematik , datavetenskap och operationsforskning ) är uppgiften att hitta ett extremum (minimum eller maximum) av en objektiv funktion i någon region av ett ändligt dimensionellt vektorrum , begränsat av en uppsättning linjära och/eller icke- linjära jämlikheter och/eller ojämlikheter .

Teorin och metoderna för att lösa ett optimeringsproblem studeras genom matematisk programmering .

Matematisk programmering  är en gren av matematiken som utvecklar teori, numeriska metoder för att lösa flerdimensionella problem med begränsningar. [ett]

Uttalande av optimeringsproblemet

I designprocessen är uppgiften vanligtvis inställd på att bestämma den bästa, i viss mening, strukturen eller värdena för objektparametrar . Ett sådant problem kallas ett optimeringsproblem. Om optimering är associerad med beräkningen av optimala parametervärden för en given objektstruktur, kallas det parametrisk optimering . Problemet med att välja den optimala strukturen är strukturell optimering .

Det vanliga matematiska optimeringsproblemet är formulerat på detta sätt. Bland elementen χ som bildar mängderna X, hitta ett element χ * som ger minimivärdet f(χ * ) för den givna funktionen f(χ). För att korrekt posera optimeringsproblemet är det nödvändigt att ställa in:

  1. Den tillåtna mängden  är uppsättningen ;
  2. Objektiv  funktionsmapping ;
  3. Sökkriterium (max eller min).

Lös sedan problemet innebär något av:

  1. Visa det .
  2. Visa att målfunktionen inte är begränsad nedan.
  3. Hitta .
  4. Om , sedan hitta .

Om funktionen som minimeras inte är konvex , begränsar de sig ofta till att hitta lokala minima och maxima: punkter som överallt i vissa av deras grannskap för ett minimum och ett maximum.

Om uppsättningen är tillåten kallas ett sådant problem ett ovillkorligt optimeringsproblem , annars ett villkorligt optimeringsproblem .

Klassificering av optimeringsmetoder

Den allmänna notationen av optimeringsproblem definierar en stor mängd olika klasser. Valet av metod (effektiviteten av dess lösning) beror på problemets klass. Klassificeringen av problem bestäms av: den objektiva funktionen och det tillåtna området (givet av ett system av ojämlikheter och jämlikheter eller en mer komplex algoritm). [2]

Optimeringsmetoder klassificeras enligt optimeringsuppgifter:

För närvarande befintliga sökmetoder kan delas in i tre stora grupper:

  1. deterministisk;
  2. slumpmässig (stokastisk);
  3. kombinerad.

Enligt kriteriet för dimensionen av den genomförbara uppsättningen delas optimeringsmetoder in i endimensionella optimeringsmetoder och flerdimensionella optimeringsmetoder .

Genom formen av den objektiva funktionen och den tillåtna uppsättningen kan optimeringsproblem och metoder för deras lösning delas in i följande klasser:

Enligt kraven på jämnhet och närvaron av partiella derivat i den objektiva funktionen kan de också delas in i:

Dessutom är optimeringsmetoder indelade i följande grupper:

Beroende på typen av uppsättning X , klassificeras matematiska programmeringsproblem som:

Dessutom är grenar av matematisk programmering parametrisk programmering , dynamisk programmering och stokastisk programmering .

Matematisk programmering används för att lösa optimeringsproblem inom operationsforskning .

Metoden för att hitta extremumet bestäms helt av problemets klass. Men innan du får en matematisk modell måste du utföra fyra steg av modellering:

Historik

Linjära programmeringsproblem var de första studerade i detalj problem med att hitta ytterligheten av funktioner i närvaro av begränsningar såsom ojämlikheter . 1820 föreslog Fourier och sedan 1947 George Dantzig en metod för riktad uppräkning av angränsande hörn i riktning mot ökande objektiv funktion  - simplexmetoden , som blev den främsta för att lösa linjära programmeringsproblem.

Närvaron av termen "programmering" i disciplinens namn förklaras av det faktum att de första studierna och de första tillämpningarna av linjära optimeringsproblem var inom ekonomiområdet, eftersom ordet "programmering" på engelska betyder planering , ritning upp planer eller program. Det är ganska naturligt att terminologin speglar det nära samband som finns mellan den matematiska formuleringen av problemet och dess ekonomiska tolkning (studie av det optimala ekonomiska programmet). Termen " linjär programmering " föreslogs av J. Danzig 1949 för att studera teoretiska och algoritmiska problem relaterade till optimering av linjära funktioner under linjära begränsningar.

Därför beror namnet "matematisk programmering" på att målet med att lösa problem är att välja det optimala handlingsprogrammet.

Identifieringen av en klass av extrema problem definierade av en linjär funktional på en uppsättning definierad av linjära begränsningar bör hänföras till 1930-talet. En av de första som studerade linjära programmeringsproblem i allmän form var: John von Neumann  , en matematiker och fysiker som bevisade huvudsatsen om matrisspel och studerade den ekonomiska modell som bär hans namn, och L. V. Kantorovich  , en sovjetisk akademiker, Nobel Pristagare (1975), som formulerade ett antal linjära programmeringsproblem och föreslog 1939 en metod för att lösa dem ( metoden för att lösa faktorer ), som skiljer sig något från simplexmetoden.

År 1931 övervägde den ungerske matematikern B. Egervari en matematisk formulering och löste ett linjärt programmeringsproblem som kallas "valproblemet", lösningsmetoden kallades för den " ungerska metoden ".

L. V. Kantorovich och M. K. Gavurin utvecklade metoden för potentialer 1949 , som används för att lösa transportproblem . I efterföljande verk av L. V. Kantorovich, V. S. Nemchinov , V. V. Novozhilov , A. L. Lurie , A. Brudno , A. G. Aganbegyan , D. B. Yudin , E. G. Golshtein och andra vidareutvecklade matematiker och ekonomer både den linjära programmeringsmetoden och den onlinebaserade tillämpningen av dess matematiska och onlinebaserade programmering. till studiet av olika ekonomiska problem.

Många verk av utländska forskare ägnas åt metoderna för linjär programmering. 1941 satte F. L. Hitchcock transportutmaningen . Den grundläggande metoden för att lösa linjära programmeringsproblem, simplexmetoden  , publicerades 1949 av J. Dantzig. Metoderna för linjär och icke-linjär programmering utvecklades vidare i verk av G. Kuhn , A. Tucker , Gass (Saul I. Gass), Charnes (A. Charnes), Beale (EM Beale) och andra.

Samtidigt med utvecklingen av linjär programmering ägnades mycket uppmärksamhet åt icke-linjära programmeringsproblem , där antingen den objektiva funktionen , eller begränsningarna, eller båda är icke-linjära. År 1951 publicerades G. Kuhns och A. Tuckers arbete , där nödvändiga och tillräckliga optimalitetsvillkor för att lösa olinjära programmeringsproblem gavs. Detta arbete låg till grund för efterföljande forskning inom området.

Sedan 1955 har många verk som ägnas åt kvadratisk programmering publicerats (verk av Beal, Barankin och R. Dorfman , Frank (M. Frank) och F. Wolf , G. Markowitz , etc.). Verken av Dennis (JB Dennis), Rosen (JB Rosen) och Zontendijk (G. Zontendijk) utvecklade gradientmetoder för att lösa icke-linjära programmeringsproblem.

För närvarande, för effektiv tillämpning av matematiska programmeringsmetoder och för att lösa problem på datorer, har algebraiska modelleringsspråk utvecklats , vars representanter är AMPL och LINGO .

Se även

Anteckningar

  1. Källa: Altai Regional Universal Scientific Library. V. Ya. Shishkova (AKUNB) Arkiverad 5 mars 2022 på Wayback Machine . Optimeringsmetoder: Proc. ersättning. Brazovskaya N.V.; Altai State Technical University I. I. Polzunova, [Center of Distance. utbildning].-Barnaul: Publishing House of AltSTU, 2000, 120 sid. - UDC / LBC 22.183.4 B871
  2. Hitta det optimala: Datorn utökar möjligheter . - M . : Nauka, 1989. - S.  14 . — ISBN 5-02-006737-7 .

Litteratur

Länkar