Я пытаюсь выяснить логику для рюкзака с четырьмя ограничениями. Я хочу сделать программу, в которую вы вводите калории, жир, углеводы и белок, которые вы хотите потреблять в еде, и он просматривает список возможных продуктов для ближайшего сочетания продуктов, которые отвечали бы входным критериям.Рюкзак с 4 ограничениями
Пример
У меня есть эти элементы
- 4oz говядины (231 калорий, 15 г жиров, углеводов, 0G 22г белка)
- 1/2 чашки овсяной (260 калорий, 2 г жира , 58 г углеводов, 10 г белка)
- 1/2 чашки черных бобов (120 калорий, 0,5 г жира, 23 г углеводов, 7 г белка)
- 1 банан (105 калорий, 0 г жира, 27 г углеводов, 1 г белка)
- 1/2 чашки творога (110 калорий, 5 г жира, углеводов 6g, 11g белка)
- 1/2 чашки цельной пшеницы паста (200 калорий, 1 г жира, 40г углеводов, белков 8g)
и моя цель состоит в том, чтобы потреблять 745 калорий, < = 20г жира, < = 80г углеводов,> = 40г белка
Я видел много реализаций задачи о рюкзаке, но я никогда не видел это с 4 ограничениями. Мой вопрос в том, что он умен. Можете ли вы привести меня к правильным алгоритмам для моей программы? Спасибо.
Я никогда не слышал о Solver, но сейчас я в нее влюблен. Я нашел [этот замечательный пример] (http://www.umsl.edu/~banisr/3320/docs/exammax.xls) о том, как решить проблему с рюкзаком, и было очень просто создать [эту реализацию excel именно то, что я хотел) (https://docs.google.com/file/d/0B76b2EOADTG7WGtjWFJVODlONUE/edit?usp=sharing). Хотя это был не самый прямой ответ, я думаю, что если бы я использовал Solver в качестве ориентира, было бы очень легко запрограммировать это на любом языке. Большое спасибо! –