如何创建依赖于二进制可行x的multidict中的字符串值的约束? (古罗比-Python)

时间:2018-07-18 09:05:17

标签: python gurobi

我正在尝试创建一个最大化线性模型,该模型中有两个包含通过二进制连接的“中型电视,报纸和东西”和“笑话(笑话)”(意在出售给媒体)的字典。 X [media,witze]变量,如果应将笑话卖给媒体,则该值为1;否则为0。

因此,在媒体字典中,每个键(媒体名称)都有一个值(或项目,我不确定如何称呼),该值告诉媒体位于哪个国家/地区。我正在尝试限制create不允许在一个国家/地区通过多种媒体出售一个笑话。但是我不确定如何检查每种媒体的字符串值,因为在创建变量时,首先要遍历键,而不是国家。而且,如果我尝试遍历值(国家/地区),它会告诉我它不可散列,所以我不能那样做。

我尝试创建另一个类似于[land(country),witz]的键Y,但是我仍然必须将它与“ medias”多维字典上的值(country)进行比较,我不知道这样做。

因此,如果您知道如何解决它或有什么想法可以帮助我,我将非常感谢。

所以,这是数据(字典)     #--编码:utf-8--     从gurobipy导入*

witze, kategorie, preis, qualitaet = multidict({
  "Was sitzt auf einem Baum und schreit 'Aha'? Ein Uhu mit Sprachfehler": ["Flachwitze", 17, 2],
  "Was wird beim Trocknen nass? Das Handtuch": ["Scherzfrangen", 5, 1],
  "Chuck NORris verwählt sich nicht. Wenn du abhebst, warst du am falschen Telefon.": ["Chuck NORris Witze", 30, 8],
  "Lehrerin: Tut mir leid Peter aber mehr als eine 5 Minus kann ich dir im Fach Französisch nicht geben. - Peter: Gracias": ["Gute Witze", 42, 10]                                              
})

medien, land, d_qualitaet, budget, bedarf = multidict({
  "Bild" : ["Deutschland", 2, 100, 1],
  "Zeit" : ["Deutschland", 5, 60, 1],
  "Rheinische Post" : ["Deutschland", 4, 30, 1],
  "Hirving Lozano" : ["Mexiko", 8, 200, 1],
  "Gazzetta dello Niederlagos" : ["Schweden", 5, 50, 1],
  "La Tori de Kross" : ["Schweden", 4, 50, 1],
  "tallag": ["SüdkORea", 3, 45, 1]                                                                                     
})

Laender = ["Deutschland","Mexiko","Schweden","SüdkORea"]
import humormodel

humormodel.solve(witze,kategorie,preis,qualitaet,medien,land,d_qualitaet,budget,bedarf,Laender)

和变量:

 model.modelSense = GRB.MAXIMIZE

  # Variablen-Dictionary fuer den Verkauf anlegen.
  xVerkauf = {}

  # Variablen in Gurobi erzeugen und hinzufuegen.
  for witz in witze:
      for medium in medien: 
          xVerkauf[witz, medium] = model.addVar(name = ('xVerkauf_' + witz + '_' + medium), vtype = GRB.BINARY, obj = preis[witz])

0 个答案:

没有答案