Câte valori optime poate avea funcția obiectiv? Problemă standard LP. I. Înregistrarea datelor inițiale

Funcție obiectivă este o funcţie cu unele variabile de care depinde direct atingerea optimităţii. De asemenea, poate acționa ca mai multe variabile care caracterizează un anumit obiect. Putem spune că, în esență, arată cum am progresat către atingerea scopului nostru.

Un exemplu de astfel de funcții este calculul rezistenței și greutății structurii, capacitatea de instalare, volumul de producție, costurile de transport și altele.

Funcția obiectiv vă permite să răspundeți la mai multe întrebări:

Dacă acest eveniment sau acela este benefic sau nu;

Mișcarea merge în direcția corectă?

Cât de corectă a fost alegerea făcută etc.

Dacă nu avem posibilitatea de a influența parametrii funcției, atunci putem spune că nu putem face nimic, decât poate doar să analizăm totul. Dar pentru a putea schimba ceva, există de obicei parametrii de funcție modificabili. sarcina principală- aceasta este pentru a schimba valorile la cele la care funcția devine optimă.

Funcțiile obiective nu pot fi întotdeauna prezentate sub forma unei formule. Acesta ar putea fi o masă, de exemplu. De asemenea, condiția poate fi sub forma mai multor funcții obiective. De exemplu, dacă doriți să asigurați fiabilitate maximă, costuri minimeși consum minim de material.

Problemele de optimizare trebuie să aibă cea mai importantă condiție inițială - o funcție obiectivă. Dacă o facem, atunci putem presupune că optimizarea nu există. Cu alte cuvinte, dacă nu există un scop, atunci nu există modalități de a-l atinge, cu atât mai puțin condiții favorabile.

Sarcinile de optimizare pot fi condiționate sau necondiționate. Primul tip implică restricții, adică anumite condiții la stabilirea problemei. Al doilea tip este de a găsi maximul sau la parametrii existenti. Adesea, astfel de probleme implică căutarea unui minim.

În înțelegerea clasică a optimizării, sunt selectate astfel de valori ale parametrilor pentru care funcția obiectiv satisface rezultatele dorite. Poate fi definit și ca procesul de selectare a celei mai bune opțiuni posibile. De exemplu, alegerea celei mai bune alocări de resurse, opțiune de proiectare etc.

Există așa ceva ca optimizarea incompletă. Se poate forma din mai multe motive. De exemplu:

Numărul de sisteme care ating punctul maxim este limitat (a fost deja stabilit un monopol sau oligopol);

Nu există monopol, dar nu există resurse (lipsa calificărilor în orice competiție);

Absența ei înșiși, sau mai degrabă „ignoranța” ei (un bărbat visează la un anumit femeie frumoasă, dar nu se știe dacă așa ceva există în natură), etc.

În condițiile relațiilor de piață pentru gestionarea activităților de vânzare și producție ale firmelor și întreprinderilor, la baza luării deciziilor se află informațiile despre piață, iar validitatea acestei decizii este verificată la intrarea pe piață cu produsul sau serviciul corespunzător. În acest caz, punctul de plecare este studierea cererii consumatorilor. Pentru a găsi soluții, se stabilește o funcție țintă de consum. Arata cantitatea de bunuri consumate si gradul de satisfacere a nevoilor consumatorilor, precum si relatia dintre acestea.

În condițiile unui sistem de piață pentru gestionarea activităților de producție și vânzări ale întreprinderilor și firmelor, baza pentru luarea deciziilor de afaceri este informarea de piață, iar validitatea deciziilor este verificată de piață în timpul vânzării de bunuri și servicii. Prin această abordare, punctul de plecare al întregului ciclu de activitate antreprenorială este studiul cererii consumatorilor. Să luăm în considerare câteva aspecte legate de modelarea cererii și a consumului.

Luați în considerare un consumator care, ca urmare a existenței sale, consumă unele bunuri. Nivelul de satisfacere a nevoilor consumatorilor va fi notat prin U.Să presupunem că există n tipuri de bunuri B 1, B 2,…, B n. Beneficiile pot include:

· produse alimentare;

· bunuri esentiale;

· bunuri esentiale;

· lux;

· servicii cu plată etc.

Fie cantitatea de consum a fiecărui bun să fie egală X 1 , X 2 ,…, x n. Funcția de consum țintă se numeşte relaţia dintre gradul (nivelul) de satisfacere a nevoilor Uși cantitatea de bunuri consumate: X 1 , X 2 , …, x n. Această funcție arată ca.

În spațiul bunurilor de consum, fiecărei ecuații îi corespunde o anumită suprafață de seturi echivalente sau indiferente de bunuri, care se numește suprafata indiferentei. Hipersuprafața unei astfel de curbe, numită suprafață de indiferență multidimensională, poate fi reprezentată ca , unde CU- constant. Pentru claritate, să luăm în considerare spațiul a două bunuri, de exemplu, sub forma a două grupuri agregate de bunuri: alimente B 1 și bunuri nealimentare, inclusiv servicii plătite. B 2. Apoi, nivelurile funcției obiective de consum pot fi descrise în plan sub formă de curbe de indiferență corespunzătoare diferitelor valori ale constantei CU.Pentru a face acest lucru, exprimați cantitatea de consum a unui bun X 1 prin alta X 2. Să ne uităm la un exemplu.

Exemplul 6.3. Funcția de consum țintă are forma . Găsiți curbe de indiferență.

Soluţie. Curbele de indiferență arată ca sau , sau (trebuie remarcat că trebuie efectuat).



Fiecare consumator se străduiește să maximizeze nivelul de satisfacție al nevoilor, adică. Cu toate acestea, maximizarea gradului de satisfacere a nevoilor va fi îngreunată de capacitățile consumatorului. Să notăm prețul pe unitate al fiecărui bun prin R 1 , R 2 ,…, р n, și venitul consumatorului prin D.Atunci ar trebui executat constrângere bugetară , care are înțelesul legii, conform căreia costurile consumatorului nu trebuie să depășească valoarea veniturilor:

Ca urmare, pentru a găsi setul optim de bunuri este necesar să se rezolve problema programare optima:

(6.3)

