Как решить проблему машинного обучения? - PullRequest
1 голос
/ 11 августа 2010

Существует контейнер, например, скажем, который имеет объем "V".Контейнер должен быть заполнен различными типами ящиков, где каждый тип имеет уникальный размер (объем), например, скажем,

Ящик типа A - имеет объем K Ящик типа B - имеет объемL

Теперь проблема заключается в том, что существует требование выяснить, какое максимальное количество ящиков обоих типов может быть помещено в контейнер (комбинация обоих ящиков)

.скажем, что «W» и «R» являются количествами, тогда мы получим (K * W) + (L * R) = V

И как коробки (коробки) должны складываться в контейнере.

Например, первый ряд (под строкой, который я имею в виду, когда ящики уложены по оси x по координатам) ящиков в контейнере должен содержать 4 стека (начиная с пола контейнера) «Box Type A»и две верхние стопки (около верхнего потолка контейнера) с надписью «Box Type B» (Под стеками я подразумеваю, когда коробки укладываются друг на друга [с координатами z]). После этого укладывается новый рядпосле того, как предыдущийЗаполняйте до тех пор, пока весь контейнер не будет заполнен.

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

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

Проблема в том, что я не коснулся области машинного обучения или решения такого рода проблем.Я был бы признателен, если бы мне дали совет о том, какой алгоритм (ы) использовать, с чего начать обучение решению этой проблемы и т. Д., Как лучше всего к этому подойти, какие полезные библиотеки машинного обучения использовать и т. Д.

Ответы [ 4 ]

2 голосов
/ 11 августа 2010

Эта проблема представляет собой вариант линейной оптимизации, называемый целочисленной линейной оптимизацией ссылка в Википедии . Эта проблема, как известно, является NP-сложной в общем, поэтому большинство решений там итерационные См. Ссылки в статье для дальнейшего обсуждения

РЕДАКТИРОВАТЬ: Я бы посоветовал взглянуть на LPSOLVE , который уже предлагает библиотеку решателя lgpl

0 голосов
/ 11 августа 2010

Если вы действительно имеете в виду машинное обучение, а не предварительное программирование алгоритма, то я думаю, что это действительно сложно.Простые методы проб и ошибок будут работать очень плохо, когда количество блоков станет большим.

Интересно, стоит ли смотреть на подходы, используемые при программировании компьютеров для игры в Го.Был достигнут большой прогресс в применении методов Монте-Карло, особенно в конечной игре, которая является аналогом комбинаторной проблемы с вашей проблемой упаковки.См. Эту ссылку.

0 голосов
/ 11 августа 2010

Решать это исключительно с помощью машинного обучения - плохая идея.Причина в том, что это детерминированная проблема, и другие формы ИИ лучше подходят для этого.Но если ваш единственный вариант - машинное обучение, я бы изучал усиленное обучение, используя градиент наименьших квадратов для оптимизации с помощью.Это один из самых простых способов понять машинное обучение, который применим к вашей проблеме, поскольку он является детерминированным.Если это вообще возможно, используйте другие алгоритмы, чтобы дополнить машинное обучение.

0 голосов
/ 11 августа 2010

Возможно, вы захотите взглянуть на ответ на этот вопрос:

Проблема с укладкой ящиков

...