Здравствуйте! Помогите пожалуйста в составлении модели для вот такой задачи:
Распределенная информационная система включает n баз данных (БД). Стоимость обращения к БД равна

. Одна и та же информация может содержаться в нескольких БД. За одно обращение из БД извлекается вся необходимая информация.
Требуется найти оптимальный вариант выполнения заявки на m единиц информации для критерия "Средняя стоимость задействованной БД".
Картинку таблички с исходными данными можно посмотреть
здесь
Как пытался решать Я:
Введем булеву переменную

– факт обращения к БД. Если обращение к БД было, то переменная становится равной 1, иначе 0. Таким образом:

– факт наличия обращения к БД1

– факт наличия обращения к БД2

– факт наличия обращения к БД3

– факт наличия обращения к БД4

– факт наличия обращения к БД5

– факт наличия обращения к БД6

– факт наличия обращения к БД8

– факт наличия обращения к БД9

– факт наличия обращения к БД10
Средняя стоимость задействованных БД – сумма всех затрат, деленная на количество обращений ко всем БД. Таким образом, критерий можно найти так:
А ограничения будут такими:
Поскольку критерий нелинейный и, соответственно, методами линейного программирования его решить нельзя, обозначим:
Введем еще одно обозначение:
Получим:
Всё! Математическая модель составлена. Теперь я пытаюсь решить эту систему пакетом LINDO. Вот код программы:
Код:
min 3y1 + 10y2 + 5y3 + 17y4 + 15y5 + 7y6 + 4y8 + 8y9 + 9y10
st
y2 + y5 -p =0
y1 + y4 + y5 -p =0
y2 + y3 + y9 -p =0
y2 + y6 -p =0
y4 + y5 -p =0
y1 + y3 + y5 + y8 -p =0
y1 -p =0
y8 + y9 -p =0
y4 + y10 -p =0
y1 + y2 + y3 + y4 + y5 + y6 + y8 + y9 + y10 = 1
end
LINDO выдаёт сообщение об ошибке №54 - решения нет, нехватка ресурса (переменная

отрицательная).
Я, конечно, понимаю, что отсутствие решения - тоже решение, но всё-таки может быть всё дело в модели, которую Я составил. Может быть так нельзя было решать эту задачу.... Пожалуйста подскажите