Luați în considerare o funcție de consum cu doi factori, unde X 1 - volumul consumului de alimente și X 2 - consumul de produse nealimentare şi servicii cu plată. În plus, să presupunem că consumatorul își folosește toate veniturile pentru a-și satisface nevoile. În acest caz, constrângerea bugetară va conține doar doi termeni, iar inegalitatea se va transforma în egalitate. Problema de programare optimă ia apoi forma:

(6.4)

Geometric soluție optimă are semnificaţia punctului de tangenţă al curbei de indiferenţă la dreapta corespunzătoare constrângerii bugetare.

X 2
Din constrângerea bugetară a sistemului (6.4), putem exprima variabila . Înlocuind această expresie în funcția obiectiv, obținem o funcție a unei variabile , al cărui maxim se poate găsi din ecuație prin echivalarea derivatei cu zero: .

Exemplul 6.4. Funcția țintă de consum are forma . Pret pentru bine B 1 este egal cu 20, prețul bunului B 2 este egal cu 50. Venitul consumatorului este de 1800 de unitati. Găsiți curbele de indiferență, setul optim de bunuri de consum, funcția cererii pentru primul bun după preț, funcția cererii pentru primul bun după venit.

Soluţie. Curbele de indiferență arată astfel:

Obținem un set de hiperbole situate în primul trimestru de coordonate pe la distante diferite de la origine în funcţie de valoarea constantei CU.

Găsim setul optim de bunuri. Problema de programare optimă are forma:

Pentru a o rezolva, exprimăm o variabilă din constrângerea bugetară în termenii unei alte: . Înlocuiți în funcția țintă

Găsiți derivata și egalați-o cu zero

Primim.

Astfel, setul optim de bunuri este de 30,5 și 23,8 unități. Acum găsim funcția cererii pentru primul bun pe baza prețului său. Pentru a face acest lucru, în constrângere bugetară în schimb valoare fixa introducem pretul primului bun, obtinand ecuatia: . Ne exprimăm

sau , de unde găsim funcția de cerere pentru primul bun la preț: .

Găsim acum funcția cererii pentru primul bun în termeni de venit. Pentru a face acest lucru, ne exprimăm din constrângere bugetară o variabilă prin alta: . Înlocuiți în funcția țintă:

Găsim derivata și o echivalăm cu zero:

De aici găsim funcția cererii pentru primul bun după venit

7. Model
echilibru intersectorial

Modelele de echilibru sunt concepute pentru analiza și planificarea producției și distribuției produselor diverse niveluri- de la o întreprindere individuală la economia naţională în ansamblu. Dacă ne amintim de istoria economiei naţionale ca Uniunea Sovietică atât Rusia cât și alte țări dezvoltate, se poate observa că în economiile multor țări din timp diferit Au existat crize economice de diferite extreme, de la crize de supraproducție (SUA, mijlocul secolului XX) până la penurie (Rusia, sfârșitul secolului XX). Toate aceste crize economice sunt asociate cu un dezechilibru între producție și consum. Din aceste fapte reiese clar că echilibrul dintre producție și consum este criteriu important atât pentru macroeconomie, cât și pentru microeconomie.

Mulți economiști și matematicieni au încercat să construiască modele de echilibru economic și matematic încă de la începutul problemei, cu toate acestea, cel mai complet model de echilibru a fost construit în 1936 de economistul american V. Leontiev (care a emigrat în SUA după revoluție și a primit Premiul Nobel în domeniu pentru economia sa model). Acest model a făcut posibilă calcularea echilibrului între mai multe industrii care interacționează, deși poate fi generalizat cu ușurință pentru organizațiile microeconomice, de exemplu, pentru a calcula echilibrul între mai multe întreprinderi care interacționează sau între diviziile unei întreprinderi (de exemplu, atelierele aceleiași fabrici). ).

Scopul analizei echilibrului este de a răspunde la întrebarea care apare în macroeconomie și este legată de eficiența conducerii unei economii diversificate: care ar trebui să fie volumul de producție al fiecăruia dintre P industriilor pentru a satisface toate nevoile de produse ale acelei industrii? Mai mult, fiecare industrie acționează, pe de o parte, ca producător al anumitor produse; și pe de altă parte, în calitate de consumator de produse atât proprii, cât și produse de alte industrii.

Să presupunem că luăm în considerare P industrii, fiecare dintre acestea producând propriile produse. Fie volumul total de produse produse i-a industrie este egală cu . Costul total al produselor produse i industria, vom numi produsul brut al acestei industrii. Acum să ne uităm la pe ce sunt cheltuite produsele produse de industrie. O parte din producție este utilizată pentru consumul intern de către această industrie și pentru consumul altor industrii legate de această industrie. Numărul de produse i-a-a industrie destinată consumului final (în afara sferei producerea materialului) personale și publice j denotam industria a-lea prin . Partea rămasă este destinată implementării în sfera externă. Această parte se numește produsul final. Lăsa i-I industria produce produsul final.

Luați în considerare procesul de producție pe o anumită perioadă de timp (de exemplu, un an). Deoarece volumul brut de producție este oricare i- industria este egală cu volumul total de produse consumate n industriile, și produsul final, atunci ecuația de echilibru dintre producție și consum va avea forma

, (i= 1, 2, …, n). (7.1)

Se numesc ecuațiile (7.1). relații de echilibru.

. (7.2)

Toți indicatorii discutați anterior pot fi înregistrați în bilanțul principal:

Industrie Consumul industriilor, Produs final, produs brut,
n
n
Produs curat

Ca urmare, bilanțul principal conține patru matrice: matricea legăturilor de producție intersectoriale

; matricea producției brute; matricea produsului final și matricea produsului net .

Una dintre sarcinile analizei soldului este de a determina produsul brut dacă distribuția produsului final este cunoscută. Pentru a face acest lucru, introducem coeficienți de cost direct

Ele se obțin prin împărțirea tuturor elementelor fiecărei coloane a matricei la elementul corespunzător al matricei legăturilor de producție intersectoriale X.Coeficienții de cost direct au semnificația cantității de produs consumat j-a-a industrie necesară pentru a produce o unitate de producție i a industriei. Din expresia (7.3) se obţine: . Înlocuind ultima expresie în relația de echilibru (7.1), obținem

. (7.4)

Dacă notăm matricea coeficienților de cost direct ca , atunci relația de echilibru (7.4) sub formă de matrice poate fi scrisă ca

Din ultima expresie se poate afla valoarea produsului final cu o valoare cunoscuta a brutului

