Кіріспе

Ықтималдық оптимизация техникасы және метаэвристика

Модельдеу арқылы оттеу (SA) – берілген функцияның жаһандық оптимумын жуықтап табуға арналған ықтималдық техника. Нақтырақ айтқанда, бұл оптимизациялық мәселенің кең іздеу кеңістігінде жаһандық оптимизацияны жуықтап табуға арналған метаэвристика. Көптеген жергілікті оптимумдар болған жағдайда, SA жаһандық оптимумды таба алады. Ол көбінесе іздеу кеңістігі дискретті болған кезде қолданылады (мысалы, сатушының саяхаты мәселесі, бульдік қанағаттандыру мәселесі, белок құрылымын болжау және жұмыс кестесін жоспарлау). Белгілі бір уақыт ішінде нақты жергілікті оптимумды табудан гөрі шамамен жаһандық оптимумды табу маңыздырақ болған мәселелер үшін, градиенттік түсу немесе тармақталу және шектеу сияқты нақты алгоритмдерге қарағанда модельдеу арқылы оттеу әдісі артықшылықты болуы мүмкін. Алгоритмнің атауы металлургиядағы оттеу процесінен алынған, ол материалдың физикалық қасиеттерін өзгерту үшін материалды қыздыру және бақыланатын салқындатуды қамтитын техника. Бұл екеуі де материалдың термодинамикалық еркін энергиясына байланысты қасиеттері. Материалды қыздыру және салқындату температураға да, термодинамикалық еркін энергияға немесе Гиббс энергиясына да әсер етеді. Модельдеу арқылы оттеуді нақты алгоритмдердің сәтсіз аяқталуы мүмкін өте қиын есептеулік оптимизациялық мәселелерде қолдануға болады; әдетте ол жаһандық минимумға жуық шешімге қол жеткізсе де, көптеген практикалық мәселелер үшін бұл жеткілікті болуы мүмкін. SA арқылы шешілетін мәселелер қазіргі уақытта көптеген айнымалылардың объективтік функциясы арқылы формулировкаланады, олар бірнеше математикалық шектеулерге бағынады. Іс жүзінде, шектеулерді объективтік функцияның бір бөлігі ретінде жазалауға болады. Осыған ұқсас техникалар бірнеше рет тәуелсіз түрде ұсынылған, соның ішінде Пинкус (1970), Хачатурян және басқалар (1979, 1981), Киркпатрик, Гелат және Векки (1983) және Серни (1985). 1983 жылы Киркпатрик, Гелат кіші, Векки бұл тәсілді немесе стохастикалық үлгі алу әдісін қолданды. Бұл әдіс – термодинамикалық жүйенің үлгілік күйлерін жасауға арналған Монте-Карло әдісі Metropolis–Hastings алгоритмінің бейімделуі, ол 1953 жылы Н. Метрополис және басқалармен жарияланған.

Шолу

Кейбір физикалық жүйелердің s күйі және E(s) функциясы, сол күйдегі жүйенің ішкі энергиясына ұқсас. Мақсат – жүйені кез келген бастапқы күйден, ең төменгі мүмкін энергияға ие күйге жеткізу.

Негізгі қайталау

Әрбір қадамда, симуляцияланған оттану эвристикасы ағымдағы күйдің s кейбір көршілес күйін s* қарастырады және ықтималдық бойынша жүйені s* күйіне көшіруге немесе s күйінде қалуға шешім қабылдайды. Бұл ықтималдықтар нәтижесінде жүйе төмен энергиялы күйлерге жылжиды. Әдетте, бұл қадам жүйе қолданбаға жеткілікті жақсы күйге жеткенше немесе белгілі бір есептеу шығыны сарланғанша қайталанады.

Мемлекеттің көршілері

Шешімді оңтайландыру – проблеманың күйлерінің көршілерін бағалауды қамтиды, олар берілген күйді консервативті түрде өзгерту арқылы туындайтын жаңа күйлер. Мысалы, саяхатшы сатушысы мәселесінде әр күй әдетте сапарлау қажетті қалалардың орналасу реті ретінде анықталады, ал кез келген күйдің көршілері – осы қалалардың кез келген екеуін ауыстыру арқылы алынған орналасулар жиынтығы болып табылады. Күйлердің көршілес күйлерді жасау үшін өзгеруі "қимыл" деп аталады, ал әртүрлі қимылдар көршілес күйлердің әртүрлі жиынтығын береді. Бұл қимылдар көбінесе соңғы күйде минималды өзгерістерге алып келеді, бұл шешімді оның бөліктерін итеративті түрде жақсарту арқылы (саяхатшы сатушысы мәселесіндегі қала байланыстары сияқты) жақсартуға тырысады. Жақсы көршіні тауып, жақсы көрші болмағанда тоқтайтын, тауға өрлеу сияқты қарапайым эвристикалар, ең жақсы шешімге жетуін кепілдік бере алмайды. Олардың нәтижесі оңай ғана жергілікті оптимум болуы мүмкін, ал нақты ең жақсы шешім – жаһандық оптимум, ол басқаша болуы мүмкін. Метаэвристикалар шешім кеңістігін зерттеу үшін шешімнің көршілерін пайдаланады, және олар жақсы көршілерді қалаумен қатар, жергілікті оптимумдарда тұрып қалудан аулақ болу үшін нашар көршілерді де қабылдайды; олар жеткілікті ұзақ уақыт жұмыс істесе, жаһандық оптимумды таба алады.

