Mittelineaarne programmeerimine - mis see on, määratlus ja mõiste

Lang L: none (table-of-contents):

Mittelineaarne programmeerimine - mis see on, määratlus ja mõiste
Mittelineaarne programmeerimine - mis see on, määratlus ja mõiste
Anonim

Mittelineaarne programmeerimine on meetod, mille abil optimeeritakse objektiivset funktsiooni kas maksimeerimise või minimeerimise teel. Seda arvestades erinevaid antud piiranguid. Seda iseloomustab see, et objektiivne funktsioon või mõned piirangud võivad olla mittelineaarsed.

Mittelineaarne programmeerimine on siis protsess, kus maksimeeritav funktsioon või mõni piirang erineb lineaarsest või esimese astme võrrandist, kus muutujad tõstetakse võimsuseni 1.

Peame meeles pidama, et lineaarvõrrand on matemaatiline võrdsus, millel võib olla üks või mitu tundmatut. Seega on sellel järgmine põhivorm, kus a ja b on konstandid, samas kui x ja y on muutujad:

kirves + b = y

Tuleb lisada, et mitte kõik seda tüüpi programmeerimise elemendid ei vasta sellele tunnusele. Näiteks võib juhtuda, et eesmärkfunktsioon on teise astme võrrand ja üks muutujatest on ruudus, täites järgmise vormi:

y = kirves2+ bx + c

Nüüd saab mittelineaarse programmeerimise kaudu seda funktsiooni optimeerida, leides y maksimaalse või minimaalse väärtuse. Seda, võttes arvesse, et x-le kehtivad teatud piirangud.

Mittelineaarse programmeerimise elemendid

Mittelineaarse programmeerimise põhielemendid on järgmised:

  • Eesmärk Funktsioon: Funktsioon on optimeeritud kas selle tulemuse maksimeerimise või minimeerimise teel.
  • Piirangud: Need on need tingimused, mis peavad olema täidetud eesmärgi funktsiooni optimeerimisel. See võib olla algebraline võrrand või ebavõrdsus.

Mittelineaarne programmeerimisharjutus

Vaatame mittelineaarse programmeerimisülesande lõpetuseks.

Oletame, et meil on järgmine funktsioon:

y = 25 + 10x-x2

Meil on ka järgmine piirang:

y = 50-3x

Nagu graafikult näeme, ristuvad eesmärgi funktsioon ja piirang kahes punktis, kuid kus y on maksimeeritud, siis kui x = 2,3, kus y = 43 (kümnendkohad on ligikaudsed).

Piirväärtused leiate mõlema võrrandi võrdustamise teel:

25 + 10x-x2= 50-3x

0 = x2-13x + 25

Siis on ülaltoodud ruutvõrrandil kaks lahendit või juurt, mille võib leida järgmiste valemitega, kus a = 1, b = -13 ja c = 25.

Seega leiame, et x1 = 2,3467 (y = 43) ja x2 = 10,653 (y = 18).

Peame hoiatama, et seda tüüpi programmeerimine on keerulisem kui lineaarne ja seda tüüpi optimeerimise lahendamiseks pole veebis nii palju tööriistu saadaval. Näidatud näide on väga lihtsustatud juhtum.