2011-06-17 9 views
5

Mam problem z budowaniem macierzy więzów algorytmów genetycznych w Matlab. Chcę zaimportować te matryce w funkcji GA dla problemu, który ma następujące ograniczenia:Jak skonfigurować wiązania matematyczne Algorytmy Matlab?

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

dokumentacji MATLAB nie udało mi pomóc, ponieważ odnosi się tylko do prostych równań, a nie do tego rodzaju ograniczeń.

Jestem nowy dla GA i każda pomoc będzie do zaakceptowania!

Odpowiedz

1

Domyślne ograniczenie zapewniane przez Matlab nie będzie odpowiadać Twoim potrzebom.

Można próbować tłumaczyć swoje ograniczenia co i dodać warunek kary, tak:

goalfunction value = Inf if conditions are not fulfilled 

Ale to nie będzie w stanie znaleźć optymalne, więc to, co jest moje rozwiązanie

Możesz także spróbować przetłumacz problem, a zamiast znaleźć swoje wartości, po prostu znajdź to:

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

Więc znajdziesz tylko odległości między każdą z początkowych zmiennych i że są pozytywne, znajdziesz monotycznie rosnącą sekwencję i właśnie tego potrzebujesz. Powiedz mi, czy to Cię satysfakcjonuje.

PS. Ograniczenia w optymalizacji są świetną rzeczą do rozwiązania i nie zawsze jest jasne, jak przetłumaczyć ograniczenia w prawdziwym świecie na aX > b :)

1

Być może możesz podać następujące opcje definiowania więzów nierówności dla problemu z 5 parametrami.

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

i

b = [0 0 0 0] 

To przełoży się na następujących ograniczeń:

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

co jest równoważne a1<a2<a3<a4<a5