Начну с того, что, в общем-то, верной дорогой идёте. Возможно
Теперь конкретнее.
Вы так и не написали модель исходной задачи. Начните с постановки: целевая функция-то есть, но вы решаете задачу на минимум или на максимум? И где ограничения? В вашей постановке решение либо ничего не покупать, либо покупать всё, в зависимости от того, хотите вы минимума либо максимума целевой функции.
Для
б и
г — вот так, навскидку, я б разбил задачу на две, а потом сравнил бы полученные решения и выбрал из двух лучшее.
Для
д, опять же навскидку, можно при решении симплекс-методом отслеживать моменты, кода исключаем соответствующий
из решения и пересчитывать коэффициент. Крутится в голове что-то типа решить задачу, зафиксировать x в 1, добавить условие «целевая функция меньше (больше) найденного значения», в качестве целевой взять цену и максимизировать. Не уверен, что получится задача линейного программирования. Подумаю ещё.