Изменения

Перейти к: навигация, поиск

Задача многокритериальной оптимизации. Multiobjectivization

2637 байт добавлено, 19:13, 4 сентября 2022
м
rollbackEdits.php mass rollback
== Введение ==
В данной статье рассматривается многокритериальная оптимизация, её задача. Рассматривается понятие Парето-фронт - множество Парето оптимальных значений. Также рассматривается задача коммивояжера и предлагается алгоритм её мультиобъективизации
 
== Задача многокритериальной оптимизации ==
=== Постановка задачи ===
}}
====Псевдокод===={||''Initialization:''||<math>P \leftarrow \emptyset </math><br/>'''Init_pop'''<premath>Discrete Space Hill Climbing Algorithm currentNode = startNode; loop do L = NEIGHBORS(currentNodeP);</math> nextEval = |-INF; nextNode = NULL;|''Main Loop:''||<math>x_1 \leftarrow </math>'''Rand_mem'''<math>(P)</math>,<math>x'_2 \leftarrow </math>'''Rand_mem'''<math>(P)</math><br/> for all <math>x in L '_1 \leftarrow </math>'''Mutate'''<math>(P)</math>,<math>x_2 \leftarrow </math>'''Mutate'''<math>(P)</math><br/> '''if '''<math>(EVALH(x_1,x'_1)+H(x_2,x'_2) > nextEvalH(x_1,x'_2)+H(x_2,x'_1))</math><br/> nextNode = :'''Swap'''<math>(x_1,x;'_2)</math><br/> nextEval = EVAL'''if''' <math>f(x'_1);> f(x_1)</math><br/>: <math>P \leftarrow P \cup x'_1 \setminus x_1</math><br/> '''if nextEval ''' <= EVALmath>f(currentNodex'_2) > f(x_2)</math><br/Return current node since no better neighbors exist> return currentNode;: <math>P \leftarrow P \cup x'_2 \setminus x_2</math> currentNode = nextNode;|-|''Termination:''||'''return Best'''<math>(P)</premath>|}
== Задачи ==
====Hierarchical-if-and-only-if function====
'''H-IIF''' &ndash; предназначена для моделирования проблемы с блочной структурой, каждый блок которой строго связан с остальными блоками.
 
 
:<math>
f(B)= \begin{cases}1,& \mbox{if } |B| = 1, \mbox{ else}
\\|B|+f(B_L)+f(B_R),& \mbox{if }(\forall i \{b_i=0\} \mbox{ or } \forall i \{b_i = 1 \})
\\f(B_L) + f(B_R), & \mbox{otherwise}
\end{cases}
</math>,
 
где <math>B</math> &ndash; блок бит <math>\{b_1,b_2,\dots,b_n \}, |B|</math> &ndash; размер блока, а <math>B_L, B_R</math> &ndash; левая и правая часть блока соответственно.
 
Применяя к этой задаче мультиобъективизацию, разобьём задачу <math>f</math> на <math>k</math>-задач.
 
Представим, как будет выглядеть <math>f(B)</math>:
 
:<math>
f(B)= \begin{cases}
0, & \mbox{if } |B| = 1 \mbox{ and }b_1 \neq k, \mbox{ else}
\\1,& \mbox{if } |B| = 1 \mbox{ and }b_1 = k, \mbox{ else}
\\|B|+f_k(B_L)+f_k(B_R),& \mbox{if }(\forall i \{b_i=k\}),
\\f_k(B_L) + f_k(B_R), & \mbox{otherwise}
\end{cases}
</math>
 
где <math>f_0(x)</math> &ndash; первая цель; <math>f_0(x)</math> &ndash; вторая цель.
 
Данный подход помогает избежать проблему локальных максимумов (минимумов).
 
==== Задача коммивояжера ====
Задача коммивояжера (TSP)является наиболее известно из всего класса <math>NP</math>-сложных задач.
Формулируется задача следующим образом:
:<math>\sum^{N-1}_{i=1} d(C_{\pi(i)},C_{\pi(i+1)})+d(C_{\pi(N)},C_{\pi(1)})</math>
Для того, чтобы объектизировать эту задачуПрименяя к этой задаче мультиобъктивизацию, нам необходимо определить нужно разбить её на подзадачи. TSP &ndash; является <math>NP</math>-сложной именно потому, что нет хорошего разложения этой задачи.Тем не менее задачу можно разбить на две или больше подтуров, каждый из которых мы можем минимизировать. Представим подтуры в виде двух городов. Тогда наша задача примет вид:
Разобьём задачу таким образом:
:<math>minimize\{f(\pi,a,b) = (f_1(\pi,a,b),f_2(\pi,a,b))\}</math>
::'''where'''<math>f_1(\pi,a,b)=\sum^{\pi^{-1}(b)-1}_{i=\pi^{-1}(a)} d(C_{\pi(i)},C_{\pi(i+1)})</math>
::'''and''' <math>f_2(\pi,a,b)=\sum^{N-1}_{i=\pi^{-1}(b)} d(C_{\pi(i)},C_{\pi(i+1)}) + \sum^{\pi^{-1}(a)-1}_{i=1} d(C_{\pi(i)},C_{\pi(i+1)}) </math> <math>+ d(C_{\pi(N)},C_{\pi(1)})</math>,
где <math>a</math> и <math>b</math> &ndash; два города, указанных ''априори''. Если <math>\pi (a) < \pi (b)</math>, меняем их местами.
Предполагается, что <math>a</math> и <math>b</math> выбраны произвольно.
* [http://ru.wikipedia.org/wiki/Многокритериальная_оптимизация Википедия: Многокритериальная оптимизация]
* [http://rain.ifmo.ru/~tsarev/teaching/ea-2012/lectures/3/multiobjectivization.pdf Knowles J., Watson R., Corne D. Reducing Local Optima in Single-Objective Problems by Multi-objectivization]
* [http://rainen.ifmowikipedia.ruorg/~tsarevwiki/teachingMultiobjective_optimization Wikipedia: Multiobjective optimization]* [http:/ea-2012/lecturesen.wikipedia.org/3wiki/p1213.pdf Friedrich T., Neumann F. Foundations of Evolutionary Multi-Objective OptimizationHill_climbing Wikipedia: Hill climbing]
1632
правки

Навигация