LINGO求解规划问题代码

文章目录

  • 线性规划
    • 标量线性规划
    • 矩阵线性规划
  • 非线性规划
    • 无特殊限制
    • 整数规划
  • 01规划

写在开头:

  1. LINGO默认所有变量是非负的。
  2. LINGO中没有严格的<><代表<=>代表>=
  3. LINGO不区分变量的大小写。
  4. LINGO的注释用!开头,;结尾。

线性规划

标量线性规划

求解下列问题:
LINGO求解规划问题代码_第1张图片
代码:

model:
	min=2*x1+3*x2;

	x1+x2>350;
	x1>100;
	2*x1+x2<600;
end

矩阵线性规划

LINGO求解规划问题代码_第2张图片
代码:

model: 
	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=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

非线性规划

无特殊限制

LINGO求解规划问题代码_第3张图片

model:
    min=(x1)^2+(x2)^2+8;! 目标函数;
    x1^2-x2>=0;
    -x1-x2^2+2=0;
    x1>=0;
    x2>=0;! 约束条件;
end

整数规划

LINGO求解规划问题代码_第4张图片

model: 
	sets: 
		row/1..4/:b; 
		col/1..5/:c1,c2,x;
		link(row,col):a; 
	endsets 
	
	data: 
		c1=1,1,3,4,2; 
		c2=-8,-2,-3,-1,-2; 
		a=1 1 1 1 1   
		1 2 2 1 6   
		2 1 6 0 0   
		0 0 1 1 5; 
		b=400,800,200,200; 
	enddata 
	
	max=@sum(col:c1*x^2+c2*x); 
	@for(row(i):@sum(col(j):a(i,j)*x(j))

01规划

通常是一类特殊的线性规划,只是变量值只能为0或1。
LINGO求解规划问题代码_第5张图片

model:
	max=3*x1-2*x2+5*x3;
	
	x1+2*x2-x3<2;
	x1+4*x2+x3<4;
	x1+x2<3;
	4x2+x3<6
	@bin(x1);@bin(x2);@bin(x3);
end

P.s 不知道为啥复制过去就老是报语法错误,手打就没有这个问题QAQ。

你可能感兴趣的:(数学建模,lingo)