Я ищу решение проблемы с рюкзаком, где есть несколько ограничений.Алгоритм оптимизации/рюкзака с несколькими ограничениями в JavaScript
Скажите, что наш рюкзак имеет максимальный вес 30 кг, и у нас есть набор из 100 предметов, каждый с весом и каждый с преимуществом. Эти объекты могут выглядеть так:
{ name: 'water bottle', weight: 2, benefit: 5 },
{ name: 'potatoes', weight: 10, benefit: 6 }
Поиск комбинации объектов с наибольшим преимуществом в пределах максимального веса достаточно прост. Вот плагин nodeJS, показывающий, как это можно сделать ... https://gist.github.com/danwoods/7496329
Где я боюсь, когда объекты имеют больше свойств, а рюкзак имеет больше ограничений.
Ограничения: Максимальный вес , Используйте точно объектов, Используйте максимум любого 'типа' объект, Используйте максимум любого объекта «цвет '
{ name: 'water bottle', weight: 2, benefit: 5, type: 'drink', colour: 'clear' },
{ name: 'potatoes', weight: 10, benefit: 6, type: 'food', colour: 'beige' }
Как можно найти оптимальное сочетание объектов с этими дополнительными правилами?
Может ли модифицированный рюкзак, связанный с ним, модифицироваться или нужен новый подход?
Это интересный вопрос, но он слишком широк: я предполагаю, что вы имеете в виду написать эффективный алгоритм для этого? Я имею в виду, вы могли бы просто использовать это в зависимости от того, насколько велико ваше пространство поиска и сколько времени у вас есть доступ. – errantlinguist
@errantlinguist Да, я надеюсь на вариант решения на рюкзаке, с которым я связан, в вопросе, где создается матрица. Это эффективный алгоритм, но я изо всех сил пытался добавить ограничения. – tmw
Вот ссылка на javascript-версию решения GLPK Mixed Integer: http://hgourvest.github.io/glpk.js/. Это позволит вам использовать LP (или MIP) для решения вашей проблемы. –