4.2. Градиентті проекциялау әдісі
, (30)
есебін қарастырамыз, мұндағы
жиыны
кеңістігімен сәйкес келуі міндетті емес, ал функция
![]()
жағдайында градиентті әдісті бірден қолдану қиындыққа әкелуі мүмкін, себебі қандай да бір
кезінде
нүктесі
жиынына тиісті болмауы мүмкін. Алайда, егер алынған
нүктені әрбір
-да
жиынына проекцияласа, осы қиындықты шешуге болады. Нәтижесінде біз градиентті проекциялау әдісі деп аталатын әдісті пайдаланамыз[7].
Айталық,
- кейбір бастапқы жуықтау болсын. Әрі қарай ереже бойынша
тізбегін құрамыз:
, (31)
мұндағы
- оң шама. Егер
- дөңес тұйық жиын және (31)-ші формулада
тізбегін таңдап алу тәсілі берілсе, онда
тізбегі (31)-ші шартпен анықталады. Атап айтқанда,
болғанда (31)-дегі әдіс градиенттік әдіске ауысады.
Егер (31)-де кейбір итерацияларда
болса (мысалы, бұл
кезінде болады), онда (31) процесі аяқталады. Бұл жағдайда
нүктесі
қажетті тиімділік шартын қанағаттандырады, және
(30)-шы есептің шын мәнінде шешімі болатындығын немесе болмайтындығын анықтау үшін, қажет болған жағдайда
нүктесінің маңайында
функциясының өзгеруін қосымша зерттеуін жүргізу қажет. Егер
- дөңес функция болса, онда
нүктесі (30) тапсырманың шешімі болып табылады.
мәнінің таңдау тәсіліне байланысты (31)-де [1], [13]-[15] градиентті проекциялау әдісінің әртүрлі нұсқаларын алуға болады. Тәжірибеде көбірек пайдаланылатын
мәнін таңдау тәсілдерінің бірнешеуін көрсетейік.
1) Бір айнымалы
,
функцияны енгізейік, және
мәнін келесі шарттан анықтаймыз:
. (32)
кезінде (31), (32) әдісі жылдам түсу әдісіне өзгеретіндігі анық.
2) Кейде
біртектілік шартын қамтамасыз ететін қандай да бір
табумен ғана шектелеміз. Әдетте, ол үшін қандай да бір
тұрақтысын таңдап, (31) әдісінде әрбір итерацияға
деп жобалайды, сосын біртектілік шартын тексеріп, қажет болса біртектілік шартының орындалуына жету үшін
көлемін бөлшектейді.
3) Егер функция
-де жатсын және Липшица
константасы
градиенті үшін белгілі, онда (31)-де
ретінде келесі
(33)
шартын қанағаттандаратындай кез-келген санды алуға болады, мұндағы
,
- әдістің параметрлері болып табылатын оң сандар.
кезінде (31) әдісте сипатталған нұсқалар сәйкесінше градиентті әдістің сәйкес нұсқаларына өзгеретіндігін байқаймыз.
Сонымен қоса, (31) әдісінде
параметрін таңдаудан басқа әрбір итерацияда
жиынына нүктені проекциялау қажет. Бірақ,
жиынына қандай да бір
нүктесін проекциялауды іздеу тапсырмасы осы жиында
немесе
функциясын минимизациялау болып табылады және әрқашанда шешімін табу оңай емес. Сондықтан, градиентті проекциялау әдісі жиындағы проекция нүктесі жеңіл анықталғанда ғана қолданылады. Мысалы,
жиыны
кеңістігіндегі, параллелепипедтегі, гипержазықтықтағы, жартылай кеңістіктегі немесе оң октанттағы шар болсын делік, нүктені проекциялау есебі қарапайым және айқын түрде шешіледі, және бұл жағдайда градиентті проекциялау әдісінің әрбір итерациясын жүзеге асыру ерекше қиыншылықтарды тудырмайды. Егер проекциялау есебі өз шешімі үшін қандай да бір итерациялық әдістердің қолданылуын талап етсе, онда градиентті проекциялау әдісінің тиімділігі айтарлықтай төмендейді.
Мысал 4. Сызықты емес программалаудың келесі тапсырмасын
,
![]()
градиентті проекциялау әдісімен
,
![]()
шарттардың бірін орындау арқылы есептеудің шешімін табу керек.
Шешімі. Бастапқы жуықтауға мысал ретінде
нүктесін алайық.
градиенті
Липшиц шартын
тұрақтысымен қанағаттандырады, себебі
.
Сондықтан, келесі жуықтау үшін
болатын,
, (34)
формуласында
деп алуға болады (яғни, қадам (33) теңсіздікті қанақаттандырады). Мысалы,
деп есептейік.
Қадам 1.
болғандықтан, (34) формула бойынша келесіні табамыз
![]()
![]()
болғандықтан, нүкте
. Сондықтан
.
болғандықтан, талап етілетін дәлдік табылған жоқ.
Қадам 2. Алдыңғы қадамдағыдай
екендігін табамыз, сосын
![]()
болғандықтан, нүкте
.
жиыны өз алдында
кеңістігіндегі
нүктесінде центрі бар
радиусты тұйық шар болсын делік. Келесі формула арқылы берілген жиында табылған нүктенің проекциясын табамыз:
.
Талап етілген дәлдік қанағаттандырылмайды, себебі
.
Градиентті проекциялау әдісінің қалған қадамдарының нәтижесі 4-кестеді көрсетілген.
4-кесте.
Проекциялау әдісі
|
|
|
|
|
|
|
2 |
(0,9965; 0,083) |
0,298 |
(-1; 0,1661) |
(1,7465; -0,0415) |
|
3 |
(0,9997; -0,0232) |
0,107 |
(-1; -0,0476) |
(1,7465; -0,0415) |
|
4 |
(0,99998; 0,00679) |
0,031 |
(-1; 0,0136) |
(1,74998; -0,00339) |
|
5 |
(0,99998; 0,0087) |
0,0087 |
|
|
Кестеден
,
екендігін көреміз.
Қарастырылап отырған есептің нақты шешімі
,
екендігін белгілейік.