Жарықтау кестесі

Алгоритмнің атауы мен оған түрткі болған идея алгоритмнің жұмыс істеу қасиеттеріне температураның өзгеруімен байланысты қызықты ерекшелікті енгізуді талап етеді. Бұл симуляция жүрген сайын температураны біртіндеп төмендетуді қажет етеді. Алгоритм бастапқыда жоғары мәнге (немесе шексіздікке) орнатылады, содан кейін әр қадамда белгілі бір оттеу кестесі бойынша азаяды – бұл кесте пайдаланушымен анықталуы мүмкін, бірақ бөлінген уақыттың соңына қарай аяқталуы керек. Осылайша, жүйе бастапқыда энергия функциясының ұсақ ерекшеліктерін назарға алмай, жақсы шешімдері бар іздеу кеңістігінің кең аймағына қарай бағытталатыны күтіледі; содан кейін энергиясы төмен аймақтарға қарай қозғалады, олар тарылып, тарылып, ақырында ең тік төмен түсу эвристикасы бойынша төмен қарай жылжиды. Кез келген шекті мәселе үшін, симуляцияланған оттеу алгоритмінің жаһандық оңтайлы шешіммен аяқталу ықтималдығы оттеу кестесі ұзартылғанда 1-ге жақымдасады. Дегенмен, бұл теориялық нәтиже аса пайдалы емес, себебі сәттілік ықтималдығын қамтамасыз ету үшін қажетті уақыт көбінесе шешім кеңістігін толық іздеуге кеткен уақыттан асып түседі.

Параметрлерді таңдау

Нақты бір мәселеге симуляциялық оттану әдісін қолдану үшін келесі параметрлерді анықтау қажет: күй кеңістігі, энергия (мақсат) функциясы, кандидаттарды жасау процедурасы, қабылдау ықтималдығы функциясы, оттеу кестесі ЖӘНЕ бастапқы температура. Бұл таңдаулар әдістің тиімділігіне маңызды әсер етеді. Анығында, барлық мәселелер үшін жақсы болатын параметрлердің жиынтығы жоқ, сондай-ақ, нақты мәселе үшін ең жақсы таңдауларды табудың жалпы әдісі де жоқ. Келесі бөлімдерде осы мәселені шешуге көмектесетін жалпы ұсыныстар келтіріледі.

Көршіге жеткілікті жақын

Эмоционалды оттепелеуді іздеу графигіндегі кездейсоқ серуендеу ретінде модельдеуге болады, ондағы төбелер барлық мүмкін күйлерді, ал қабырғалар – үміткер амалдарды білдіреді. Функцияның маңызды талабы – бастапқы күйден жаһандық оптимум болуы мүмкін кез келген күйге дейін осы графикте жеткілікті қысқа жол қамтамасыз етуі керек. Іздеу графигінің диаметрі шағын болуы тиіс. Мысалы, жоғарыдағы саяхатшы сатушысы мысалында, n = 20 қала үшін іздеу кеңістігі n! = 2,432,902,008,176,640,000 (2.4 квинтиллион) күйге ие; бірақ әр төбеге байланысты көршілер саны – қабырғалар (n-нен 20 таңдаудан), ал графиктің диаметрі – .

Өтпе ықтималдығы

Белгілі бір проблема бойынша симуляциялық оттепелеудің мінез-құлқын зерттеу үшін, алгоритмді іске асыру кезінде жасалған әртүрлі жобалау шешімдерінен туындайтын ауысу ықтималдықтарын қарастыру пайдалы болуы мүмкін. Іздеу графигінің әрбір қабырғасы үшін ауысу ықтималдығы – бұл симуляциялық оттепелеу алгоритмінің ағымдағы күйінен күйге өту ықтималдығы ретінде анықталады. Бұл ықтималдық , температураға, кандидаттық қозғалыстарды тудыратын функцияның ретіне және қабылдау ықтималдығы функциясына байланысты. (Айта кетсек, ауысу ықтималдығы жай ғана емес, себебі кандидаттар тізбекпен тексеріледі.)

