![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Решение задачи одномерной упаковки с помощью параллельного генетического алго-ритма |
И.В. Мухлаева Введение В работе представлен паралелльный генетический алгоритм (ПаГА) для решения задачи одномерной упаковки. В целом эта задача является задачей разбиения множества объектов на непересекающиеся подмножества: . В большинстве задач разбиения их решение связано с определенными налагаемыми ограничениями, в противном случае решение будет нелегальным. Вот почему элемент, как правило, не может быть объединен в одно подмножество со всеми возможными подмножествами остающихся элементов. Цель разбиения состоит в оптимизации функции стоимости, определенной на множестве всех легальных подмножеств. Задача одномерной упаковки является широко применяемой в качестве модели распределения ресурсов разного рода. В вычислительной технике это могут быть назначение заданий на процессоры, локация памяти, форматирование таблиц и т.д. Браун приводит дополнительно приложения задачи в индустрии и бизнесе. Как известно, задача одномерной упаковки является задачей комбинаторной оптимизации и относится к классу P-полных . Поэтому для ее решения разрабатываются различные аппроксимационные, эвристические алгоритмы, позволяющие получать приемлемые по качеству результаты за приемлемое время. Однако, известные приближенные алгоритмы одномерной упаковки дают решения достаточно низкого качества. Так, оценка алгоритма FF равна . Дальнейшие попытки получить приближенные алгоритмы с более высокими оценками не привели к существенным результатам . Не удалось превысить оценку алгоритма RFF: . Для повышения качества решения следует использовать методы комбинаторной оптимизации, обладающие механизмами выхода из локальных оптимумов и способные находить близкие к оптимальному решения. Перспективными в этом смысле являются алгоритмы, основанные на методе отжига и генетические алгоритмы (ГА). ГА позволяют получать близкие к оптимальному решения значительно быстрее, чем метод отжига . Это происходит за счет сочетания в них элементов случайного и направленного поиска. ГА работают одновременно с несколькими решениями и синтезируют новые субоптимальные решения на основе свойств достигнутых. ГА обладают механизмами избежания локальных оптимумом за счет элементов случайности. Разработаны несколько ГА одномерной упаковки . Разработка параллельных ГА является перспективной, поскольку распараллеливание процесса поиска позволяет сократить время решения . Известны несколько параллельных генетических алгоритмов , предназначенных для решения различных оптимизационных задач. В представленном алгоритме ПаГА за счет согласования позиций точек кроссинговера осуществляется кооперативный поиск в независимых субпопуляциях, что дополнительно снижает временные затраты. Также разработаны три вида направленной мутации, повышающей качество получаемых решений. Для усиления элементов направленности введены защищенные от деструкции фрагменты хромосом, поскольку по мере приближения решений к оптимуму возрастает деструктивность генетических операторов, основанных на принципе случайности. Дополнительно для сокращения времени решения предложена эвристика, сокращающая объем данных для ГА.
Для исследования предложенного алгоритма разработано ПО на языке С для IBM PC. Проведены статистические исследования, подтверждающие эффективность ПаГА. 1. Параллельный генетический алгоритм 1.1. Постановка задачи Рассмотрим задачу одномерной упаковки в следующей постановке. Дано: множество элементов E={e1, e2 , . , e }, имеющих размеры S(E)={s(e1), s(e2), . , s(e )}, и множество блоков B={b1, b2, . , bm}, имеющих размеры S(B)={s(b1), s(b2), . , s(bm)}. Цель: разместить элементы в имеющиеся блоки, заполняя каждый из блоков до максимально возможного уровня и минимизируя общее количество заполненных блоков. 1.2. Функция стоимости Для работы ГА необходимо определить функцию стоимости, в соответствии с которой будут оцениваться решения. Целью решения определена минимизация площади, занятой размещенными в блоках элементами. Соответственно, необходимо найти способ ее оценки. Будем считать, что в идеальном случае (верхняя оценка) площадь, занятая элементами, равна сумме их размеров: Площадь, занятая элементами при каждом конкретном размещении, определяется следующим образом: PS=SB Sr , где SB - сумма размеров блоков, занятых элементами, кроме последнего занятого блока, Sr - сумма размеров элементов в последнем блоке. Оценкой решения в таком случае будет коэффициент Целью решения задачи становится максимизация коэффициента C. 1.3. Кодирование Среди шести принципов создания эффективных решений (см. например, ) фигурирует принцип минимальной избыточности: каждый элемент области поиска (в данном случае области всех легальных подмножеств) должен быть представлен минимальным (идеально - одной) числом хромосом, чтобы сократить размер области поиска ГА. Областью поиска в случае задачи одномерной упаковки является множество всех легальных (т.е. не допускающих переполнение какого-либо блока) распределений элементов в блоки. В алгоритме использовано линейное кодирование, при котором хромосома представляет собой список элементов, где позиция элемента в списке означает очередь его на размещение в блоках. Элемент размещается в блок, если в блоке есть достаточное для этого место. 1.4. Генетические операции 1.4.1. Операторы кроссинговера В начале работы ГА создается начальная популяция, разделенная на три субпопуляции. Независимая эволюция в субпопуляциях позволяет сохранять разнообразие генетического материала (ГМ) и вести поиск в различных направлениях. Для кооперации этого поиска были разработаны операторы кроссинговера, применение которых согласовано при коммуникации субпопуляций. Каждый оператор кроссинговера передает потомкам максимально возможный фрагмент решения, получившего высокую оценку. Для этого схема действующего кроссинговера выбирается в зависимости от схемы кроссинговера, который применялся на более низком уровне (в субпопуляции). В первой субпопуляции используется упорядоченный оператор кроссинговера (Order crossover, OX), разработанный D. Davis в 1985г. Во второй субпопуляции используется модификация OX, при которой считывание генов производится справа налево. Для отличия эти операторы обозначены OXL и OXR соответственно.
В третей субпопуляции используется двухточечный оператор кроссинговера. При коммуникации 1 и 2 субпопуляции используется OXL. В результате формируются два потомка, которые записываются один в 1 субпопуляцию, второй - во вторую. При коммуникации 2 и 1 субпопуляций используется OXR. Потомки записываются один во 2 субпопуляцию, второй - в 1-ю. При коммуникации 1 и 3 субпопуляции используется OXL. Потомки записываются один в 1 субпопуляцию, второй - в 3-ю. При коммуникации 3 и 1 субпопуляций используется двухточечный кроссинговер. В результате формируются два потомка, которые записываются один в 3 субпопуляцию, второй - в 1-ю. При коммуникации 2 и 3 субпопуляции используется OXR. Потомки записываются один во 2 субпопуляцию, второй - в 3-ю. При коммуникации 3 и 2 субпопуляций используется двухточечный кроссинговер. Потомки записываются один в 3 субпопуляцию, второй - во 2-ю. 1.4.2. Операторы мутации В алгоритме использованы, кроме случайной мутации, специально разработанные проблемно-ориентированные направленная мутация. с поиском 1-1 (подстановка элемента списка в подходяшую по размеру незанятую позицию) и аправленная мутация. с поиском 2-1 (обмена позициями элементов, один из которых равен по величине сумме величин второго элемента и свободной позиции за ним). 1.4.3. Инверсия В алгоритме использован также классический оператор инверсии. 1.5. Параллельный поиск ПаГА работает следующим образом. 1о.Формируется начальная популяция, разделенная на три субпопуляции. 2о.В каждой субпопуляции происходит соответствующий кроссинговер. 3о. В каждой субпопуляции происходят случайная и направленные мутации и инверсия. 4о.По истечении 10 поколений происходит кроссинговер между субпопуляциями (соответствующий для каждой). 5о. Окончание работы при достижении C=1 или предела введенного пользователем числа поколений. Одним из мотивов разделения ГА является потенциальный рост быстродействия благодаря использованию процессора или многопроцессорной системы для обработки отдельной популяции. Однако, наиболее важным мотивом является то, что после некоторого числа поколений хромосомы в отдельной популяции становятся очень похожими. Разнообразие генетического материала будет потеряно, и рекомбинация в дальнейшем может быть неэффективной. Одним из способов преодоления этой проблемы и является независимая обработка отдельных популяций. Так как ГА включают в себя элементы случайного поиска, независимая эволюция отдельных популяций будет направлять процесс в различные области пространства решений. Если оптимизируемая в каждой субпопуляции функция одна и та же, каждая субпопуляция даст конкурентоспособное, но при этом значительно отличающееся по составу ГМ решение. Число взаимодействий между популяциями может быть критическим фактором в определениии эффективности параллельного ГА. При наличии большого числа взаимодействий преимущества использования субпопуляций оказываются потерянными, так как хорошие хромосомы из одной субпопуляции быстро попадают в другие субпопуляции, и эволюция недолго остается независимой. Результаты, полученные в исследованиях подтверждают это положение.
По пути всего дрейфа седовцы производили наблюдения над ускорением силы тяжести. Эти исследования, проводившиеся с помощью новейших приборов, значительно превышают по точности аналогичные наблюдения, проведенные Нансеном на „Фраме“. Вместе с данными, собранными станцией „Северный полюс“, исследования седовцев дают чрезвычайно ценный материал для решения задачи высшей геодезии — определения точной формы земного шара. Кроме того, они дают очень ценный материал для суждения о строении земной коры. Ценность научных исследований седовцев увеличивается тем, что дрейф „Седова“, а следовательно, и данные всех произведенных наблюдений с большой точностью нанесены на карту благодаря большому количеству астрономических определений, сделанных молодым ученым — гидрографом В. X. Буйницким. Наиболее ценными являются метеорологические и гидрологические работы экспедиции. Седовцы в течение всего дрейфа производили регулярные метеорологические наблюдения, взяли более 40 глубоководных гидрологических станций. Эти наблюдения особенно интересны потому, что „Седов“ шел параллельно „Фраму“ и севернее его, а в ряде пунктов пересекал линии дрейфа „Фрама“
1. Решение задач с помощью ортогонального проектирования
2. Решение задач с помощью современых компьютерных технологий
3. Решение задачи с помощью математической модели и средств MS Excel
4. Решение задачи с помощью программ Mathcad и Matlab
5. Решение задачи с помощью программ Mathcad и Matlab
9. Решение задач - методы спуска
10. Методы и приемы решения задач
11. Решение задачи линейного программирования
12. Решение задач на построение сечений многогранников
13. Теория вероятности решение задач по теории вероятности
14. Формулы для решения задач по экономике предприятия
15. Решение задач линейной оптимизации симплекс – методом
16. Решение задачи Дирихле для уравнения Лапласа методом сеток
17. Применение подобия к решению задач
18. Построения коллектива с акцентом на решение задач или на поддержание отношений в нем
19. Пример решения задачи по механике
21. Пути повышения эффективности обучения решению задач
25. Применение новейших экономико-математических методов для решения задач
26. Применение спектральной сейсморазведки для решения задач инженерной геологии
27. Решение геоэкологических проблем с помощью нестандартных геофизических методов
29. Расчет экономической эффективности применения ПЭВМ для решения задачи
30. Общая схема решения задачи на персональном компьютере
32. Решение задач по дисциплине "Страхование"
33. Решение задач по управленческому учету
34. Примеры решения задач по правоведению
35. Excel: решение задач с подбором параметров
36. Метод программирования и схем ветвей в процессах решения задач дискретной оптимизации
37. Программирование решения задач
41. Решение задач нелинейного программирования
42. Решение задач оформление экономической документации
43. Решение задачи оптимального управления
44. Экспертная система для решения задачи о коммивояжере
47. Использование моделирования в обучении решению задач в 5 классе
48. Решение задач по курсу статистики
49. Решение задачи линейного программирования симплексным методом
50. Методика обучения решению задач на построение сечений многогранников в 10-11 классах
51. Развитие логического мышления учащихся при решении задач на построение
52. Решение задач на уроках химии
53. Применение программного комплекса AnsysIcem к решению задач химической промышленности
57. Методика решения задач по теоретическим основам химической технологии
58. Применение методов экономической статистики при решении задач
59. Примеры решения задач по статистике
60. Решение задач по экономическому анализу
61. Экономическая статистика России: решение задач
62. Использование линейного программирования для решения задач оптимизации
63. Особенности решения задач в эконометрике
64. Решение задач по эконометрике
65. Решение задач симплекс-методом
66. Решение задачи о коммивояжере
67. Решения задачи планирования производства симплекс методом
68. Обучение решению математических задач с помощью графов
73. Графы. решение практических задач с использованием графов (С++)
74. Решение оптимизационной задачи линейного программирования
75. Метод Алексея Юрьевича Виноградова для решения краевых задач
76. Несколько способов решения одной геометрической задачи
77. Решение обратных задач теплопроводности для элементов конструкций простой геометрической формы
78. Задачи (с решениями) по сопромату
79. Задачи с решениями по ценным бумагам
80. Задачи по теории принятия решений
82. Решение транспортной задачи
83. К решению нелинейных вариационных задач
84. Методы решения некорректно поставленных задач
85. Решения смешанной задачи для уравнения гиперболического типа методом сеток
90. Нечеткая логика при решении криминологических задач
91. Алгоритм решения обратной задачи вихретокового контроля (ВТК)
93. Задачи по экономике с решениями
94. Задачи по экономике с решениями
95. Решение многокритериальной задачи линейного програмирования
96. Приемы решения научных задач в русловедении
97. Опыт применения сейсморазведки ОГТ для решения инженерно-геологических задач