manbet体育手机客户端


Diet_VB.VB.


'版权所有2019,Gurobi O狗万app足彩ptimization,LLC'解决经典饮食模型,显示如何将约束添加到现有模型。进口系统导入Gurobi类Diet_VB共享子主()尝试“营养指南”,基于美国美国人的美国饮食指南,2005'http://www.health.gov/dietaryguidelines/dga2005/昏暗的类别作为string()= new字符串(){“卡路里”,“蛋白质”,“脂肪”,_“钠”暗淡的ncategories作为整数=类别。为Double()= new double(){1800,91,0,0}昏暗的mxcuritritionDouble()= new double(){2200,grb.infinity,65,1779}一套食物暗淡的食物作为字符串()= new string(){“汉堡包”,“鸡”,“热狗”,_“薯条”,“通心粉”,“披萨”,_“沙拉”,“牛奶”,“冰淇淋”} Dim nfoods作为整数=食物。为Double()= New Double(){2.49,2.89,1.5R,1.89,2.09,1.99,_ 2.49,0.89,1.59,0.89,1.59}'食品的营养价值'汉堡包'热狗'薯条'薯条'粉丝'披萨'披萨'沙拉'牛奶'冰淇淋暗淡营养价值是双(,)=New Double(,){{410,24,26,730},_ {420,22,10,1190},_ {560,20,32,1800},_ {380,4,19,270}},_ {320,12,10,930},_ {320,15,12,820},_ {320,31,12,1230},_ {100,8,2.5,125},_ {330,8,10,180}}'模型Dimen Env作为新的grbenv()暗模仿作为新grbmodel(env)model.modelname =“饮食”为营养信息创建决策变量,“我们通过界限为Grbvar限制了它()= ia integer = 0到ncategories  -  1营养(i)= model.addvar(minnutrition(i),maxnutrition(i),0,_ grb.continuous,类别(i))下一步'为食品购买Dim Buy的食物创建决策变量作为GRBVAR()= j的新grbvar(nfoods  -  1){}为in作为integer = 0到nfoods  -  1购买(j)= model.addvar(0,grb.Infinity,成本(j),grb.continured,_食物(j))接下来'目标是最小化成本模型.modelsense = grb.minimize'i为Integer = 0到ncategories  -  1 dim notGlblinexpr = 0 for j作为integer = 0到nfoods  -  1 ntot.adtterm(NtitrationValues(j,i),购买(j))下一个model.addconstr(ntot = nutrition(i),分类(i))下一步'解决模型.Optimize()Printsolution(Model,Buy,Nutrition)控制台.writeline(vblf&“添加约束:在最多6份乳制品”)model.addconstr(买(7)+购买(8)<= 6, "limit_dairy") ' Solve model.Optimize() PrintSolution(model, buy, nutrition) ' Dispose of model and env model.Dispose() env.Dispose() Catch e As GRBException Console.WriteLine("Error code: " & e.ErrorCode & ". " & e.Message) End Try End Sub Private Shared Sub PrintSolution(ByVal model As GRBModel, ByVal buy As GRBVar(), _ ByVal nutrition As GRBVar()) If model.Status = GRB.Status.OPTIMAL Then Console.WriteLine(vbLf & "Cost: " & model.ObjVal) Console.WriteLine(vbLf & "Buy:") For j As Integer = 0 To buy.Length - 1 If buy(j).X > 0.0001 Then Console.WriteLine(buy(j).VarName & " " & buy(j).X) End If Next Console.WriteLine(vbLf & "Nutrition:") For i As Integer = 0 To nutrition.Length - 1 Console.WriteLine(nutrition(i).VarName & " " & nutrition(i).X) Next Else Console.WriteLine("No solution") End If End Sub End Class