Қабылдау ықтималдығы

, , және спецификациясы ішінара қайталауға жатады. Іс жүзінде, көптеген мәселелер үшін бірдей қабылдау функциясын қолдану және қалған екі функцияны нақты мәселеге сәйкес реттеу кең таралған. Киркпатрик және авторлар әдісті жасағанда, қабылдау ықтималдығы функциясы егер 1 болса, ал әйтпесе - ретінде анықталды. Бұл формула физикалық жүйенің өтулерімен салыстыру арқылы негізделген; ол T=1 және Метрополис-Хэстингс ұсыныс таралуы симметриялық болған жағдайда Метрополис-Хэстингс алгоритміне сәйкес келеді. Дегенмен, бұл қабылдау ықтималдығы жиі симуляцияланған оттегілеу үшін қолданылады, тіпті функция, Метрополис-Хэстингстегі ұсыныс таралуына ұқсас, симметриялық болмаса немесе тіпті ықтималдық емес болса да. Нәтижесінде, симуляцияланған оттегілеу алгоритмінің өту ықтималдықтары сол физикалық жүйенің өтулеріне сәйкес келмейді, ал тұрақты температурадағы күйлердің ұзақ мерзімді таралуы кез келген температурада сол физикалық жүйенің күйлері бойынша термодинамикалық тепе-теңдік таралуына ұқсамайды. Дегенмен, симуляцияланған оттегілеудің көптеген сипаттамалары бастапқы қабылдау функциясын қабылдайды, бұл, мүмкін, SA-ның көптеген іске асырылуында қатаң түрде енгізілген. 1990 жылы Москато мен Фонтанари, сондай-ақ тәуелсіз түрде Дьюк пен Шейер, детерминистік жаңарту (яғни, ықтималдық қабылдау ережесіне негізделмеген) оңтайландыру процесін соңғы сапаға әсер етпей үдетуге болатынын ұсынды. Москато мен Фонтанари өз зерттеулерінен алынған "шегілік жаңарту" оттегінің "ерекше жылу" қисығының аналогын қарастырып, "симуляцияланған оттегілеу алгоритміндегі Метрополис жаңартуының стохастикалық сипаты жақын оптималдық минимумдарды іздеуде маңызды рөл атқармайды" деген қорытындыға келді. Оның орнына, олар "жоғары температурадағы құн функциясы ландшафтының тегістелуі және салқындату процесінде минимумдардың біртіндеп қалыптасуы – симуляцияланған оттегілеудің табысқа жетуінің негізгі факторлары" деп ұсынды. Бұл әдіс кейіннен Дьюк пен Шейердің атауымен "шегілік қабылдау" деп танымал болды. 2001 жылы Франц, Хоффман және Саломон детерминистік жаңарту стратегиясы шынымен де құн/энергия ландшафтында кездейсоқ қозғалысты имитациялайтын алгоритмдер класындағы ең оңтайлы стратегия екенін көрсетті.

Кандидаттарды тиімді қалыптастыру

Кандидат генераторды таңдағанда, симуляцияланған оттыру алгоритмінің бірнеше итерациясынан кейін ағымдағы күйдің энергиясы кездейсоқ күйге қарағанда әлдеқайда төмен болады деп күтілуі керек. Сондықтан, жалпы ереже бойынша, генераторды баратын күйдің энергиясы ағымдағы күйдің энергиясына ұқсас болуы мүмкін кандидат қозғалыстарға қарай бұру керек. Бұл эвристика (Метрополис-Хестингс алгоритмінің негізгі принципі) өте жақсы кандидат қозғалыстарды, сондай-ақ өте жаман қозғалыстарды да алып тастауға бейім; алайда, біріншісі екіншісіне қарағанда әдетте әлдеқайда сирек кездеседі, сондықтан эвристика әдетте өте тиімді. Жоғарыдағы саяхатшы сатушы мәселесінде, мысалы, төмен энергиялы маршрутта екі қатарлас қаланы ауыстыру оның энергиясына (ұзындығына) шамалы әсер етеді деп күтіледі; ал екі кездейсоқ қаланы ауыстыру оның ұзындығын азайтудан гөрі ұлғайтуы ықтимал. Осылайша, қатарлас ауыстыру көрші генераторы кездейсоқ ауыстыру генераторынан жақсы жұмыс істейді деп күтіледі, тіпті соңғысы оптималға дейін сәл қысқа жолды қамтамасыз ете алады (ауыстырулармен, орнына). Эвристиканың дәлірек тұжырымы – бірінші кандидат күйлерін сынап көру керек, мұнда үлкен. Жоғарыдағы «стандартты» қабылдау функциясы үшін бұл дегеніміз, ол немесе одан кем шамасында. Осылайша, жоғарыдағы саяхатшы сатушы мысалында, екі кездейсоқ қаланы ауыстыратын функцияны қолдануға болады, онда қала жұбын таңдау ықтималдығы олардың арақашықтығы артқан сайын азаяды.