Unde - matrice de identitate de aceeași dimensiune ca A.

Exemplul 7.1. Bilanțul a patru industrii pentru perioada anterioară are o matrice a relațiilor de producție intersectoriale de forma și o matrice a producției brute de forma . Este necesar să se definească produsul final Yși produs pur C fiecare industrie.

Produs final Y se obţine scăzând din fiecare element al matricei producţiei brute suma elementelor rândurilor corespunzătoare ale matricei. De exemplu, prima valoare este 100 – (10 + 20 + 15 + 10) = 45. Produs pur CU se obține prin scăderea producției brute din fiecare element al matricei X suma elementelor coloanelor corespunzătoare ale matricei. De exemplu, prima valoare este 100 – (10 + 5 + 25 + 20) = 40. Ca rezultat, obținem bilanțul principal:

Industrie Consumul industriilor, Produs final, produs brut,
Produs pur S=210 S = 400

Să stabilim acum o altă sarcină: vom calcula produsul final al fiecărei industrii pentru perioada viitoare dacă produsul brut se dovedește a fi egal . Pentru a rezolva această problemă, găsim coeficienții costurilor directe: i -a industrie.

Exemplul 7.2. Într-o anumită regiune există două sectoare principale ale economiei naționale: inginerie mecanică (m/s) și Agricultură(agricol). Soldul acestor industrii pentru perioada de raportare este determinat de matrice , . Să calculăm indicatorii rămași și să completăm bilanţul principal

Să presupunem că produsele finale în volume sunt planificate pentru perioada viitoare. Este necesar să se determine ce produs brut trebuie planificat. Să găsim coeficienții de cost direct:

Următoarele motive pot fi identificate pentru care sistemele economice sunt stocastice:

1) sistemul este complex, multicriterial, descris de o structură ierarhică pe mai multe niveluri;

2) sistemul este influențat un numar mare incontrolabil factori externi (vreme, politica externa, factori sociali etc.);

3) denaturarea deliberată a informațiilor, ascunderea informațiilor și sabotajul economic vizat.

Pe baza acestui lucru, pentru modelarea multor sisteme economice utilizare metode matematice, bazată pe aplicarea legilor teoriei probabilităților, care se numesc metode stocastice.

La utilizarea metodelor stocastice, optimizarea funcției obiectiv se realizează în funcție de valoarea medie, adică atunci când parametrii dați este necesar să se găsească o soluţie când valoarea funcţiei obiectiv in medie va fi maxim.

Sistemele stocastice din economie sunt descrise de aparatul Markov, care se bazează pe Markov procese aleatorii. Ele sunt utilizate în cazurile în care modelul nu poate fi formalizat (descris printr-o expresie analitică) și în cazul în care sistemul este un sistem economic probabilist multiparametric.

27 august 2017 la 14:20

Soluția este directă și dubla problema programare liniară folosind Python

Introducere

Trebuie remarcat faptul că metodele de rezolvare a problemelor de programare liniară includ nu la economie, ci la matematică și tehnologia computerelor.În același timp, economistul trebuie să ofere cele mai confortabile condiții pentru dialog cu software-ul adecvat. La rândul lor, astfel de condiții pot fi asigurate doar de medii de dezvoltare dinamice și interactive care au în arsenalul lor un set de biblioteci necesare pentru rezolvarea unor astfel de probleme. Dintre care medii de dezvoltare software este cu siguranță Python.

Formularea problemei

Publicațiile au luat în considerare soluții la problemele de optimizare directă folosind metoda de programare liniară și au sugerat o alegere rezonabilă a solutorului scipy. optimiza.

Cu toate acestea, se știe că fiecare problemă de programare liniară corespunde unei așa-numite probleme distincte (duală). În ea, față de problema directă, rândurile se transformă în coloane, inegalitățile își schimbă semnul, în loc de maxim se caută un minim (sau invers, în loc de un minim, se caută un maxim). Sarcina duală la cea duală este însăși sarcina originală.

Rezolvarea problemei duale este foarte importantă pentru analiza utilizării resurselor. În această publicație, se va dovedi că valorile optime ale funcțiilor obiectiv din problema originală și duală coincid (adică maximul din problema originală coincide cu minimul din problema duală).

Valorile optime ale costurilor materiale și ale forței de muncă vor fi evaluate prin contribuția acestora la funcția obiectiv. Rezultatul va fi „estimari determinate în mod obiectiv” ale materiilor prime și al forței de muncă care nu coincid cu prețurile pieței.

Rezolvarea problemei directe a programului optim de producție

Luand in considerare nivel inalt pregătirea matematică a marii majorităţi a utilizatorilor a acestei resurse Nu voi prezenta ecuații de echilibru cu restricții superioare și inferioare și introducerea de variabile suplimentare pentru trecerea la egalități. Prin urmare, voi da imediat denumirile variabilelor utilizate în soluție:
N – numărul de tipuri de produse produse;
m – numărul de tipuri de materii prime utilizate;
b_ub - vectorul resurselor disponibile de dimensiunea m;
A_ub este o matrice de dimensiune m×N, al cărei element este consumul unei resurse de tip i pentru producerea unei unități de produs de tip j;
c este vectorul profitului din producerea unei unități din fiecare tip de produs;
x – volumele necesare de produse produse de fiecare tip (plan optim de producție) asigurând profit maxim.

Funcția de obiectiv
maxF(x)=c×x

Restricții
A×x≤b

Valorile numerice ale variabilelor:
N=5; m=4; b_ub = ; A_ub = [, , ,]; c = .

Sarcini
1. Găsiți x pentru a vă asigura un profit maxim
2. Găsiți resursele folosite la efectuarea pasului 1
3. Găsiți resursele rămase (dacă există) când efectuați pasul 1


