LINUX.ORG.RU

Подбор из N сущностей необходимой комбинации?

 


0

1

Для практики и получения новых навыков хочется запилить пет проект по подбору рациона питания на день.

Пример: Есть норма БЖУ на день для конкретного человека: 300гр белка, 100гр жиров, 200гр углеводов.

Требуется: Подобрать различные варианты рациона с минимальными отклонениями от требуемых человеку БЖУ в день.

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

Считаем что база с информацией о кол-ве БЖУ в различных продуктах уже есть.



Последнее исправление: kafaf26474 (всего исправлений: 1)

так надо еще подбирать минералы…

Niokva
()
Ответ на: комментарий от slovazap

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

Niokva
()

Классическая задача линейного программирования, решается симплекс-методом.

E ★★★
()
Ответ на: комментарий от Niokva

Какую точно систему надо решить, не могу сказать т.к. в школе забивал на математику.

В первом приближении это обычная СЛАУ из 3 уравнений, и хотя она тут даёт точное решение на любых 3 продуктах различающихся пропорциями БЖУ, с практической точки зрения это скорее всего будет очень-очень странный рацион, поэтому придётся перейти к более разнообразным продуктам и дискретным порциям, а значит ЗОР. Но да, можно посчитать примерно рюкзаком, комбинаторикой и рандомом, а потом уточнить через СЛАУ.

А если параметров будет больше 3 (т.е. те же минералы, предпочтения пользователя, коэффициенты для того чтобы продукты не повторялись часто, коэффициенты совместимости и т.д.) то это уже какие-нибудь градиентные спуски.

slovazap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.