Задача "составить план на день" это чисто "задача о рюкзаке"
Чёт сегодня лежал смотрел в потолок лениво планируя день, внезапно понял очевидную мысль что это классическая задача о рюкзаке: раскидать свои дела по стоимости (важность, вермя, сложность) чтобы получился "достойный день". Такая fitness function для набора дел с функцией оценки. Дел-то у любого нормального человека дел всегда больше чем поместится в день!
Нельзя взять самые просто самые важные дела, потому что они не влезут по времени. Нельзя взять самые быстрые потому что день пройдёт в беготне. Получается, надо комбинировать и искать варианты, чем каждый день мы и занимаемся
У задачи о рюкзаке (про knapsack problem я уже писал кстати) не существует эффективного алгоритма для быстрого нахождения решения, она NP-полная. Так что если дел типа двадцать то это уже миллион комбинаций для проверки. Как-то сразу стало понятно почему иногда так сложно это делать, хотя мысль на поверхности конечно
В общем, предлагаю выпить кружку горячего чая за приближённые методы и good enough greedy solutions, а то бы наши устаканивая календаря каждый день отлетали по таймауту