Pentru a determina maximul (implicit, se determină minimul, coeficienții funcției obiectiv trebuie să se scrie cu semnul negativ c = [-25, -35,-25,-40,-30] și să se ignore semnul minus în fata de profit.

Notații utilizate pentru afișarea rezultatelor:
X– o matrice de valori variabile care furnizează minimul (maximul) funcției țintă;
leneş– valorile variabilelor suplimentare. Fiecare variabilă corespunde unei constrângeri de inegalitate. O valoare variabilă de zero înseamnă că constrângerea corespunzătoare este activă;
succes– Adevărat, dacă funcția a reușit să găsească soluția optimă;
stare– starea deciziei:
0 – căutarea soluției optime a fost finalizată cu succes;
1 – a fost atinsă limita privind numărul de iterații;
2 – problema nu are soluții;
3 – funcția obiectiv nu este limitată.
nit– numărul de iterații efectuate.

Listarea soluției la problema de optimizare directă

#!/usr/bin/python # -*- codificare: utf-8 -*- import scipy din scipy.optimize import linprog # încărcarea bibliotecii LP c = [-25, -35,-25,-40,-30] # lista de coeficienți ai funcției de obiectiv b_ub = # lista de volume de resurse A_ub = [, # matricea valorilor specifice de resurse ​​, , ] d=linprog(c, A_ub, b_ub) # căutați o soluție pentru key,val in d.items(): print(key ,val) # soluție output if key=="x": q=#resurse utilizate print("A_ub*x",q) q1= scipy.array(b_ub)-scipy.array (q) #resursele rămase print("b_ub-A_ub*x", q1)


Rezultatele rezolvării problemei
nit 3
starea 0

succes Adevărat
x [ 0. 0. 18.18181818 22.72727273 150. ]
A_ub*x
b_ub-A_ub*x [0. 0. 0. 90.90909091]
distracție -5863.63636364
slăbiciune [0. 0. 0. 90.90909091]

concluzii

  1. A fost găsit planul optim pentru tipurile de produse
  2. S-a găsit utilizarea reală a resurselor
  3. Restul celui de-al patrulea tip de resursă neutilizat a fost găsit [ 0, 0 0,0 0,0 90,909]
  4. Nu este nevoie de calcule conform pasului 3, deoarece același rezultat este afișat în variabila slack

Rezolvarea problemei duale pe programul optim de producție

Al patrulea tip de resursă din sarcina directă nu este utilizat pe deplin. Atunci valoarea acestei resurse pentru întreprindere se dovedește a fi mai mică în comparație cu resursele care limitează producția, iar întreprinderea este dispusă să plătească mai mult preț mare pentru achizitia de resurse pentru cresterea profitului.

Să introducem un nou scop pentru variabila dorită x ca un preț „umbră” care determină valoarea unei resurse date în raport cu profitul din vânzarea produselor fabricate.

C – vectorul resurselor disponibile;
b_ub este vectorul profitului din producerea unei unități din fiecare tip de produs;
A_ub_T – matrice transpusă A_ub.

Funcția de obiectiv
minF(x)=c×x

Restricții
A_ub_T ×x≥ b_ub

Valori numerice și relații pentru variabile:
c = ; A_ub_T transpose(A_ub); b_ub = .

Sarcină:
Găsiți x indicând valoarea pentru producătorul fiecărui tip de resursă.

Caracteristicile soluției cu biblioteca scipy. optimiza
Pentru a înlocui restricțiile de sus cu restricții de jos, este necesar să înmulțim ambele părți ale constrângerii cu minus unu – A_ub_T ×x≥ b_ub... Pentru a face acest lucru, scrieți datele originale sub forma: b_ub = [-25, -35,-25,-40,-30]; A_ub_T =- scipy.transpose(A_ub).

Listarea soluției la problema de optimizare duală

#!/usr/bin/python # -*- codificare: utf-8 -*- import scipy din scipy.optimize import linprog A_ub = [, , , ] c= b_ub = [-25, -35,-25,- 40,-30] A_ub_T =-scipy.transpose(A_ub) d=linprog(c, A_ub_T, b_ub) for key,val in d.items(): print(key,val)


Rezultatele rezolvării problemei
nit 7
Optimizarea mesajului sa încheiat cu succes.
distracție 5863.63636364
x [ 2,27272727 1,81818182 6,36363636 0. ]
slăbiciune [5.45454545 2.27272727 0. 0. 0. ]
starea 0
succes Adevărat

concluzii

Prin urmare, al treilea tip de resursă are cea mai mare valoare pentru producător acest tip resursele trebuie achiziționate mai întâi, apoi primul și al doilea tip. Al patrulea tip de resursă are valoare zero pentru producător și este achiziționat ultimul.

Rezultatele comparării problemelor directe și duale

  1. Problema dublă extinde capacitățile de planificare a produsului, dar folosind scipy. optimize se rezolvă în dublul numărului de iterații directe.
  2. Variabila slack afișează informații despre activitatea constrângerilor sub formă de inegalități, care pot fi folosite, de exemplu, pentru a analiza bilanţurile de materii prime.
  3. Problema directă este o problemă de maximizare, iar problema duală este o problemă de minimizare și invers.
  4. Coeficienții funcției obiectiv în problema directă sunt constrângeri în problema duală.
  5. Constrângerile din problema directă devin coeficienți ai funcției obiectiv în cea duală.
  6. Semnele inegalităților în restricții sunt inversate.
  7. Se transpune matricea sistemului de egalități.
Legături

    Pentru a găsi maximul funcției obiectiv, utilizați funcția maximizare, al cărei format este maximize(<функция>, <система ограничений>, <опции>);

În acest caz, este convenabil să specificați condiția de non-negativitate a variabilelor folosind opțiunea NONNEGATIVE.

> optim:=maximize(f,syst_ogr,NENEGATIV);

    Utilizați comanda subs, care vă permite să înlocuiți valorile variabilelor X 1 și X 2 per functie f.

> fmax:=subs(x1=83/17,x2=19/17,f);

    Utilizați funcția evalf pentru a reprezenta răspunsul într-o formă numar real cu 4 cifre semnificative.

> fmax:=evalf(fmax,4);

Vă puteți familiariza cu soluția problemei LP fără explicații în anexă.

Rezolvarea problemelor de optimizare într-un pachet specializat SimplexWin. Http://www.Simplexwin.Narod.Ru/

Acest program este conceput pentru a rezolva probleme de programare liniară folosind metoda simplex.

Sarcină. Găsiți valori variabile X 1 Și X 2, la care

sub restricții

Comandă de lucru:

    Lansați programul SimplexWin și setați dimensiunea necesară a matricei de constrângeri selectând comanda de meniu Settings – Matrix size (Fig. 13).

Orez. 13. Determinarea dimensiunii matricei.

    Introduceți datele (Fig. 14). Dacă sarcina nu este introdusă formă canonică, apoi variabile suplimentare și baze artificiale(precum și coeficienții funcției obiectiv corespunzători) se adaugă automat.

Fig.14. Introducere a datelor.

II. Găsirea planului optim și a valorii optime a funcției obiectiv.


Orez. 15. Formularul de rezultate.

    În formularul Rezultate, faceți clic pe butonul Rezultat, care vă permite să rezolvați problema în mod automatși afișați cele mai recente tabel simplex iar rezultatul (Fig. 16).

Orez. 16. Rezolvarea problemei.

Rezolvarea problemelor de optimizare înexcela

Să ne uităm la un exemplu de găsire a următoarei probleme de programare liniară.

Sarcină. Găsiți valori variabile X 1 Și X 2, la care

sub restricții

Comandă de lucru:

I. Înregistrarea datelor inițiale.

    Creați un formular de ecran pentru introducerea condițiilor problemei (variabile, funcție obiectiv, constrângeri) și introduceți datele inițiale în el (coeficienții funcției obiectiv, coeficienții variabilelor în constrângeri, partea dreaptă a constrângerilor) (Fig. 17). ).

