Типичная задача о смесях (пример):
Требуется изготовить сплав из трех металлов М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).
Другие мнения есть?
Здравствуйте, 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 хромосом в каждой из которых будет сидеть по металлу из списка, то ничего не будет плохого.
А чем стандартные алгоритмы минимизации не устраивают? Они ведь в данной задаче и быстрее, и надёжней сработают, насколько я понимаю
Здравствуйте, 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?):
Здравствуйте, 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. Т.е. считаем массовые доли по количеству присутствующих признаков соотв. металла в хромосоме — тогда никаких наруш. не будет
Вопрос, правда, насколько он так будет сходиться....