Как настроить ограничения генетических алгоритмов Matlab? - PullRequest
5 голосов
/ 17 июня 2011

У меня проблема с построением матриц ограничений генетических алгоритмов в Matlab.Я хочу импортировать эти матрицы в функцию GA для задачи, которая имеет следующие ограничения:

a1<a2<a3...an-1<an , 0<ai<90, n=number of variables.

Документация Matlab не помогла мне, потому что она относится только к простым уравнениям, а не к такого рода ограничениям.

Я новичок в GA, и любая помощь будет приемлемой!

Ответы [ 2 ]

1 голос
/ 21 мая 2012

Может быть, вы можете предоставить следующие опции для определения ограничений неравенства для задачи с 5 параметрами.

Aineq = [1 -1 0 0 0;  0 1 -1 0 0;  0 0 1 -1 0;  0 0 0 1 -1; ]

и

b = [0 0 0 0]

Это приведет к следующим ограничениям:

a1<a2
a2<a3
a3<a4
a4<a5

, что эквивалентно a1<a2<a3<a4<a5

1 голос
/ 27 июля 2011

Ограничение по умолчанию, предоставляемое Matlab, не подойдет для Ваших нужд.

Вы можете попытаться перевести Ваши ограничения и добавить условие штрафа, например:

goalfunction value = Inf if conditions are not fulfilled

Но это не поможет найти оптимальный вариант, так каково мое решение

Вы также можете попытаться перевести проблему, и вместо того, чтобы найти Ваши значения, просто найдите это:

b(1), b(2), ... b(n), where bi = a(i)-a(i-1) and b(i) > 0 for each i

Таким образом, вы найдете только расстояния между каждой из ваших начальных переменных, и при условии, что они положительны, вы найдете монотонно увеличивающуюся последовательность, и это то, что вам нужно. Скажи мне, если Тебя это устраивает.

PS. Ограничения в оптимизации - это отличная вещь, и не всегда просто понять, как мы будем переводить каждое ограничение реального мира в aX > b:)

...