Orez. 17. Forma de ecran a sarcinii (cursor în celula D6).

cometariu: IN formular de ecranîn fig. 17 Fiecărei variabile și fiecărui coeficient al problemei i se atribuie o celulă specifică în Excel. Deci, de exemplu, variabilele sarcinii corespund celulelor B3 ( ), C3 ( ), coeficienții funcției obiectiv corespund celulelor B6 (
), C6 (
), părțile din dreapta ale restricțiilor corespund celulelor F10 (
), F11 (
),F12 (
)etc.

    Introduceți dependențele din modelul matematic în formularul de ecran, de exemplu. Introduceți formula pentru calcularea funcției obiectiv și formula pentru calcularea valorilor părților din stânga constrângerilor.

În funcție de condițiile problemei, valoarea funcției obiectiv este determinată de expresie
. Folosind denumirile celulelor corespunzătoare din Excel, formula de calcul al funcției obiectiv poate fi scrisă ca suma de produse fiecare dintre celulele alocate pentru valorile variabilelor sarcinii (B3, C3) celulelor corespunzătoare alocate pentru coeficienții funcției obiectiv (B6, C6).

Pentru a seta formula de dependență pentru funcția obiectiv, procedați în felul următor: :

– plasați cursorul în celulă D6;

– fereastra de apel Expertul funcției - Pasul 1 din 2 prin apasarea butonului pe panou standard unelte;

- La fereastră Funcţie selectați funcția SUMPRODUS;

- în fereastra care apare SUMPRODUS a alinia Matricea 1 introduceți expresia B$3:C$3, și la linie Matricea 2- expresie B6:C6;

- apasa butonul Bine.

Orez. 18. Introducerea unei formule pentru calcularea CF în fereastra Function Wizard.

După introducerea celulelor în rânduri Matricea 1Și Matricea 2 La fereastră SUMPRODUS va aparea valori numerice matricele introduse (Fig. 18), iar valoarea curentă calculată folosind formula introdusă, adică 0 (deoarece în momentul introducerii formulei, valorile variabilelor sarcinii sunt zero) vor apărea în formularul de ecran ( Fig. 19).

cometariu: Simbolul $ dinaintea numărului rândului înseamnă că atunci când copiați această formulă în alte locuri din foaia Excel, numărul rândului 3 nu se va schimba. Simbol : înseamnă că formula utilizează toate celulele dintre celulele din stânga și dreapta colonului.

Părțile stângi ale constrângerilor problemei sunt suma de produse fiecare dintre celulele alocate pentru valorile variabilelor problemă (B3, C3) celulei corespunzătoare alocate pentru coeficienții unei anumite constrângeri (B10, C10 – constrângerea 1; B11, C11 – constrângerea a 2-a; B12, C12 – a 3-a constrângere).

Formulele care specifică părțile stângi ale constrângerilor problemei diferă unele de altele și de formula din celula țintă D6 numai numărul liniei din a doua matrice. Acest număr este determinat de linia în care este scrisă restricția în formularul de ecran. Prin urmare, pentru a specifica dependențe pentru părțile din stânga constrângerii, este suficient să copiați formula din celula țintă în celulele părților din stânga constrângerii.

Pentru a calcula valorile părților stângi ale constrângerilor, procedați în felul următor:

– plasați cursorul în celulă D6și copiați conținutul celulei în clipboard (folosind tastele Ctrl+C);

– plasați cursorul pe rând în câmpurile din partea stângă a fiecărei restricții, adică D10 ,D11 , D12 , și inserați conținutul buffer-ului în aceste câmpuri (folosind tastele Ctrl+V) (în acest caz, numărul de celule din a doua matrice a formulei se va schimba în numărul rândului din care a fost făcută lipirea). tamponul).

După intrarea pe ecran în câmpurile D10 ,D11 , D12 Va apărea 0 (valoare zero) (Fig. 19).

Orez. 19. Forma de ecran a sarcinii după apă

toate formulele necesare.

    Verificați dacă formulele sunt introduse corect.

Pentru aceasta:

- fă-o una câte una apasare dubla butonul stâng al mouse-ului pe celulele cu formule, în timp ce celulele utilizate în formulă vor fi evidențiate pe ecran cu un cadru (Fig. 20 și Fig. 21).

Orez. 20

formule pentru a viza celula D6.

Orez. 20. Verificarea introducerii corecte

formulele din celula D10 pentru partea stângă a constrângerilor.

    Specificați funcția obiectiv și introduceți constrângeri în fereastră Găsirea unei soluții(Fig. 21).

Pentru aceasta:

– plasați cursorul în celulă D6;

– fereastra de apel Găsirea unei soluții selectând pe bara de instrumente Date - Găsirea unei soluții;

– plasați cursorul în câmp Setați celula țintă;

– introduceți adresa celulei țintă $D$6 sau faceți un clic cu butonul stâng al mouse-ului pe celula țintă din formularul de ecran, ceea ce va echivala cu introducerea adresei de la tastatură;

– indicați direcția de optimizare a funcției obiectiv făcând clic o dată cu butonul stâng al mouse-ului pe butonul selector valoare maximă;

