Есть список продуктов
Каждый продукт имеет группу (завтрак, перекус, обед, ужин)
Каждый продукт имеет подгруппу или категория (супы, салаты, десерты, соусы, гарниры, основное блюдо, напиток, фрукт, овощ, сыр, добавки, орехи, йогурт, заправка, каша, масло, хлеб, бобовые, ягоды)
Для каждой группы есть условия возможных сочетаний подгрупп (кол-во условий около 20. То есть подгруппы могут создаваться на основе одного или нескольких из условий, а не на сумме всех 20-ти условий)
В итоге алгоритм должен подобрать для каждой группы сочетания продуктов. Например,
Для каждой группы есть условия возможных сочетаний подгрупп (кол-во условий около 20. То есть подгруппы могут создаваться на основе одного или нескольких из условий, а не на сумме всех 20-ти условий)
Даже на эту чушь есть ответ, и я его дал.
Берёте случайный набор продуктов, проверяете его на ваши туманные условия, подходит - хорошо, не подходит - пробуете дальше, до достижения успеха.
На языке ПРОЛОГ такие задачи решаются быстро. Необходимо составить набор предикатов, по которым будет найдено решение. Рекурсивно методом перебора, встроенным в язык, если я не ошибаюсь.