Optimointi ( matematiikassa , tietojenkäsittelytieteessä ja operaatiotutkimuksessa ) on tehtävä löytää objektiivifunktion ääriarvo (minimi tai maksimi) äärellisulotteisen vektoriavaruuden jollakin alueella , jota rajoittaa joukko lineaarisia ja/tai ei- lineaariset yhtäläisyydet ja/tai epäyhtälöt .
Teoriaa ja menetelmiä optimointitehtävän ratkaisemiseksi tutkitaan matemaattisen ohjelmoinnin avulla .
Matemaattinen ohjelmointi on matematiikan haara, joka kehittää teoriaa, numeerisia menetelmiä moniulotteisten ongelmien ratkaisemiseen rajoituksin. [yksi]
Suunnitteluprosessissa tehtävänä on yleensä määrittää kohteen parametrien paras tietyssä mielessä rakenne tai arvot. Tällaista ongelmaa kutsutaan optimointiongelmaksi. Jos optimointi liittyy optimaalisten parametriarvojen laskemiseen tietylle objektirakenteelle, sitä kutsutaan parametrioptimoinniksi . Optimaalisen rakenteen valinnan ongelmana on rakenteiden optimointi .
Standardi matemaattinen optimointitehtävä on muotoiltu tällä tavalla. Etsi joukot X muodostavien alkioiden χ joukosta alkio χ * , joka antaa annetun funktion f(χ) minimiarvon f(χ * ). Optimointiongelman esittämiseksi oikein on tarpeen asettaa:
Sitten ongelman ratkaiseminen tarkoittaa jotakin seuraavista:
Jos minimoitava funktio ei ole kupera , niin he usein rajoittuvat paikallisten minimien ja maksimien löytämiseen: pisteitä sellaisiin, että kaikkialla joissain lähiöissään minimiin ja maksimiin.
Jos joukko on sallittu , niin tällaista ongelmaa kutsutaan ehdottomaksi optimointitehtäväksi , muuten ehdollisen optimointiongelmaksi .
Optimointiongelmien yleinen merkintätapa määrittelee laajan valikoiman niiden luokkia. Menetelmän valinta (sen ratkaisun tehokkuus) riippuu ongelman luokasta. Tehtävien luokittelun määräävät: tavoitefunktio ja sallittu alue (epäyhtälö- ja yhtäläisyysjärjestelmällä tai monimutkaisemmalla algoritmilla). [2]
Optimointimenetelmät luokitellaan optimointitehtävien mukaan:
Tällä hetkellä olemassa olevat hakutavat voidaan jakaa kolmeen suureen ryhmään:
Toteutettavan joukon ulottuvuuden kriteerin mukaan optimointimenetelmät jaetaan yksiulotteisiin optimointimenetelmiin ja moniulotteisiin optimointimenetelmiin .
Tavoitefunktion ja hyväksyttävän joukon muodon mukaan optimointiongelmat ja menetelmät niiden ratkaisemiseksi voidaan jakaa seuraaviin luokkiin:
Tasaisuuden ja tavoitefunktion osittaisten johdannaisten läsnäolon vaatimusten mukaan ne voidaan jakaa myös:
Lisäksi optimointimenetelmät on jaettu seuraaviin ryhmiin:
Joukon X luonteesta riippuen matemaattiset ohjelmointiongelmat luokitellaan seuraavasti:
Lisäksi matemaattisen ohjelmoinnin osa-alueita ovat parametrinen ohjelmointi , dynaaminen ohjelmointi ja stokastinen ohjelmointi .
Matemaattista ohjelmointia käytetään operaatiotutkimuksen optimointiongelmien ratkaisemisessa .
Ekstreemin löytämismenetelmä määräytyy täysin ongelman luokan mukaan. Mutta ennen kuin saat matemaattisen mallin, sinun on suoritettava 4 mallinnuksen vaihetta:
Lineaariset ohjelmointiongelmat olivat ensimmäisiä yksityiskohtaisesti tutkittuja ongelmia funktioiden ääripään löytämisessä rajoitteiden , kuten epäyhtälöiden , esiintyessä . Vuonna 1820 Fourier ja sitten vuonna 1947 George Dantzig ehdottivat menetelmää vierekkäisten pisteiden ohjaamiseksi numeroimiseksi kohdefunktion lisäämisen suuntaan - simpleksimenetelmää , josta tuli tärkein lineaarisen ohjelmoinnin ongelmien ratkaisemisessa.
Termin "ohjelmointi" esiintyminen tieteenalan nimessä selittyy sillä, että ensimmäiset tutkimukset ja lineaarisen optimointiongelmien ensimmäiset sovellukset olivat taloustieteen alalla, koska englanniksi sana "ohjelmointi" tarkoittaa suunnittelua , piirtämistä. laatia suunnitelmia tai ohjelmia. On aivan luonnollista, että terminologia heijastaa läheistä suhdetta, joka vallitsee ongelman matemaattisen muotoilun ja sen taloudellisen tulkinnan (optimaalisen taloudellisen ohjelman tutkimus) välillä. Termin " lineaarinen ohjelmointi " ehdotti J. Danzig vuonna 1949 tutkiakseen teoreettisia ja algoritmisia ongelmia, jotka liittyvät lineaaristen funktioiden optimointiin lineaaristen rajoitusten alaisina.
Siksi nimi "matemaattinen ohjelmointi" johtuu siitä, että ongelmien ratkaisemisen tavoitteena on valita optimaalinen toimintaohjelma.
Lineaarifunktion määrittelemän äärimmäisten ongelmien luokan tunnistaminen lineaaristen rajoitusten määrittämässä joukossa tulisi lukea 1930-luvulta. Yksi ensimmäisistä, jotka tutkivat lineaarisen ohjelmoinnin ongelmia yleisessä muodossa, olivat: John von Neumann , matemaatikko ja fyysikko, joka todisti matriisipelien päälauseen ja tutki nimeään kantavaa talousmallia, ja L. V. Kantorovich , Neuvostoliiton akateemikko, Nobel Palkinnon voittaja (1975), joka muotoili joukon lineaarisia ohjelmointiongelmia ja ehdotti vuonna 1939 menetelmää niiden ratkaisemiseksi ( menetelmä tekijöiden ratkaisemiseksi ), joka eroaa hieman simpleksimenetelmästä.
Vuonna 1931 unkarilainen matemaatikko B. Egervari harkitsi matemaattista muotoilua ja ratkaisi lineaarisen ohjelmointitehtävän, jota kutsutaan "valintatehtäväksi", ratkaisumenetelmää kutsuttiin " Unkarin menetelmäksi ".
L. V. Kantorovich ja M. K. Gavurin kehittivät vuonna 1949 potentiaalien menetelmän , jota käytetään kuljetusongelmien ratkaisemisessa . L. V. Kantorovichin, V. S. Nemchinovin , V. V. Novozhilovin , A. L. Lurien , A. Brudnon , A. G. Aganbegyanin , D. B. Yudinin , E. G. Golshteinin ja muiden matemaatikot ja taloustieteilijät kehittivät edelleen matemaatikot ja taloustieteilijät kehittävät edelleen sekä sen lineaaristen ohjelmointimenetelmien että epälineaaristen menetelmien teoriaa. erilaisten taloudellisten ongelmien tutkimiseen.
Monet ulkomaisten tutkijoiden teokset on omistettu lineaarisen ohjelmoinnin menetelmille. Vuonna 1941 F. L. Hitchcock asetti kuljetushaasteen . Lineaarisen ohjelmointiongelmien ratkaisemisen perusmenetelmä, simpleksimenetelmä , julkaisi vuonna 1949 J. Dantzig. Lineaarisen ja epälineaarisen ohjelmoinnin menetelmiä kehitettiin edelleen G. Kuhnin , A. Tuckerin , Gassin (Saul I. Gass), Charnesin (A. Charnes), Bealen (EM Beale) ja muiden teoksissa.
Samanaikaisesti lineaarisen ohjelmoinnin kehittämisen kanssa kiinnitettiin paljon huomiota epälineaariseen ohjelmointiongelmiin , joissa joko tavoitefunktio tai rajoitteet tai molemmat ovat epälineaarisia. Vuonna 1951 julkaistiin G. Kuhnin ja A. Tuckerin teos , jossa annettiin tarvittavat ja riittävät optimaalisuusehdot epälineaaristen ohjelmointiongelmien ratkaisemiseksi. Tämä työ muodosti perustan myöhemmälle tutkimukselle tällä alalla.
Vuodesta 1955 lähtien on julkaistu monia kvadraattiseen ohjelmointiin omistettuja teoksia (Bealin, Barankinin ja R. Dorfmanin , Frankin (M. Frank) ja F. Wolfin , G. Markowitzin teoksia jne.). Dennisin (JB Dennis), Rosenin (JB Rosen) ja Zontendijkin (G. Zontendijk) työt kehittivät gradienttimenetelmiä epälineaaristen ohjelmointiongelmien ratkaisemiseksi.
Tällä hetkellä matemaattisten ohjelmointimenetelmien tehokasta soveltamista ja ongelmien ratkaisemista varten tietokoneissa on kehitetty algebrallisia mallinnuskieliä , joiden edustajia ovat AMPL ja LINGO .
Sanakirjat ja tietosanakirjat | |
---|---|
Bibliografisissa luetteloissa |
|
Optimointimenetelmät _ | |
---|---|
Yksiulotteinen |
|
Nolla järjestys | |
Ensimmäinen tilaus | |
toinen tilaus | |
Stokastinen | |
Lineaariset ohjelmointimenetelmät _ | |
Epälineaariset ohjelmointimenetelmät |