- La fereastră Căutarea deciziilorîn câmp Schimbarea celulelor introduceți celule cu valori variabile $B$3:$C$3, selectându-le în formularul de ecran în timp ce țineți apăsat butonul stâng al mouse-ului;

Orez. 21. Fereastra Căutați o soluție.

- apasa butonul Adăuga;

– în conformitate cu condițiile sarcinii, selectați semnul necesar în câmpul semn, de exemplu, pentru 1 constrângere, acesta este semnul ;

- în câmp Prescripţie introduceți adresa celulei din partea dreaptă a constrângerii în cauză, de exemplu 10 USD;

– stabiliți în mod similar relații între părțile din dreapta și din stânga altor restricții ( $D$11$F$11 , $D$12$F$12) ;

– confirmați introducerea tuturor condițiilor enumerate apăsând butonul Bine(Fig. 22 și Fig. 23).

Orez. 22. Adăugarea unei condiții.

cometariu: Dacă, atunci când introduceți o condiție de sarcină, este nevoie să schimbați sau să ștergeți restricțiile introduse, acest lucru se poate face făcând clic pe butoanele Schimbare sau Șterge.

Parametrii de proiectare. Acest termen se referă la independent parametri variabili, care definesc complet și fără ambiguitate problema de proiectare care se rezolvă. Parametrii de proiectare sunt cantități necunoscute ale căror valori sunt calculate în timpul procesului de optimizare. Orice mărime de bază sau derivată care servește la descrierea cantitativă a sistemului poate servi drept parametri de proiectare. Deci, acestea pot fi valori necunoscute de lungime, masă, timp, temperatură. Numărul de parametri de proiectare caracterizează gradul de complexitate al unei anumite probleme de proiectare. De obicei, numărul de parametri de proiectare este notat cu n, iar parametrii de proiectare înșiși cu x cu indicii corespunzători. Astfel, n parametri de proiectare ai acestei probleme vor fi notați cu

X1, X2, X3,...Xp.

Trebuie remarcat faptul că parametrii de proiectare pot fi denumiți ca parametri interni controlabili în unele surse.

Funcția țintă. Aceasta este o expresie a cărei valoare inginerul se străduiește să o facă maximă sau minimă. Funcția obiectiv vă permite să comparați cantitativ două solutii alternative. Din punct de vedere matematic, funcția obiectiv descrie o suprafață (n+1)-dimensională. Valoarea acestuia este determinată de parametrii de proiectare

M = M (x1,x2,…,xn).

Exemple de funcții obiective întâlnite adesea în practica ingineriei sunt costul, greutatea, rezistența, dimensiunile, eficiența. Dacă există un singur parametru de proiectare, atunci funcția obiectiv poate fi reprezentată printr-o curbă pe plan (Fig. 1). Dacă există doi parametri de proiectare, atunci funcția obiectiv va fi reprezentată ca o suprafață în spațiu tridimensional (Fig. 2). Cu trei sau mai mulți parametri de proiectare, suprafețele specificate de funcția obiectiv se numesc hipersuprafețe și nu pot fi imaginate prin mijloace obișnuite. Proprietățile topologice ale suprafeței funcției obiectiv joacă un rol important în procesul de optimizare, deoarece alegerea celui mai eficient algoritm depinde de ele.

Figura 1. Funcția obiectiv unidimensională.


Figura 2. Funcția obiectiv bidimensională.

Funcția obiectivă în unele cazuri poate lua cele mai neașteptate forme. De exemplu, nu poate fi întotdeauna exprimată într-o formă matematică închisă; în alte cazuri, poate fi o funcție liniară pe bucăți. Specificarea unei funcții obiectiv poate necesita uneori un tabel de date tehnice (de exemplu, un tabel cu starea vaporilor de apă) sau poate necesita un experiment. În unele cazuri, parametrii de proiectare iau doar valori întregi. Un exemplu ar fi numărul de dinți dintr-un tren de viteze sau numărul de șuruburi dintr-o flanșă. Uneori, parametrii de proiectare au doar două semnificații - da sau nu. Parametrii calitativi, precum satisfacția experimentată de cumpărătorul care a achiziționat produsul, fiabilitatea, estetica, sunt greu de luat în considerare în procesul de optimizare, deoarece sunt aproape imposibil de caracterizat cantitativ. Oricum, indiferent de modul în care este prezentată funcția obiectiv, aceasta trebuie să fie o funcție clară a parametrilor de proiectare.

O serie de probleme de optimizare necesită introducerea a mai mult de o funcție obiectivă. Uneori, unul dintre ele poate fi incompatibil cu celălalt. Un exemplu este proiectarea aeronavei, unde sunt necesare simultan rezistența maximă, greutatea minimă și costul minim. În astfel de cazuri, proiectantul trebuie să introducă un sistem de priorități și să atribuie un anumit factor adimensional fiecărei funcții obiective. Ca rezultat, apare o „funcție de compromis”, care permite utilizarea unei singure funcții obiectiv compozit în timpul procesului de optimizare.

Căutați minim și maxim. Unii algoritmi de optimizare sunt proiectați pentru a găsi maximul, alții - pentru a găsi minimul. Cu toate acestea, indiferent de tipul de problemă extremum care este rezolvată, puteți utiliza același algoritm, deoarece problema de minimizare poate fi ușor transformată într-o problemă de căutare maximă prin inversarea semnului funcției obiectiv. Această tehnică este ilustrată în Fig. 3.


Figura 3. Când semnul funcției obiectiv se schimbă în opus într-o problemă de minim, o transformă într-o problemă de maxim.

Spațiu de proiectare. Acesta este numele zonei definite de toți n parametrii de proiectare. Spațiul de proiectare nu este atât de mare pe cât ar putea părea, deoarece este de obicei limitat de o serie de condiții legate de natura fizică a problemei. Restricțiile pot fi atât de puternice încât problema nu va avea o singură soluție satisfăcătoare. Constrângerile sunt împărțite în două grupe: constrângeri - egalitate și constrângeri - inegalitate.

Constrângerile de egalitate sunt dependențe între parametrii de proiectare care trebuie luate în considerare la găsirea unei soluții. Ele reflectă legile naturii, economiei, legea, gusturile predominante și disponibilitatea materialele necesare. Numărul de constrângeri - egalitățile pot fi oricare. Arata ca

C1 (X1, X2, X3, . . ., Xn) = 0,