Кедергілерден аулақ болу

Кандидат генераторды таңдағанда, сонымен қатар, барлық көршілес күйлерге қарағанда энергиясы әлдеқайда төмен "төмендеу" жергілікті минимумдар (немесе байланысқан күйлер жиынтығы) санын азайтуға тырысу керек. Энергия функциясының мұндай "жабық жинақтаушы алаптары" симуляцияланған қайнату алгоритмін жоғары ықтималдықпен (алаптың күйлер санына шамамен пропорционалды) және өте ұзақ уақыт бойы (айналасындағы күйлер мен алаптың түбі арасындағы энергия айырмашылығына шамамен экспоненциалды түрде байланысты) тұтқындауы мүмкін. Әдетте, осы мақсатты қанағаттандыратын және ұқсас энергиясы бар кандидаттарға басымдық беретін кандидат генераторды жобалау мүмкін емес. Екінші жағынан, генераторды салыстырмалы түрде қарапайым өзгерту арқылы симуляциялық қайнатудың тиімділігін айтарлықтай арттыруға болады. Саяхашының мәселесінде, мысалы, шамамен бірдей ұзындығы бар екі маршрутты көрсету оңай, , мұнда (1) біріншісі оңтайлы, (2) қала жұптарын алмастырудың кез келген тізбегі бірінші маршрутты екіншісіне айналдырғанда, екеуінен де ұзын маршруттардан өтеді, және (3) бірінші маршрутты бірізді қалалардың жиынтығын кері бұру арқылы (реттілігін өзгерту арқылы) екінші маршрутқа түрлендіруге болады. Бұл мысалда, егер генератор тек кездейсоқ жұп алмасуды орындаса, маршруттар әртүрлі "терең алаптарда" болады; бірақ егер генератор кездейсоқ сегменттерді ауыстырса, олар бір алапта болады.

Салқындату кестесі

Симуляцияланған оттыртуды негіздеу үшін қолданылатын физикалық аналогия, суыту жылдамдығы ағымдағы күйдің ықтималдық таралымы әрқашан термодинамикалық тепе-теңдікке жақын болуы үшін жеткілікті төмен деп есептейді. Алайда, серпілу уақыты – температура өзгергеннен кейін тепе-теңдіктің қайта орналасуын күтуге қажетті уақыт – энергия функциясының «ландшафтына» және ағымдағы температураға күшті түрде байланысты. Симуляцияланған оттырту алгоритмінде серпілу уақыты кандидатты генераторға да, өте күрделі тәсілмен байланысты. Бұл параметрлердің бәрі әдетте симуляцияланған оттырту алгоритміне «қара жәшік» функциялары ретінде беріледі. Сондықтан, идеалды суыту жылдамдығын алдын ала анықтау мүмкін емес және оны әр мәселе үшін эмпирикалық түрде түзету қажет. Адаптивті симуляцияланған оттырту алгоритмдері бұл мәселені суыту кестесін іздеу прогресімен байланыстыру арқылы шешеді. Термодинамикалық симуляцияланған оттырту сияқты басқа да адаптивті тәсілдер термодинамика заңдарына сәйкес, екі күй арасындағы энергия айырмашылығына негізделіп, әр қадамда температураны автоматты түрде реттейді.

Қайта бастау

Кейде қазіргі жағдайдан әрқашан өзгешеге көшудің орнына, бұрынғыдан әлдеқайда жақсы болған шешімге қайта оралу тиімдірек. Бұл процеске симуляцияланған оттыртуды қайта іске қосу (restart) дейді. Мұны істеу үшін s және e мәндерін sbest және ebest деп орнатамыз, сондай-ақ, оттырту кестесін де қайта іске қосуға болады. Қайта іске қосу туралы шешім әртүрлі критерийлерге негізделуі мүмкін. Олардың арасында белгілі бір қадамдар санына жеткенде қайта іске қосу, ағымдағы энергияның осы уақытқа дейін алынған ең жақсы энергиядан артық болуы, кездейсоқ түрде қайта іске қосу және тағы да басқалары бар.