优化

优化三大要素:决策变量、约束条件、和目标函数
根据3个要素的不同,优化问题划分为多种不同的类型,其中就包含线性规划LP和混合整数规划MIP。

线性规划

线性规划LP基础:https://www.gurobi.com/resource/linear-programming-basics/

线性规划(Linear programming,简称LP):研究线性约束条件下线性目标函数的极值问题的数学理论和方法

  1. 线性:数学里,一般说的线性,是说的线性映射,满足
    ①可加性:f(x+y)=f(x)+f(y)
    ②齐次性:f(ax)=af(x)
  2. 线性关系:两个变量之间存在一次函数关系
  3. 约束优化问题:给定约束条件和目标函数,计算约束条件下目标函数的最大(最小)值。
  4. 目标函数和约束条件都是线性函数的情况,称为线性优化问题,即目标函数是线性的,所有约束也是线性的。

经典LP问题:资源分配生产问题、

整数规划

1,整数规划(Integer Programming,简称IP):规划问题中一部分变量或者全部变量为整数变量的话,该数学规划问题就属于整数规划问,即自变量存在整数。
2,整数规划的可行域是离散的
3,整数规划问题被看作数学规划里、乃至世界上最难的问题之一,通常退而求其次求解近似解或局部最优解。
4,常见整数规划问题:背包问题、广义指派问题、集合覆盖问题
5,分类(按决策变量分):
①全部决策变量限制为整数的规划问题,称为纯整数规划
②部分决策变量限制为整数的规划问题,称为混合整数规划,即自变量既包含整数也有连续变量,混合整数规划(mixed integer programming,简称MIP)基础:https://www.gurobi.com/resource/mip-basics/
③决策变量只取0或1的规划问题,称为0-1整数规划

求解
1,求解难度大:虽然连续优化问题的可行解有无数多个,但是通过微积分,这一成熟且强大的工具,往往可以建立出针对连续优化(即可微)问题的最优性条件。整数规划问题中,整数不连续从而不可微分,导致无法使用微积分的工具,难以得到最优性条件,同时由于离散,无法满足凸性。
2,普遍方法:
① 整数规划方法:分支定界法、割平面法、蒙特卡罗法、列生成法,拉格朗日松弛法等
② 0-1整数规划:隐枚举法、(指派问题:匈牙利法)

3,精确算法:分支定界法(Branch and Bound Algorithm, B&B)、枚举法
分支(Branching) 算法是整数规划求解器的核心框架
整数规划精确算法核心的便是分支定界法,以及增加分支定界效率的各种技巧,例如割平面方法(Cutting Planes Method)。

①问题的规模往往非常小;②最后获得的解,必定是最优解

4,近似算法(Approximate Algorithm):
根据特定问题使用一些技巧(贪婪策略,限制,划分,断切,松弛)
比较考验技术,需要给出算法的近似比,复杂度分析,具有很强的推理能力。同样,这类算法的求解规模还是比较受限制的,其最后获得的解不是最优解。

5.启发式算法(Heuristic Algorithm):算法设计者根据经验或者观察到的性质设计出来的。TSP问题:LKH算法。
启发式算法大致可以分为四类:取整(Rounding)、下潜(Diving)、子问题(Sub-MIP)和上述三类之外的其他算法。

6,神经网络(Neural Networks):Google的DeepMind团队2021年官宣了一篇神经网络(Neural Networks)求解MIP论文,文章链接https://arxiv.org/abs/2012.13349及国内评读评DeepMind近期神经网络求解MIP的论文:https://zhuanlan.zhihu.com/p/400603949

作者:王源
链接:https://zhuanlan.zhihu.com/p/406262088
来源:知乎

