> Без принятия еды HP у NPC будет падать на 5% за тик, а без воды - 10% за тик.
С таким условием он будет бессмертным. Если только не считать с округлением в меньшую сторону.
По самой задаче я бы копал немного в сторону психологии, а не математики. То есть имулировал человека, а не идеальноно робота.
1. Человек не хочет, чтобы его здоровье опускалось ниже 50% (цифры для примера, меняй на свой вкус).
2. Значит он должен выйти с работы заранее (насколько заранее, думаю, понятно, как посчитать).
3. Если инвентарь заполнится добычей, он сразу идёт её продавать.
4. Еды он купит столько, чтобы ему хватило на 2 дороги и минимум на столько дней работы, за сколько он заработает на эту самую еду (2 * Рас_на_дор + Х_дней_работы * расх_на_день_работы < цена_еды_на_Х_дней_работы+дни_дороги).
5. Если еды из п4 получается меньше 50% рюкзака, то он докупает его до 50%. (цифру нужно уточнить в зависимости от других параметров)
Заранее посчитать идеальные цифры весьма трудно (это не будет одним уравнением). Проще даже написать код и перебрать все варианты, выбирая оптимум.