Integer Programming

Integer Programming


Model 1(Linearization of nonlinear integer programming problem)

When there is a product x1,,xk of k 0-1 variables xj, we call the problem is nonlinear problem. So we deal with the problem with following methods:

  1. Introduce 0-1 variable y to replace product and add two constraint conditions:

    j=1kxjyk1j=1kxj+ky0xj=0,1,j=1,,ky=0,1

  2. Introduce non-negative variables y to replace the product term x1x2xk,and we add (k+1) limit constraint conditions:

    j=1kxjyk1,yxj,j=1,,ky0,xj=0,1,j=1,,k

Model2 (Linearization of nonlinear integer programming problem)

problem describe

max f(x1)={10x1100,x1>00 ,x1=0

we get

max Z=10x1100y1x1My1x10,y1=0,1


The Cutting Plane Method of Pure Integer Programming

The Geometric Characteristics of Cutting Plane Method

Mark the integer programming as AIP, it's feasible region is marked as KAIP. If we get rid of the constraint condition that variables have to be integers, then we get a linear problem (LP), it's feasible region is KLP.

The cutting plane method essentially use the same method of solving linear programming to solve integer programming. It's basic idea is:

When we solve the problem (LP), if the best solve X is an integer result, then X is of course the best result of AIP; if not, we try to add a linear constraint condition (call it cutting plane) to split a set out that does not include integer results from (LP)'s feasible region KLP, then we try to get the best result X of new linear programming. If X is still not the optimal solution of (AIP), then repeat the above process.

The Comory Cut

The key point of the cutting plane method is to find an appropriate cut constraint condition. Let's discuss it.

We import some signs:

x represents the largest integer that does not exceed x, x represents the smallest integer that does not less than x. x=xx

Say B is a base of (LP), X is a feasible solution of (AIP), as KAIPKLP, so X is also a feasible solution of (LP), then X satisfy the equation set:

xBj+jIDyijxj=b¯i;i=1,2,,m

As X0,yijyij, so

xBj+jIDyijxjb¯i;i=1,2,,m

As left side is always an integer, so

xBj+jIDyijxjb¯i;i=1,2,,m

So

(5-20)jID(yijyij)xjb¯ib¯i,i=1,2,,m

This is the necessary condition for every feasible solution in (AIP), we call it the Comory cut.

Assume B is the optimal base of (LP), X* is the optimal solution about base B of (LP) and X* is not an integer solution. Now then, xj=0(jID),xBi=b¯i(i=1,,m), and at least one of b¯k is not an integer.

Now, we choose i=k for inequation(5-20), it's left side equal to 0, and the right side is not. In another word, it definitely does not satisfy the Comory cut, so we need to split the X* out. Then we import a slack variable xn+1 and get a new constraint condition:

jIDykixj+xn+1=b¯k

The Comory Cutting Plane Method

Assume the feasible region KLP of (LP) that corresponds to (AIP) is not null and bounded, we give the following calculation steps:

  • Solve (LP) with simplex method, get basic optimal solution X*, optimal base B and optimal table T(B)
  • If X* is not an integer solution, let b¯k=max{b¯i|1im}, add the new constraint condition jIDykixj+xn+1=b¯k to (LP) to get a new (LP). Then solve this new (LP).
  • If we get the best integer solution, done. If not, repeat the above process.
  • Tip: When we find a slack variable x become basic variable again after the spinning the spindle, delete the row and the column corresponding to the x may be a better option.
posted @   kaleidopink  阅读(346)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示