L|NGO快速入门 L|NGo是用来求解线性和非线性优化问题 的简易工具包含了lndo的全部功能。 LNGO内置了一种建立最优化模型的语言, 可以简便地表达大规模问题,利用L|NGo高 效的求解器可快速求解并分析结果
LINGO快速入门 LINGO是用来求解线性和非线性优化问题 的简易工具,包含了lindo的全部功能。 LINGO内置了一种建立最优化模型的语言, 可以简便地表达大规模问题,利用LINGO高 效的求解器可快速求解并分析结果
运行ingo 当你在 windows下开始运行LNGo系统时,会 得到类似下面的一个窗口: LIRGO LIHGO odel- LIGo1 回区 Fi1 e Edit LIN置 indow Help 外层是主框架 eH剧。回國四窗口,包含了 2 LINGO夏odel- LINGO1 所有菜单命令 和工具条,其 它所有的窗口 将被包含在主 Ready RUM 窗口之下。 在主窗口内的标题为 LINGO Mode-LNGO1的窗口 是L|NGo的默认模型窗口,建立的模型都都要在该窗 口内编码实现
运行lingo 当你在windows下开始运行LINGO系统时,会 得到类似下面的一个窗口: 在主窗口内的标题为LINGO Model – LINGO1的窗口 是LINGO的默认模型窗口,建立的模型都都要在该窗 口内编码实现。 外层是主框架 窗口,包含了 所有菜单命令 和工具条,其 它所有的窗口 将被包含在主 窗口之下
下面是输入一个简单程序后的情况. LIHGO LINGo odel- LINGo1 包回囟 File Edit LINGO Window Help ∑ LINGO夏ode1- LIRGO01 回区 Model: maX=72*x+64y; X+y<50 12x+8y<480; 3y<100 en n6,Co148:11am
下面是输入一个简单程序后的情况
例1奶制品的生产与销售 回顾 奶制品加工厂用牛奶生产A,B两种奶制品 1桶牛奶可以在甲类设备上用12小时加工成3公斤的A, 或者在乙类设备上用8小时加工成4公斤的B 根据市场需求生产的A,B全部能售出,且每公斤A获利 24元每公斤B获利16元 现在加工厂每天能得到50桶牛奶的供应,每天正式工人 总的劳动时间为480小时并且甲类生产设备每天至多 能加工100公斤的A,乙类设备的生产能力没有限制. 试为该加工厂制订一个生产计划,使每天的获利最大
例1 奶制品的生产与销售 一奶制品加工厂用牛奶生产A,B两种奶制品. 1桶牛奶可以在甲类设备上用12小时加工成3公斤的A, 或者在乙类设备上用8小时加工成4公斤的B. 根据市场需求,生产的A,B全部能售出,且每公斤A获利 24元,每公斤B获利16元. 现在加工厂每天能得到50桶牛奶的供应,每天正式工人 总的劳动时间为480小时,并且甲类生产设备每天至多 能加工100公斤的A,乙类设备的生产能力没有限制. 试为该加工厂制订一个生产计划,使每天的获利最大. 回顾
解:设每天用于生产A,B两种产品的牛奶分别为x,y桶, 加工厂可获利Z元于是模型为 max z=72x+ 64y x+y≤50, Lindo程序: max 72X+64y 12x+8y≤480, st S。t。 x+y<50 3x≤100. 12X+8y<480 9 3X<100 x,y≥0 end indo程序与线性规划数学模型的形式几乎相同
解: 设每天用于生产A,B两种产品的牛奶分别为x, y桶, 加工厂可获利Z元.于是模型为 max Z = 72x + 64 y + + , 0. 3 100, 12 8 480, 50, . . x y x x y x y s t Lindo程序: max 72x+64y st x+y<50 12x+8y<480 3x<100 end lindo程序与线性规划数学模型的形式几乎相同
max Z=2x+64 Lindo程序: x+y≤50, max 72X+64y st 12x+8y≤480 S。t x+y<50 3x≤100 12X+8y480 3x<100 x,y≥0. end Lingo程序 Model maX=72*X+64y; 对于简单线性规划, x+y<50; indo比ingo方便些 12xX+8y<480 3*y<100 end 然后点击工具条上的按钮即可
max Z = 72x + 64 y + + , 0. 3 100, 12 8 480, 50, . . x y x x y x y s t Lindo程序: max 72x+64y st x+y<50 12x+8y<480 3x<100 end Lingo程序: Model: max=72*x+64*y; x+y<50; 12*x+8*y<480; 3*x<100; end 对于简单线性规划, lindo比lingo方便些. 然后点击工具条上的按钮 即可
例2使用LNGo软件计算6个发点8个收点 的最小费用运输问题。 产销单位运价如下表。 设的 销地 ,B, B,B 量 产地价 A1 7425960 9 3858255 AAAAA 645 219743351 767392|7143 25 395726541 522814352 销量 3537223241324338
例2 使用LINGO软件计算6个发点8个收点 的最小费用运输问题。 产销单位运价如下表。 单 销地 位 运 产地 价 B1 B2 B3 B4 B5 B6 B7 B8 产 量 A1 6 2 6 7 4 2 5 9 60 A2 4 9 5 3 8 5 8 2 55 A3 5 2 1 9 7 4 3 3 51 A4 7 6 7 3 9 2 7 1 43 A5 2 3 9 5 7 2 6 5 41 A6 5 5 2 2 8 1 4 3 52 销量 35 37 22 32 41 32 43 38
解:设从产地A到销地B的运输量为x;记从产地4到销地 B的单位运价为c产地4的产量为y销地B的需求量为 d则此问题的模型为 mZ=∑∑cx 1.2…8 st ∑x≤y,1=1.2…6 ≥0 这个模型具有推广性 这里决策变量为xf而cmy已知
解:设从产地Ai到销地Bj的运输量为xij,记从产地Ai到销地 Bj的单位运价为cij,产地Ai的产量为yi , 销地Bj的需求量为 dj ,则此问题的模型为 = = = = = = = = 0 , 1,2, ,6 , 1,2, ,8 . . min 8 1 6 1 6 1 8 1 i j i j i j j i i j i j i j i j x x y i x d j st Z c x 这里决策变量为xij,而cij, yi , dj已知. 这 个 模 型 具 有 推 广 性
使用LNGO软件,编制程序如下: model 6发点8收点运输问题; sets warehouseswh1.wh6/: capacity; vendors/v1.v8/: demand 定义集 links(warehouses, vendors): cost, volume endsets min=@sum (links: cost*volume) 目标函数 @for(vendors (]) @sum(warehouses() 需求约束 volume(,))=demand(J)) @for(warehouses() @sum(vendors(J) 产量约束 volume (l, )<capacity
使用LINGO软件,编制程序如下: model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets min=@sum(links: cost*volume); @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); @for(warehouses(I): @sum(vendors(J): volume(I,J))<=capacity(I)); 定义集 目标函数 需求约束 产量约束
data capacity=605551434152 demand=3537223241324338; coSt62674295 49538582 数据段 52197433 76739271 23957265 这里cost就是二维数表 55228143: enddata end 从上面可知这个 lingo程序同样具有推广性
data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end 数 据 段 这里cost就是二维数表 从上面可知,这个lingo程序同样具有推广性