Задача о смесях и генетический алгоритм
От: StavR22  
Дата: 02.05.06 09:25
Оценка:
Типичная задача о смесях (пример):
Требуется изготовить сплав из трех металлов Мj с плотностью a1j, содержанием углерода a2j и фосфора a3j, которые могут быть использованы в количествах от aj' до bj'. Характеристики сплава должны стремиться к плотности N1, содержанию углерода N2, фосфора N3.
Естественное и обязательное условие:
M1+M2+M3=1 (в массовых долях, или =100%). (1)
Целевая функция:
,
где k – количество характеристик a (в данном примере k=3);
n – количество металлов (в данном примере n=3).

Вопрос: возможно ли к задаче такого типа применить генетический алгоритм? Загвоздка в четко определенных интервалах массовых долей металлов [aj’;bj’] и условии (1). На мой взгляд оператор селекции в таких условиях реализовать невозможно, т.к. обмен частями хромосом приведет, в подавляющем большинстве случаев, к нарушению условия (1).
Другие мнения есть?
Re: Задача о смесях и генетический алгоритм
От: FDSC Россия consp11.github.io блог
Дата: 02.05.06 10:04
Оценка:
Здравствуйте, StavR22, Вы писали:

SR>Типичная задача о смесях (пример):

SR> Требуется изготовить сплав из трех металлов Мj с плотностью a1j, содержанием углерода a2j и фосфора a3j, которые могут быть использованы в количествах от aj' до bj'. Характеристики сплава должны стремиться к плотности N1, содержанию углерода N2, фосфора N3.
SR> Естественное и обязательное условие:
SR>M1+M2+M3=1 (в массовых долях, или =100%). (1)
SR>Целевая функция:
SR> ,
SR>где k – количество характеристик a (в данном примере k=3);
SR>n – количество металлов (в данном примере n=3).

SR>Вопрос: возможно ли к задаче такого типа применить генетический алгоритм? Загвоздка в четко определенных интервалах массовых долей металлов [aj’;bj’] и условии (1). На мой взгляд оператор селекции в таких условиях реализовать невозможно, т.к. обмен частями хромосом приведет, в подавляющем большинстве случаев, к нарушению условия (1).

SR>Другие мнения есть?

Ну есть же штрафы, потом можно ввести какую-нибудь функцию коррекции хромосомы. Вообще, я не понял, как будет реализован алгоритм.

Почему приведёт к наруш. усл. (1)? Если сделать набор из 100 хромосом в каждой из которых будет сидеть по металлу из списка, то ничего не будет плохого.

А чем стандартные алгоритмы минимизации не устраивают? Они ведь в данной задаче и быстрее, и надёжней сработают, насколько я понимаю
Re[2]: Задача о смесях и генетический алгоритм
От: StavR22  
Дата: 03.05.06 09:52
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Ну есть же штрафы, потом можно ввести какую-нибудь функцию коррекции хромосомы. Вообще, я не понял, как будет реализован алгоритм.


FDS>Почему приведёт к наруш. усл. (1)? Если сделать набор из 100 хромосом в каждой из которых будет сидеть по металлу из списка, то ничего не будет плохого.


FDS>А чем стандартные алгоритмы минимизации не устраивают? Они ведь в данной задаче и быстрее, и надёжней сработают, насколько я понимаю




Стандартные алгоритмы работают здесь хорошо! Но меня заинтересовал вопрос применимости и эффективности в таком случае ГА !

На счет 100 хромосом не понял !

Простейший пример для 3-х металлов:
допустим, что металлы могут быть использованы в количествах:
M1(20,21,22,23,24,25)
M2(15,16,17,18,19,20,21,22)
M3(53,54,55,56,57,58,59,60)

допустим сформированы какие-то хромосомы, удовлетворяющие (1) (сразу возникает вопрос: как определить колич-во первоначальных хромосом n?):

(M1,M2,M3)
1 (25,22,53)
2 (21,20,59)
3 (23,17,60)
4 (20,20,60)
…………………..
n (21,22,57)

допустим, что пара 1,4 попали в селекцию, а точка деления после первого гена:

--------------------------------(25,20,60) 25+20+60=105
(25,22,53) и (20,20,60)= ------------и ------------------------- условие (1) не выполнено !
------------------------------- (20,22,53) 20+22+53=95
Re[3]: Задача о смесях и генетический алгоритм
От: FDSC Россия consp11.github.io блог
Дата: 04.05.06 17:06
Оценка: 2 (1)
Здравствуйте, StavR22, Вы писали:

SR>Простейший пример для 3-х металлов:

SR>допустим, что металлы могут быть использованы в количествах:
SR>M1(20,21,22,23,24,25)
SR>M2(15,16,17,18,19,20,21,22)
SR>M3(53,54,55,56,57,58,59,60)

SR>допустим сформированы какие-то хромосомы, удовлетворяющие (1) (сразу возникает вопрос: как определить колич-во первоначальных хромосом n?):


SR> (M1,M2,M3)

SR>1 (25,22,53)
SR>2 (21,20,59)
SR>3 (23,17,60)
SR>4 (20,20,60)
SR>…………………..
SR>n (21,22,57)

Ну вот, а я предлагаю так: хромосома вида [М1 М1 М1 ... M1 M2 M2 ... M2 M3 M3 ... M3]

Упростим, допустим решаем задачу с точностью 10%


1 (М1 М1 М1 M2 M2 M3 M3 M3 M3 M3)
2 (М1 М1 М1 M1 M2 M2 M2 M3 M3 M3)
3 (М1 М2 М2 M2 M2 M3 M3 M3 M3 M3)
4 (М1 М1 М2 M2 M2 M2 M2 M3 M3 M3)

SR>допустим, что пара 1,4 попали в селекцию, а точка деления после первого гена:


Ну, вот, точки деления после 4 и 7, например:

1 (М1 М1 М1 M2 M2 M3 M3 M3 M3 M3)
4 (М1 М1 М2 M2 M2 M2 M2 M3 M3 M3)
R (М1 М1 М1 M2 M2 M2 M2 M3 M3 M3) — результат 30% металла 1, 40% металла 2, 30% металла 3. Т.е. считаем массовые доли по количеству присутствующих признаков соотв. металла в хромосоме — тогда никаких наруш. не будет
Вопрос, правда, насколько он так будет сходиться....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.