Lineare Programmierung mit scipy.optimieren.linprog

Habe ich einfach mal die einfache lineare Programmierung problem mit scipy.optimieren.linprog:

1*x[1] + 2x[2] -> max

1*x[1] + 0*x[2] <= 5
0*x[1] + 1*x[2] <= 5
1*x[1] + 0*x[2] >= 1
0*x[1] + 1*x[2] >= 1
1*x[1] + 1*x[2] <= 6

Bekam und das sehr merkwürdige Ergebnis, ich erwartet, dass x[1] 1 und x[2] 5, aber:

>>> print optimize.linprog([1, 2], A_ub=[[1, 1]], b_ub=[6], bounds=(1, 5), method='simplex')
  status: 0
   slack: array([ 4.,  4.,  4.,  0.,  0.])
 success: True
     fun: 3.0
       x: array([ 1.,  1.])
 message: 'Optimization terminated successfully.'
     nit: 2

Kann mir jemand erklären, warum ich dieses seltsame Ergebnis?

  • Nun, es ist nicht merkwürdig, mehr, sobald man erkennt, dass linprog tatsächlich minimiert 🙂
InformationsquelleAutor juise | 2015-06-15
Schreibe einen Kommentar