C2 (X1, X2, X3, . . ., X n) = 0,

..……………………………..

Cj(X1, X2, X 3,..., Xn) = 0.

Constrângerile de inegalități sunt un tip special de constrângeri exprimate prin inegalități. ÎN caz general pot fi oricât de multe doriți și toate au forma

z1 ?r1(X1, X2, X3,. . ., Xn) ?Z1

z2 ?r2(X1, X2, X3, . . ., Xn) ?Z2

………………………………………

zk ?rk(X1, X2, X3, . . ., Xn) ?Zk

De remarcat că de foarte multe ori, din cauza restricțiilor, valoarea optimă a funcției obiectiv nu este atinsă acolo unde suprafața acesteia are un gradient zero. De multe ori Cea mai bună decizie corespunde uneia dintre limitele zonei de proiectare.

Restricții directe și funcționale. Restricțiile directe au forma

xнi? xi? xвi la i? ,

unde xнi, xвi - minim și maxim valori valide i-lea parametru controlat; n este dimensiunea spațiului parametrilor controlați. De exemplu, pentru multe obiecte, parametrii elementelor nu pot fi negativi: xнi ? 0 (dimensiuni geometrice, rezistență electrică, masa etc.).

Restricțiile funcționale, de regulă, reprezintă condiții pentru performanța parametrilor de ieșire care nu sunt incluși în funcția țintă. Restricțiile funcționale pot fi:

  • 1) tip de egalități
  • w(X) = 0; (2.1)
  • 2) tipul de inegalități

tz (X) › 0, (2,2)

unde w(X) și q(X) sunt funcții vectoriale.

Restricțiile directe și funcționale formează zona de căutare permisă:

ХД = (Х | w(Х) = 0, ц (Х)›0, xi › xнi ,

xi ‹ xвi pentru i ? ).

Dacă restricțiile (2.1) și (2.2) coincid cu condițiile de performanță, atunci zona permisă se mai numește și zona de performanță XP.

Oricare dintre punctele X aparținând CD-ului este o soluție fezabilă a problemei. Sinteza parametrică este adesea pusă ca problema determinării oricăreia dintre soluțiile fezabile. Cu toate acestea, este mult mai important să rezolvi problema de optimizare – să găsim soluția optimă printre cele fezabile.

Optim local. Acesta este numele punctului din spațiul de proiectare în care are funcția obiectiv cea mai mare valoare comparativ cu valorile sale din toate celelalte puncte din imediata sa vecinătate. Figura 4 prezintă o funcție obiectiv unidimensională care are două optime locale. Adesea, spațiul de proiectare conține multe optime locale și trebuie avut grijă să nu confundați primul cu soluția optimă a problemei.


Figura 4. O funcție obiectiv arbitrară poate avea mai multe optime locale.

Optimul global este soluția optimă pentru întreg spațiul de proiectare. Este mai bun decât toate celelalte soluții corespunzătoare optimelor locale și este ceea ce caută designerul. Este posibil să existe mai multe optime globale egale situate în părți diferite spațiu de proiectare. Acest lucru vă permite să selectați cea mai buna varianta de egali optiuni optime după funcţia obiectivă. ÎN în acest caz, designerul poate alege o opțiune în mod intuitiv sau pe baza unei comparații a opțiunilor rezultate.

Selectarea criteriilor. Problema principală în stabilirea problemelor extreme este formularea funcției obiectiv. Dificultatea în alegerea unei funcții obiectiv constă în faptul că orice obiect tehnic are inițial o natură vectorială a criteriilor de optimitate (multi-criterii). Mai mult, o îmbunătățire a unuia dintre parametrii de ieșire, de regulă, duce la o deteriorare a celuilalt, deoarece toți parametrii de ieșire sunt funcții ale acelorași parametri controlați și nu se pot schimba independent unul de celălalt. Astfel de parametri de ieșire sunt numiți parametri de conflict.

Trebuie să existe o singură funcție țintă (principiul unicității). Reducerea unei probleme cu mai multe criterii la o problemă cu un singur criteriu se numește convoluția unui criteriu vectorial. Sarcina de a-și găsi extremul se reduce la o problemă de programare matematică. În funcție de modul în care parametrii de ieșire sunt selectați și combinați în funcția de calitate scalară, se disting criterii parțiale, aditive, multiplicative, minimax, statistice și alte criterii. ÎN termeni de referinta pentru proiectarea unui obiect tehnic sunt indicate cerințele pentru parametrii principali de ieșire. Aceste cerințe sunt exprimate sub formă de date numerice specifice, domeniul de variație a acestora, condiții de funcționare și valori minime sau maxime acceptabile. Relațiile necesare între parametrii de ieșire și cerințele tehnice (TR) se numesc condiții de performanță și sunt scrise sub forma:

yi< TTi , i О ; yi >TTj, j O;

yr = TTr ± ?yr; r O .

unde yi, yj, yr - set de parametri de ieșire;

TTi, TTj, TTr - valori cantitative necesare ale parametrilor de ieșire corespunzători conform specificațiilor tehnice;

an- toleranţă Al-lea parametru de ieșire din valoarea TTr specificată în specificațiile tehnice.

Condițiile de funcționare au o importanță decisivă în dezvoltare dispozitive tehnice, deoarece sarcina de proiectare este de a selecta o soluție de proiectare în care cel mai bun mod toate condițiile de funcționare sunt îndeplinite pe toată gama de modificări parametri externiși la îndeplinirea tuturor cerințelor din specificațiile tehnice.

Criterii speciale pot fi utilizate în cazurile în care dintre parametrii de ieșire poate fi identificat un parametru principal yi(X), care reflectă cel mai pe deplin eficiența obiectului proiectat. Acest parametru este luat ca funcție obiectiv. Exemple de astfel de parametri sunt: ​​pentru o instalație energetică - putere, pentru o mașină tehnologică - productivitate, pentru vehicul- capacitate de incarcare. Pentru multe obiecte tehnice, acest parametru este costul. Condițiile de funcționare a tuturor celorlalți parametri de ieșire ai obiectului sunt denumite restricții funcționale. Optimizarea bazată pe o astfel de formulare se numește optimizare în funcție de un anumit criteriu.

