Оптимизация колоний муравьев или генетический алгоритм для задачи на основе процентного соотношения

Итак, в последнее время я действительно увлекся алгоритмами в целом. И я недавно реализовал алгоритм оптимизации муравьиной колонии, чтобы решить TSP (очевидно, очень весело). Теперь я ищу другие «проблемы», которые нужно решить. Теперь я хотел реализовать алгоритм для решения проблемы, связанной с выполнением процентного требования и ниже произвольного предела.

Например:

Пользовательский ввод:

1) предел - т.е. количество энергии, которое можно потратить.

2) "хромосомные" типы - т.е. синий (подтипы - индиго и т. д.), красный (подтипы - бордовый и т. д.), желтый (подтипы - светло-желтый и т. д.) -Каждый первичный атрибут, такой как синий, имеет «бассейн» на выбор, состоящий из разных подтипов, таких как индиго, голубой, морской синий и т. д. -Каждый подтип цвета имеет различную стоимость.

3) процент типов, требуемых для «идеального» решения (можно ввести +/-% для большего разнообразия). - т.е. 10% красного, 30% синего, 60% желтого.

Результат:

1) возможные окончательные решения, которые удовлетворяют двум требованиям, ниже, но близки к требуемой стоимости и соответствуют процентным требованиям супертипов.

Так например.

Это очень простой пример, очевидно, что он был бы более сложным, чем это на самом деле.

Пользователь указывает стоимость должна быть следующей 95 <= cost <= 105.

Пользователь выбирает 25% синего, 25% желтого, 50% красного. с отклонением +/- 5%

Доступные пулы для каждого цвета

Синий: Индиго: стоимость = 25; Морской синий: стоимость = 30; Синий: стоимость = 75;

Желтый: Светло-желтый: стоимость = 20; Темно-желтый: стоимость = 30; Супер темно-желтый (lol): стоимость = 75;

Красный: Бордовый: стоимость = 20; Кроваво-красный: стоимость = 45; Ярко-красный: стоимость = 55;

Таким образом, алгоритм будет работать и возвращать различные комбинации.

Комбинация 1: индиго, темно-желтый, кроваво-красный: стоимость = 100: синий = 25%, желтый = 30%, красный = 55%.

Комбинация 2: морской синий, светло-желтый, кроваво-красный: стоимость = 105: синий = ~ 30%, желтый = ~ 20%, красный = ~ 50%

Комбинация 3: и т. Д. И т. Д. .

РЕДАКТИРОВАТЬ: Второе редактирование

Вывод будет состоять из наборов различных комбинаций.

Например, одно решение может состоять из таких комбинаций:

Одно решение может быть представлено следующим образом:

Комбинация 1: Стоимость = 20; 50% синий, 25% желтый, 25% красный;

Комбинация 2: Стоимость = 30; 10% синего, 50% желтого, 40% красного

Комбинация 3: Стоимость = 50; 25% синего, 25% желтого, 50% красного;

Решение: = (комбинация 1, комбинация 2, комбинация 3) общая стоимость = 100, и она состоит из x% синего, y% желтого, z% красного;

сравните решение с требованиями, если оно закрыто, сохраните его, а если не отбросьте.

КОНЕЦ РЕДАКТИРОВАНИЯ

Итак, мой вопрос. Я знаю, что генетический алгоритм подойдет. Но сработает ли реализация ACO? Например, синий, желтый и красный будут означать «местоположения», тогда их подтипы будут представлять разные «дороги».

Просто интересно, что может быть более эффективным решением или, возможно, каким-то совершенно другим алгоритмом. Я новичок в этом материале и только начал читать об этом чуть больше недели назад.

РЕДАКТИРОВАТЬ: Первое редактирование

Я хочу указать, что хочу иметь 5 хороших уникальных решений (5 из них произвольное число, могло быть 3, могло быть 20).

6
задан Odnxe 9 August 2011 в 18:28
поделиться