整数编程算法最小化或最大化符合平等,不等式和整数约束的函数。整数约束限制了优化问题中的一些或全部变量,仅占用整数值。这使得能够准确建模涉及离散数量的问题(例如股票的股票)或者是 - 或者没有决定。当只有一些变量有整数约束时,问题称为混合整数程序(MIP)。示例整数编程问题包括投资组合优化在能源生产中的金融,最佳调度(单位承诺),设计优化在工程和调度和运输和供应链应用中的调度和路由。
整数编程是查找要最小化函数的向量\(X \)的数学问题:
\ [\ min_x f(x)\]
受限制:
\ [\ begin {eqnarray} g(x)\ leq 0&quad&\ text {(不等式约束)} \\ h(x)= 0&\ quad&\ text {(平等约束)} \\ x_i \在\ mathbb {z}&\ quad&\ text {(整数约束)} \ neg {eqnarray} \]
这是最常见的整数编程形式,称为混合整数非线性程序(MINLP)。
只有线性目标和约束可以配制许多问题。在这种情况下,整数程序称为混合整数线性程序(MILP),并编写为:
\ [\ min_ {x} \ left \ {f ^ {\ mathsf {t}} x \ rick \} \]
受限制:
\ [\ begin {eqnarray} ax \ leq b&\ quad&\ text {(不等式约束)} \\ a_ {eq} x = b_ {eq}&\ quad&\ text {(平等约束)} \\ lb\ LEQ X \ LEQ UB&quad&\ text {(绑定约束)} \\ x_i \ in \ mathbb {z}&\ quad&\ text {(整数约束)} \ neg {eqnarray} \]