Решение по оптимизации PULP не определено - PullRequest
1 голос
/ 10 февраля 2020

Я пытался оптимизировать следующую проблему, используя python целлюлозу

import pulp
# Instantiate our problem class
model = pulp.LpProblem("Cost minimising problem", pulp.LpMinimize)

W = pulp.LpVariable('W', cat='Integer')
X = pulp.LpVariable('X', cat='Integer')
Y = pulp.LpVariable('Y', cat='Integer')
Z = pulp.LpVariable('Z', cat='Integer')

# Objective function
model += 1.33 * W + 1.76 * X + 1.46 * Y + 0.79 * Z,"Cost"

# Constraints
model += W + X + Y + Z == 1

 model += W >= 0.1
 model += W <= 0.75

 model += X >= 0.1
 model += X <= 0.85

 model += Y >= 0.1
 model += Y <= 0.65

 model += Z >= 0.1
 model += Z <= 0.40


# Solve our problem
model.solve()
pulp.LpStatus[model.status]

'Undefined'

Решение оказалось неопределенным. Я делаю ошибку в постановке проблемы или что-то упускаю?

1 Ответ

1 голос
/ 11 февраля 2020

Когда я реализую тот же код, я получаю результат 'Неисполнимый'.

Это имеет смысл, так как все ваши переменные W, X, Y, Z должны быть целыми числами, но затем вы ограничиваете их значением больше 0,1, и меньше, чем другое число, которое меньше 1.

Нет целых чисел в диапазоне от 0,1 до 0.XX, поэтому не существует допустимого решения.

...