Netiesinis programavimas - kas tai, apibrėžimas ir sąvoka

Turinys:

Netiesinis programavimas - kas tai, apibrėžimas ir sąvoka
Netiesinis programavimas - kas tai, apibrėžimas ir sąvoka
Anonim

Netiesinis programavimas yra metodas, kuriuo optimizuojama tikslinė funkcija, maksimaliai padidinant arba sumažinant. Tai, atsižvelgiant į skirtingus nurodytus apribojimus. Jis apibūdinamas todėl, kad tikslinė funkcija arba kai kurie apribojimai gali būti netiesiniai.

Netiesinis programavimas yra procesas, kai maksimaliai padidinama funkcija arba bet kuris iš apribojimų skiriasi nuo tiesinės ar pirmojo laipsnio lygties, kai kintamieji pakeliami iki 1 galios.

Turime prisiminti, kad tiesinė lygtis yra matematinė lygybė, galinti turėti vieną ar daugiau nežinomųjų. Taigi jis turi tokią pagrindinę formą, kur a ir b yra konstantos, o x ir y yra kintamieji:

kirvis + b = y

Reikia pridurti, kad ne visi šio tipo programavimo elementai atitiks šią charakteristiką. Pvz., Gali būti, kad tikslinė funkcija yra antrojo laipsnio lygtis ir vienas iš kintamųjų yra kvadratas, atitinkantis šią formą:

y = kirvis2+ bx + c

Dabar, naudojant nelinijinį programavimą, šią funkciją galima optimizuoti, surandant didžiausią arba mažiausią y reikšmę. Tai, atsižvelgiant į tai, kad x yra taikomi tam tikri apribojimai.

Netiesinio programavimo elementai

Pagrindiniai netiesinio programavimo elementai yra šie:

  • Objektyvi funkcija: Tai funkcija, kuri yra optimizuota, maksimaliai padidinant arba sumažinant jos rezultatą.
  • Apribojimai: Tai yra tos sąlygos, kurių reikia laikytis optimizuojant tikslinę funkciją. Tai gali būti algebrinės lygtys arba nelygybės.

Netiesiniai programavimo pratimai

Pažiūrėkime, kad baigtume netiesinį programavimo pratimą.

Tarkime, kad turime šią funkciją:

y = 25 + 10x-x2

Mes taip pat turime tokį apribojimą:

y = 50-3x

Kaip matome grafike, tikslinė funkcija ir apribojimas susikerta dviejuose taškuose, bet kur y maksimaliai padidinta, kai x = 2,3, kur y = 43 (dešimtainiai skaičiai yra apytiksliai).

Ribinius taškus galima rasti sulyginant abi lygtis:

25 + 10x-x2= 50-3x

0 = x2-13x + 25

Tada aukščiau esanti kvadratinė lygtis turi du sprendimus arba šaknis, kurias galima rasti šiomis formulėmis, kur a = 1, b = -13 ir c = 25.

Taigi mes nustatome, kad x1 = 2,3467 (y = 43) ir x2 = 10,653 (y = 18).

Turime įspėti, kad tokio tipo programavimas yra sudėtingesnis nei linijinis, o internete nėra tiek daug įrankių, kaip išspręsti tokio tipo optimizavimą. Parodytas pavyzdys yra labai supaprastintas atvejis.