整数规划、混合整数规划基础知识相关推荐

  1. 线性规划LP和混合整数规划MIP基础知识

    如果你刚刚入门线性规划,对于线性规划的基本原理.概念.术语,以及 Gurobi 内部的核心算法不了解的话,请花费 10分钟时间,阅读以下两个科普文章.如果对于英文不熟练的话,可以采用谷歌浏览器,然后选 ...

  2. 混合整数规划问题:Benders 解耦法

    一. 算法背景 Benders分解算法是 J.F.Benders 在1962年首先提出的,旨在解决某些大规模优化问题,其核心思想是将问题划分为多个较小的子优化问题,以取代传统优化方法中同时考虑所有决策 ...

  3. 混合整数规划MIP/线性规划LP+python(cplex库)实现 附代码

    文章目录 相关知识点 LP线性规划问题 MIP混合整数规划 MIP的Python实现(docplex库) MIP的Python实现(ortool库) 喜欢的话请关注我们的微信公众号~<你好世界炼 ...

  4. 混合整数规划MIP/线性规划LP+python(ortool库)实现 附代码

    文章目录 相关知识点 LP线性规划问题 MIP混合整数规划 MIP的Python实现(Ortool库) assert MIP的Python实现(docplex库) 喜欢的话请关注我们的微信公众号~&l ...

  5. 【遗传算法不求人】MATLAB轻代码玩转GA:0-1背包问题+混合整数规划

    [遗传算法不求人]GA实时编辑优化器解决0-1背包问题+混合整数规划 课程简介 视频课程 问题描述 1.初始化,导入数据.设置变量 2.MATLAB语法表示-GA(全局优化器) 3.MATLAB语法表 ...

  6. python 混合整数规划_matlab求解混合整数规划的困惑

    请问谁用过CPLEX 之类的 求解混合整数规划(Mixed integer prgramming)的matlab插件 mex file 1.能给我传一个直接可用(好用)的么... 万分感谢 网上找了好 ...

  7. IC基础知识(3)通用模拟,数字和混合信号集成电路

    文章目录 写在前面 正文 数字IC 逻辑 内存 处理器 模拟IC 混合信号IC 结论 交个朋友 写在前面 原文链接:Common Analog, Digital, and Mixed-Signal I ...

  8. matlab 整数规划工具箱,Matlab中的YALMIP工具箱 混合整数规划

    YALMIP工具箱 混合整数规划 定义变量: sqdvar()实型 intvar()整型 binvar()0-1型 设定目标函数 : f=目标函数 设定限定条件: F=set(限定条件) 多个限定条件 ...

  9. 流水车间调度问题混合整数规划模型

    流水车间调度问题(FSP)描述为:有n个独立的工件按照相同的工艺路线在m台机器伤加工,每个工件需要经过m道工序,这些工序分别要求不同的机器,并且各工序的加工过程不能中断. 以最大完工时间为目标的流水车 ...

最新文章

  1. 别在 Java 代码里乱打日志了,这才是正确的打日志姿势!
  2. 22种代码味道(Martin Fowler与Kent Beck)
  3. 运行 vue 报node错
  4. 攻防世界-web-bug-从0到1的解题历程writeup
  5. 关于set的自定义比较函数的使用及结构体的上下二分用法
  6. 二十八、PHP框架Laravel学习笔记——模型的关联查询
  7. 会议交流 | “数据智能与知识服务”研讨会的专家报告题目已更新!
  8. [原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题
  9. java 包含字符串 个数_java查找字符串中的包含子字符串的个数实现代码
  10. python中socket.gaierr errno1104_“socket.gaierror:[Errno 11004]getaddrinfo失败”
  11. 使用eclipse开发可视化界面windowsbuilder
  12. 3d建模师是吃青春饭的吗?混子上限也就8K,资历能力都很重要
  13. 《了不起的Markdown》之第1章 人人都应学会Markdown
  14. icem合并面网格_ICEM CFD中合并多个网格
  15. 靶向目标基因检测技术
  16. Python —— 爬取成果微博相册图片 ——明星
  17. Generative Adversarial Nets[AAE]
  18. bert获得词向量_NLP中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert
  19. ue4 获取屏幕中心点坐标
  20. mysq coun(*)时为啥这么慢

热门文章

  1. Jenkins 自动化部署 持续集成
  2. tinyxml2 01 基本使用
  3. 为什么LPC1788不支持Linux
  4. 黑苹果0001——基本概念与实现原理
  5. 百度地图API详解之地图标注覆盖物
  6. 计算机科学与技术专业论文选题审批表,2021届本科毕业设计(论文)选题工作的通知...
  7. 一览29省2020年5G建设计划
  8. vue3+vite+EChars LPL数据可视化项目总结
  9. 17.在NBA我需要翻译-适配器模式(大话设计模式kotlin版)
  10. 2021SC@SDUSC移动互联网项目分析——指南针