sovetchitsa
Советчица
Вход Регистрация
Спросить Советую Промо публикация Поиск товара
Настройки
Язык меню: ru ua Шрифт: a a a
Служба поддержки
Вход Регистрация
Правила | Ограничения | Cookies
©2008—2025 Советчица Kidstaff
Советчица - Одежда, обувь, аксессуары - Аксессуары
anonim_124
Я_поехала• 15 октября 2018

Вы думали, что умеете укладывать рюкзак?


2.1. Задача об укладке рюкзака
Эта задача имеет следующую неформальную простую постановку [4,5]. Имеется рюкзак объемом C и n различных предметов. Каждый предмет i имеет известный объем W_i и стоимость P_i(i=1,\dots,n). В рюкзак можно положить целое число различных предметов. Нужно упаковать рюкзак так, чтобы полная стоимость уложенных предметов была максимальной, а их общий объем не превышал заданный объем C. Форма предметов здесь не учиты.

Формальная постановка задачи: для данного множества весов W_i, стоимостей P_i и объема C надо найти двоичный вектор

X=(x_1,\dots,x_n)\mbox{, где}\ x_i=\begin{cases}1,\mbox{если предмет помещается в рюкзак,}\\0,\mbox{в противном случаи.}\end{cases}
и при этом должно выполняться условие:

V=\sum_{i=1}^n W_i\le C\mbox{ и }\sum_{i=1}^n P_i=\max
Так как решение задачи можно представить двоичным вектором X= (x_1,\dots, x_n), то очевидно при его поиске можно применить простой ГА со стандартными операторами скрещивания и мутации. Но при этом на каждом шаге итерации надо следить за тем, чтобы новые решения, полученные в результате скрещивания или мутации, удовлетворяли требуемому ограничению V\le C. В случае невыполнения ограничения "неправильное" потенциальное решение должно быть уничтожено, что ведет к сокращению популяции.

В качестве фитнесс-функции в простейшем случае можно взять

P(X)=\sum_{i=1}^n x_i\cdot P_i,
но в этом случае, как указано выше, есть проблемы с неправильными решениями.
В первом случае в фитнесс-функцию вводится дополнительная штрафная функция, которая для неправильных решений дает большие отрицательные значения ЦФ. При этом задача с ограничениями трансформируется в задачу без ограничений путем назначения штрафа для некорректных решений. Фитнесс-функция для каждой особи может быть определена следующим образом
f(X)=\sum_{i=1}^n x_i\cdot P_i-Pen(X)
Разработано множество методов назначения штрафных значений, из которых ниже рассмотрено только три вида, когда рост значения штрафной функции относительно степени нарушения ограничения имеет логарифмический, линейный и квадратичный характер:

Pen(X)=\log_2(1+\rho\cdot(\sum_{i=1}^n x_i\cdot W_i-C)),
Pen(X)=\rho\cdot(\sum_{i=1}^n x_i\cdot W_i-C),
Pen(X)=(\rho\cdot(\sum_{i=1}^n x_i\cdot W_i-C))^2.
Здесь для всех трех случаев .

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

В этом случае в качестве фитнесс-функции используется

f(X´)=\sum_{i=1}^n x_i´P_i,
где вектор X´– восстановленная версия исходного вектора X. Здесь следует отметить, по крайней мере, два аспекта. Во-первых, можно использовать различные алгоритмы восстановления. Во-вторых, восстановленные особи могут замещать только некоторую часть исходных особей в популяции. Процент замещаемых особей может варьироваться от 0% до 100% и его значение является важнейшим параметром метода восстановления. В некоторых работах отмечается, что наилучшие результаты получаются при 5%, во всяком случае, лучше, чем в двух крайних случаях – 0% (без замещения) и 100% (любая восстановленная особь заменяет исходную). Ниже приведен простой алгоритм восстановления.


При этом используются два основных способа выбора объекта:

случайный выбор объекта из рюкзака;
"жадное восстановление", при котором вначале все предметы сортируются в порядке убывания их стоимости P_i и на каждом шаге для удаления выбирается предмет минимальной стоимости (из имеющихся в рюкзаке).
Третий подход к решению задач с ограничениями использует специальное отображение (декодирование) особей, которое гарантирует генерацию допустимого решения (с учетом ограничений), или используют проблемно-ориентированные генетические операторы, сохраняющие корректность решения.

