Metoda Strongin
Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită la 1 septembrie 2017; verificările necesită
2 modificări .
Metoda lui Strongin este o metodă de rezolvare a problemelor unidimensionale ale optimizării Lipschitz condiționate. Vă permite să găsiți o soluție optimă la nivel global în problemele cu constrângeri de inegalitate, cu condiția ca funcția obiectivă a problemei și părțile din stânga ale inegalităților să satisfacă condiția Lipschitz din zona de căutare.
Enunțul problemei de optimizare
Este necesar să se găsească un punct astfel încât . Se presupune că funcțiile și satisfac condiția Lipschitz pe intervalul .
![{\displaystyle x^{*}\in [a;\;b]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/27bd985512c40e5d83eb4215f4833e837d16e2de)
![{\displaystyle f(x^{*})=\min \left\{f(x)\colon x\in [a;\;b],\;g_{j}(x)\leqslant 0,\; 1\leqslant j\leqslant m\right\}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/702d1b7ff1bcde451fb2e49bd804db94922aa4f0)


![[a;\;b]](https://wikimedia.org/api/rest_v1/media/math/render/svg/bd61fc14fe3e48955630162550f6f2e23efc8ab5)
Notați , atunci pentru următoarele inegalități sunt valabile:


unde sunt constantele Lipschitz.

Descrierea schemei contabile de constrângeri
Lasă . Constrângerea numerotată este satisfăcută în toate punctele din regiunea , care se numește admisibilă pentru această constrângere. În acest caz, aria admisibilă a problemei inițiale este determinată de egalitatea:
![{\displaystyle Q_{0}=[a;\;b]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7abc51abbc482398f79f12d887649b849fb72cf4)

![{\displaystyle Q_{j}=\left\{x\in [a;\;b]\colon g_{j}(x)\leqslant 0\right\)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/aac2c6a54cd38b97872b6bc5c7060e8a284cb00e)

Testul la un punct constă în calculul secvenţial al valorilor cantităţilor , unde valoarea indicelui este determinată de condiţiile:
![{\displaystyle x\in[a;\;b]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5ef87bb1b156a2b2496cc122e53246cfcd05a2de)


Detectarea primei constrângeri încălcate încheie testul la punctul . În cazul în care punctul este valid, adică testul include calculul tuturor funcțiilor problemei. În acest caz, se presupune că valoarea indexului este egală cu .




Perechea în care se află indicele în limite se numește rezultatul testului în punctul .




Această abordare a testării ne permite să reducem problema inițială cu constrângeri funcționale la problema necondiționată a minimizării unei funcții discontinue:
Aici , un .
![{\displaystyle M=\max \left\{\nu (x)\colon x\in [a;\;b]\right\)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f29480131c8168952593d0142c4d006494edd438)

În virtutea definiției numărului , problema găsirii are întotdeauna o soluție, iar dacă , atunci .




Arcele unei funcții sunt Lipschitz pe mulțimi cu constantă 1 și poate avea ea însăși discontinuități de primul fel pe limitele acestor mulțimi.



În ciuda faptului că valorile constantelor Lipschitz și magnitudinea nu sunt cunoscute în avans, acestea pot fi estimate în procesul de rezolvare a problemei.

Descrierea metodei
Lasă . Se presupune că indicii punctelor finale sunt nuli, iar valorile lor sunt nedefinite. Primul test se efectuează la punctul . Alegerea oricărui punct de testare ulterior este guvernată de următoarele reguli:




- Renumerotați punctele testelor anterioare cu indicele în ordinea valorilor crescătoare ale coordonatei: și comparați-le cu valorile .



- Pentru fiecare număr întreg, determinați setul corespunzător de indice ale punctelor în care au fost calculate valorile funcțiilor :



De asemenea, determinați valoarea maximă a indicelui
- Calculați estimările curente pentru constantele Lipschitz necunoscute:
Dacă setul conține mai puțin de două elemente sau dacă valoarea este egală cu zero, atunci acceptați .


- Pentru toate seturile nevide, calculați estimări

unde vectorul cu coordonate nenegative se numește vector de rezervă .
- Pentru fiecare interval , calculați caracteristica

unde .
Valorile sunt parametrii algoritmului. Produsele utilizate în calcularea caracteristicilor ca estimări ale constantelor Lipschitz necunoscute depind de acestea .

- Să se determine intervalul căruia îi corespunde caracteristica maximă .


- Efectuați un alt test la mijlocul intervalului dacă indicii punctelor sale finale nu se potrivesc:

În caz contrar, testați la punctul
creste cu 1.
- Dacă ( este precizia specificată a metodei), atunci opriți algoritmul, altfel treceți la pasul 1.


Condiții suficiente pentru convergență
Fie ca problema de optimizare originală să aibă o soluție și următoarele condiții sunt îndeplinite:

- fiecare regiune este o unire a unui număr finit de segmente având o lungime pozitivă;

- fiecare functie satisface conditia Lipschitz cu constanta corespunzatoare ;


- componentele vectorului de rezervă satisfac inegalitățile , unde este lungimea segmentului situat în regiunea admisibilă și care conține punctul ;


![{\displaystyle [\alpha ;\;\beta ]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2f5b956d4b0fc9694033e11f66785855aa5c2fae)


- pornind de la o anumita valoare marimile corespunzatoare multimilor nevide satisfac inegalitatile .




Atunci următorul lucru este adevărat:
- punctul este punctul limită al secvenței generate de metoda la în starea de oprire;



- orice punct limită al secvenței este o soluție la problema de optimizare originală;


- convergența către punctul limită este bifață dacă .


Modificări de metodă
Modificare paralelă
Schema generală a metodei secvenţiale este următoarea:
- Sortați punctele testelor anterioare în ordinea crescătoare a coordonatelor lor: .

- Calculați pentru fiecare interval caracteristica .


- Să se determine intervalul căruia îi corespunde caracteristica maximă .


- Efectuați următorul test în punctul , unde este regula de plasare a următorului punct de testare în intervalul cu numărul .



- Verificați dacă este îndeplinit criteriul de oprire .

Modificarea paralelă constă în faptul că la pasul 3, în loc de un interval cu cea mai bună caracteristică, se alege intervale în ordinea descrescătoare a caracteristicilor și se efectuează teste în fiecare dintre ele în paralel.

Schema de algoritm paralel:
- Sortați punctele testelor anterioare în ordinea crescătoare a coordonatelor lor: .

- Calculați pentru fiecare interval caracteristica .


- Sortați caracteristicile intervalelor în ordine descrescătoare: .

- Pentru toate intervalele cu numere , testați în puncte .


- Verificați dacă este îndeplinit criteriul de oprire: .

O astfel de schemă de paralelizare este oportună dacă testul (adică calculul funcțiilor sarcinii) este un proces care necesită multă muncă.
Modificare pentru rezolvarea problemelor cu funcțiile Hölder
Metoda este pur și simplu generalizată în cazul în care funcțiile satisfac condiția Hölder cu exponentul , unde , i.e.




.
La pasul 3, valorile sunt calculate folosind formula:

La pasul 5 .

La pasul 7, dacă indicii punctelor finale se potrivesc
La pasul 8, criteriul de oprire ia forma .

Note
- Parametrii sunt responsabili pentru fiabilitatea metodei. Cu cât valorile lor sunt mai mari, cu atât sunt necesare mai multe iterații ale metodei pentru a obține o acuratețe dată și cu atât este mai probabil să fie îndeplinită condiția de convergență 4 .



- Utilizarea unui vector de rezervă diferit de zero face posibilă accelerarea convergenței metodei, dar în acest caz este necesar să se evalueze posibilitatea îndeplinirii condiției de convergență 3.
- Metoda unidimensională poate fi aplicată pentru a rezolva probleme multidimensionale fără restricții. Problema multidimensională de pe mulțime este reprezentată ca

Pentru a rezolva problema , în care algoritmul unidimensional poate fi utilizat, dar pentru a calcula valoarea funcției , este necesar să se rezolve problema de optimizare a dimensiunii .




Dacă , atunci problema este rezolvată printr-o metodă unidimensională (valoarea variabilei este fixă), în caz contrar i se aplică și procedura de reducere a dimensionalității. Această metodă de rezolvare a problemelor multidimensionale este destul de laborioasă, prin urmare, în practică, este aplicabilă pentru . Prezența constrângerilor funcționale neliniare poate duce la pierderea proprietății Lipschitz în probleme unidimensionale auxiliare.




Literatură
- Barkalov K. A., Strongin R. D. Metoda de optimizare globală cu ordine de verificare adaptivă a constrângerilor // Zh. Vychisl. matematica. și mat. fizic - 2002. - T. 42. - Nr. 9. - p. 1338-1350.
- Gorodetsky S. Yu., Grishagin VA Programare neliniară și optimizare multi-extremă. - Nizhny Novgorod: Nijni Novgorod University Press, 2007.
- Strongin R. G. Metode numerice în probleme multi-extremale (algoritmi informaţional-statistici). - M. : Nauka, 1978. - 240 p.
- Sergheev Ya. D., Grishagin VA Algoritmi secvențiali și paraleli pentru optimizarea globală // Optimization Methods and Software, 3:1-3, 1994, pp. 111-124.
- Markin D. L., Strongin R. G. O metodă pentru rezolvarea problemelor multi-extremale cu constrângeri neconvexe folosind informații a priori despre estimările optime // Zh. Vychisl. matematica. și mat. Fiz., 27:1 (1987), pp. 56-62.
Link -uri
- [1] - implementarea metodei în C++.
- [2] - Implementarea C++ a modificării metodei metodei de rezolvare a problemelor multidimensionale multicriteriale .