Frank-Wulff-algoritmi [1] on iteratiivinen ensimmäisen kertaluvun optimointialgoritmi konveksia optimointia varten rajoituksilla [ . Algoritmi tunnetaan myös ehdollisena gradienttimenetelmänä [2] , pelkistetyn gradientin menetelmänä ja konveksina yhdistelmäalgoritmina . Menetelmää ehdottivat alun perin Marguerite Frank ja Philip Wolf vuonna 1956 [3] . Jokaisessa iteraatiossa Frank-Wulff-algoritmi harkitsee tavoitefunktion lineaarista approksimaatiota ja liikkuu tämän lineaarisen funktion minimoimisen suuntaan (samalla mahdollisilla ratkaisuilla).
Oletetaan, että se on kompakti kupera joukko vektoriavaruudessa ja on konveksi , differentioituva reaaliarvoinen funktio . Frank-Wulff-algoritmi ratkaisee optimointiongelman
Minimoida tarjotaan .Kun kilpailevat menetelmät, kuten gradienttilaskeutuminen rajoitettua optimointia varten, vaativat jokaisen iteroinnin projisoitumaan sallittujen arvojen joukkoon, Frank-Wulf-algoritmin tarvitsee vain ratkaista lineaarinen ohjelmointiongelma samassa sarjassa jokaisessa iteraatiossa, joten ratkaisu säilyy aina. toteuttamiskelpoisten ratkaisujen joukossa.
Frank-Wulf-algoritmin konvergenssi on yleensä sublineaarinen - tavoitefunktion virhe suhteessa optimaaliseen arvoon on k iteroinnin jälkeen , mikäli gradientti on Lipschitzin jatkuva jossain normissa. Sama konvergenssi voidaan osoittaa, jos osaongelmat ratkaistaan vain suunnilleen [4] .
Algoritmin iteraatiot voidaan aina esittää ei-tiheänä kuperana yhdistelmänä toteutettavissa olevien ratkaisujen joukon ääripisteitä, mikä on edistänyt algoritmin suosiota harvaan ahneisiin optimointiongelmiin koneoppimisessa ja signaalinkäsittelyssä [5] , koska sekä vähimmäiskustannusvirtojen löytämiseen liikenneverkoissa [6] .
Jos toteutettavissa olevien ratkaisujen joukko annetaan lineaaristen epäyhtälöiden joukolla, niin kussakin iteraatiossa ratkaistava alitehtävä muuttuu lineaariseksi ohjelmointiongelmaksi .
Vaikka yleisen tapauksen pahimman tapauksen konvergenssiastetta ei voida parantaa, erityisongelmille, kuten tiukasti konveksille ongelmille, voidaan saavuttaa korkeammat konvergenssinopeudet [7] .
Koska funktio on kupera , meillä on kahdelle pisteelle :
Tämä pätee myös (tuntemattomaan) optimaaliseen ratkaisuun . Se on . Paras pisteen alaraja saadaan kaavasta
Tämä viimeinen ongelma ratkaistaan jokaisessa Frank-Wulff-algoritmin iteraatiossa, joten i:nnen iteroinnin suunnan löytämisen aliongelman ratkaisua voidaan käyttää määrittämään kasvavat alarajat kussakin iteraatiossa antamalla ja
Tällaiset tuntemattoman optimiarvon alarajat ovat käytännössä erittäin tärkeitä, koska niitä voidaan käyttää algoritmin pysäyttämisen kriteerinä ja ne antavat tehokkaan indikaattorin approksimaation laadusta jokaisessa iteraatiossa, koska aina .
On osoitettu, että duaalisuusrako , joka on ero alarajan välillä , pienenee samalla nopeudella, ts.
Optimointimenetelmät _ | |
---|---|
Yksiulotteinen |
|
Nolla järjestys | |
Ensimmäinen tilaus | |
toinen tilaus | |
Stokastinen | |
Lineaariset ohjelmointimenetelmät _ | |
Epälineaariset ohjelmointimenetelmät |