Рассмотрим один из возможных вариантов алгоритма декодирования, который основан на кодировании решения вектором целых чисел, так называемом "упорядоченном представлении" (ordinal representation), подробно описанном в разделе 3.3.2. Здесь каждая хромосома кодируется вектором e целых чисел, где i-я компонента вектора – есть целое число в диапазоне от 1 до n-i+1. "Упорядоченное представление" использует для ссылок (базовый) список предметов L. Вектор e фактически содержит указатели на базовый список L. Декодирование вектора осуществляется путем выбора соответствующего предмета из текущего списка и удаления его из базового списка. Например, при базовом списке предметов L=(1,2,3,4,5,6) текущий вектор e=(4,3,4,1,1,1) декодируется в следующую последовательность предметов: 4, 3, 6, 1,2, 5. Первым в рюкзак включается четвертый элемент списка L- 4, который устраняется из L. Далее в рюкзак включается третий элемент из текущего списка L. Затем включается 6 - четвертый элемент текущего L и т.д. Подробнее описание этого представления и выполнение кроссинговера на нем описано в разделе 2.3.2. В данном методе хромосома может интерпретироваться как стратегия (порядок) включения предметов в решение. Отметим, что основным достоинством данного кодирования хромосомы является то, что на нем работает одноточечный кроссинговер. То есть для двух допустимых решений –родителей кроссинговер порождает также допустимое решение–потомок. Оператор мутации при данном представлении выполняется путем замены i-го гена (целочисленной компоненты вектора) на случайное целое число из диапазона [1,\dots,n-i+1].
29 0
Все фото темыКомментарии автораМои ответы
anonim_28
Пенять на зеркало• 15 октября 2018
1

Это кто-то прочитал?
anonim_28
Пенять на зеркало• 15 октября 2018
2
Это кто-то написал
anonim_42
Зоркая Зорро• 15 октября 2018
3

Спасибо за совет!!! Теперь только так!!!
noavatar
Lenochek_2812• 15 октября 2018
4
Ответ дляПенять на зеркало

Это кто-то прочитал?
Это пять
noavatar
Lenochek_2812• 15 октября 2018
5
Ответ дляПенять на зеркало
Это кто-то написал
noavatar
Анна Стогина магазин Светлячок• 15 октября 2018
6
Я честно пыталась это прочитать. Когда дело дошло до хромосом, во мне что-то сломалось
anonim_124
автор Я_поехала • 15 октября 2018
7
Ответ дляАнна Стогина магазин Светлячок
Я честно пыталась это прочитать. Когда дело дошло до хромосом, во мне что-то сломалось
это генетические алгоритмы)
noavatar
Анна Стогина магазин Светлячок• 15 октября 2018
8
Ответ дляЯ_поехала
это генетические алгоритмы)
А Вы действительно понимаете всё что написано в тексте?
anonim_124
автор Я_поехала • 15 октября 2018
9
Ответ дляАнна Стогина магазин Светлячок
А Вы действительно понимаете всё что написано в тексте?
В целом да, но не скажу, что это легко и просто) Изучаю... Но у меня за плечами математика и кибернетика)
anonim_124
автор Я_поехала • 15 октября 2018
10
Мой ник - прямо в точку Пора закругляться
noavatar
AnnaSmith• 15 октября 2018
11
Я таки это брошу в закладки )))
anonim_45
Смячиком• 15 октября 2018
12
Ответ дляПенять на зеркало
Это кто-то написал
Я дальше второго обзаца даже не дочитала
anonim_9
все по ГОСТу!• 15 октября 2018
13
что за дурь такая забористая?
anonim_124
автор Я_поехала • 15 октября 2018
14
Ответ длявсе по ГОСТу!
что за дурь такая забористая?
означает, что все можно описать математически)
noavatar
Анна Стогина магазин Светлячок• 15 октября 2018
15
Ответ дляЯ_поехала
В целом да, но не скажу, что это легко и просто) Изучаю... Но у меня за плечами математика и кибернетика)
Очень круто!
anonim_9
все по ГОСТу!• 15 октября 2018
16
Ответ дляЯ_поехала
означает, что все можно описать математически)
конечно! мы же живем в Матрице!
anonim_124
автор Я_поехала • 15 октября 2018
17
Ответ длявсе по ГОСТу!
конечно! мы же живем в Матрице!
Нет) Но описать можно все. Другое дело, что это порой комично выглядит. Хотя вот многие вещи являются основой программирования
noavatar
AnnaSmith• 15 октября 2018
18
Ответ дляЯ_поехала
означает, что все можно описать математически)
За это я и люблю математику. Правда, пока у меня нет таких знаний как вас. Но будут ))
anonim_146
Безберлоги.ру• 15 октября 2018
19
Ответ дляПенять на зеркало