Avantajul acestei abordări este simplitatea ei; un dezavantaj semnificativ este că o marjă mare de eficiență poate fi obținută numai pentru parametrul principal, care este acceptat ca funcție obiectiv, iar alți parametri de ieșire nu vor avea deloc marje.

Criteriul aditiv ponderat este utilizat atunci când condițiile de performanță fac posibilă distingerea a două grupuri de parametri de ieșire. Primul grup include parametrii de ieșire, ale căror valori ar trebui crescute în timpul procesului de optimizare y+i(X) (performanță, imunitate la zgomot, probabilitatea de funcționare fără defecțiuni etc.), al doilea grup include parametrii de ieșire, ale căror valori ar trebui reduse y-i (X) (consum de combustibil, durata procesului tranzitoriu, depășire, deplasare etc.). Combinarea mai multor parametri de ieșire, care au, în general, dimensiuni fizice diferite, într-o funcție obiectivă scalară necesită o normalizare preliminară a acestor parametri. Metodele de normalizare a parametrilor vor fi discutate mai jos. Deocamdată, vom presupune că toți y(X) sunt adimensionali și dintre ei nu există nici unul care să corespundă condițiilor de performanță ale tipului de egalitate. Apoi, pentru cazul minimizării funcției obiectiv, convoluția criteriului vectorial va avea forma

unde aj>0 este un coeficient de ponderare care determină gradul de importanță al j-al-lea parametru de ieșire (de obicei aj este selectat de proiectant și rămâne constant în timpul procesului de optimizare).

Funcția obiectiv în forma (2.1), exprimând criteriul aditiv, se poate scrie și în cazul în care toate sau principalele condiții de performanță au forma de egalități. Apoi funcția obiectiv

determină aproximarea rădăcină pătratică medie a lui yj(X) la cerințele tehnice date TTj.

Criteriul multiplicativ poate fi utilizat în cazurile în care nu există condiții de performanță de tip egalitate și parametrii de ieșire nu pot accepta valori zero. Atunci funcția obiectiv multiplicativă de minimizat are forma

Unul dintre cele mai semnificative dezavantaje ale criteriilor aditive și multiplicative este eșecul de a lua în considerare cerințele tehnice pentru parametrii de ieșire în formularea problemei.

Criteriul de formă a funcției este utilizat atunci când sarcina este stabilită cu cea mai bună potrivire a unei caracteristici date (de referință) yCT(X, y) cu caracteristica de ieșire corespunzătoare y(X, y) a obiectului proiectat, unde y este o variabilă, de exemplu, frecvența, timpul, variabila de fază selectată. Aceste sarcini includ: proiectarea unui sistem de control automat care asigură tipul necesar de proces tranzitoriu pentru parametrul controlat; determinarea parametrilor modelului tranzistorului care dau acord maxim cu teoreticul acestuia caracteristicile curent-tensiune cu cele experimentale; căutați parametrii secțiunilor grinzii, ale căror valori conduc la cea mai bună coincidență a diagramei de tensiuni date cu cea calculată etc.

Utilizarea unui anumit criteriu de optimizare în aceste cazuri se rezumă la înlocuirea caracteristicilor continue cu un set finit de puncte nodale și alegerea uneia dintre următoarele funcții obiective de minimizat:


unde p este numărul de puncte nodale uj de pe axa variabilei u; aj - coeficienți de ponderare, ale căror valori sunt mai mari, cu atât mai mică abaterea y(X, φj) - yTT(X, φj) trebuie obținută în al-lea punct.

Criteriile Maximin (minimax) permit atingerea unuia dintre obiectivele designului optim - cea mai bună satisfacție a condițiilor de performanță.

Să vă prezentăm cuantificare gradul de îndeplinire a j-a condiție de performanță, o notăm cu zj și o numim rezerva de performanță a parametrului yj. Calculul marjei pentru al j-lea parametru de ieșire poate fi efectuat în diferite moduri, de exemplu,

unde aj este coeficientul de ponderare; yjnom - valoarea nominală a j-lea parametru de ieșire; dj este o valoare care caracterizează răspândirea celui de-al j-lea parametru de ieșire.

Aici se presupune că toate relațiile sunt reduse la forma yi< TТj. Если yi >TTj, apoi -yj< -TТj . Следует принимать аj >1 (valori recomandate 5 ? aj ? 20), dacă este de dorit să se realizeze j-a cerinte tehnice cu o toleranță dată, adică yj = TTj ± ?yj; aj=l, dacă este necesar să se obțină estimarea maximă posibilă zj.

Calitate performanta sistem tehnic caracterizat printr-un vector de parametri de ieșire și, prin urmare, un vector Z=(zm,zm,…,zm). Prin urmare, funcția țintă ar trebui să fie formată ca o funcție μ(Z) a vectorului de evaluare. De exemplu, dacă funcția țintă ia în considerare rezerva doar acelui parametru de ieșire care la un anumit punct X este cel mai rău din punctul de vedere al îndeplinirii cerințelor specificațiilor tehnice, atunci

unde m este numărul rezervelor de capacitate de lucru.

Este firesc acum să punem problema alegerii unei strategii de căutare X care să maximizeze minimul rezervelor, adică.

unde HD este zona de căutare.

Criteriul de optimizare cu funcție obiectiv (2.6) se numește criteriu maximin.

Criterii statistice. Optimizarea folosind criterii statistice are ca scop obținerea probabilității maxime P de performanță. Această probabilitate este luată ca funcție obiectiv. Atunci avem problema

Normalizarea parametrilor controlați și de ieșire. Spațiul parametrilor controlați este metric. Prin urmare, atunci când alegeți direcțiile și valorile pașilor de căutare, este necesar să introduceți una sau alta normă, identificată cu distanța dintre două puncte. Acesta din urmă presupune că toți parametrii controlați au aceeași dimensiune sau sunt adimensionali.

Posibil diferite căi raționalizarea. Ca exemplu, luați în considerare metoda de normalizare logaritmică, al cărei avantaj este trecerea de la incremente absolute ale parametrilor la cele relative. In aceea cazul i parametru controlat ui este convertit în xi adimensional după cum urmează:

unde oi este coeficientul, numeric egal cu unu parametrul ui .

Normalizarea parametrilor de ieșire poate fi realizată folosind coeficienți de ponderare, ca în criteriul aditiv, sau prin trecerea de la уj la rezervele de performanță zj conform (2.5).