Это кто-то прочитал?
anonim_146
Безберлоги.ру• 15 октября 2018
20
Ответ дляСмячиком
Я дальше второго обзаца даже не дочитала
Я первые три слова :)))
anonim_25
забиякина• 15 октября 2018
21
После прочитанного(конечно не все...) чувствую себя ’дебилом’
Это же надо было такое... Слчинить
Ну а вообще конечно
anonim_124
автор Я_поехала • 15 октября 2018
22
Ответ дляAnnaSmith
За это я и люблю математику. Правда, пока у меня нет таких знаний как вас. Но будут ))
Процесс познания бесконечен) Удачи Вам!
anonim_129
Мальчун-задирун• 15 октября 2018
23
интересно, кто-то это все просчитывал?
anonim_207
Дама_с_коготками• 15 октября 2018
24
А почему слова ,,особи,, , ,,популяция,, применяются к предметам в рюкзаке?
anonim_124
автор Я_поехала • 16 октября 2018
25
Ответ дляДама_с_коготками
А почему слова ,,особи,, , ,,популяция,, применяются к предметам в рюкзаке?
потому что это метод ГА
anonim_207
Дама_с_коготками• 16 октября 2018
26
Почитала о методе га. Там нигде не написано о особях, популяции, хромосомах, мутации и генах для неживых предметов. Только чистые уравнения. Хотя я ничего не смыслю с таком виде математики, поэтому могу допустить, что это какая то терминология в высшей математике.
anonim_124
автор Я_поехала • 16 октября 2018
27
Ответ дляДама_с_коготками
Почитала о методе га. Там нигде не написано о особях, популяции, хромосомах, мутации и генах для неживых предметов. Только чистые уравнения. Хотя я ничего не смыслю с таком виде математики, поэтому могу допустить, что это какая то терминология в высшей математике.
это основная терминология. Мутации, и скрещивание и т.д. сложная штуковина. Мужским мозгом наверное легче воспринимается.
anonim_124
автор Я_поехала • 16 октября 2018
28
Ответ дляДама_с_коготками
Почитала о методе га. Там нигде не написано о особях, популяции, хромосомах, мутации и генах для неживых предметов. Только чистые уравнения. Хотя я ничего не смыслю с таком виде математики, поэтому могу допустить, что это какая то терминология в высшей математике.
в высшей математике этого нет, это другая область знания, хотя инструментарием является математика, куда же без нее)
anonim_207
Дама_с_коготками• 16 октября 2018
29
Ответ дляЯ_поехала
в высшей математике этого нет, это другая область знания, хотя инструментарием является математика, куда же без нее)
Ну ладно, с хромосомами и мутациями в тексте я уже со скрипом разобралась, даже популяцию как-то вписала в логическую цепочку. А вот с ,,особями,, не могу смириться. Именно из-за них и появились все эти слова не являющимися математическими терминами.
Мнения, изложенные в теме, передают взгляды авторов и не отражают позицию Kidstaff
Тема закрыта

Похожие темы:

Ще з цiкавого


Популярные вопросы!

Сегодня Вчера 7 дней 30 дней

ещё

Сейчас читают!

Назад Комментарии к ответу

О нас | Служба Поддержки | Помощь

Правила | Ограничения | Cookies ©2008—2025 Советчица Kidstaff