1.组合最优化问题

定义:

是通过数学方法的研究去寻找离散事件的最优编排、分组、次序或筛选等。

描述:

最优化问题的数学模型的一般描述是

x为决策变量,f ( x )为决策函数,R为可行解,R中的任何一个元素都是问题的一个可行解,满足f ( x* ) = min { f ( x ) | x∈R} 的可行解 x* 称为该问题的最优解,函数值f ( x* )称为问题的最优值。组合最优化问题特点在于它的可行域R是一个有限个点组成的集合,一般情况下其可行域R可表示为{ x | x∈D , g ( x ) >= 0 },说人话就是,在最优化问题的可行域上加了一个约束条件g ( x ) >= 0。它的一般形式是

一个组合最优化问题可以用三参数表示(D,R,f),D是x的定义域,R={ x | x∈D , g ( x ) >= 0 }是可行域,f表示目标参数

典型例子:

a.0-1背包问题(回溯,分支界限解空间子集树,时间复杂度下界2^n)

共i个物品,各物品价值为ci,重量为ai,求在背包容积b的大小限制下可装入的最大价值。其数学模型表示为:

b.旅行售货员问题(回溯,分支界限解空间排序树,时间复杂度下界n!)

城市i与城市j之间距离为dij,现要经过每一个城市,求最短距离。其数学模型表示为:

dij表示城市i,j之间的距离,约束条件为1)式三,恰好从城市i走出来1次,2)式四表示,恰好走入城市j1次,3)| S |表示集合S的元素个数,式五用来限制回路产生

猜测:

组合最优化问题属于NPC问题,故其解决方案与NPC问题解决方案相同

2.启发式算法

定义:

一个问题的最优算法求得该问题每一个实例的最优解,启发式算法是相对于最优算法提出的。它是一个基于直观或经验构造的算法,在可接受的代价内,给出待解决的最优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度不一定是事先可以估计的。

例子:贪心解0-1背包问题,对于有些实例来说,贪心给出的可行解就是该实例的最优解,但对于另外一些实例来说,贪心给出的可行解只是一个近似解,甚至这个近似解和最优解的偏离程度很大。

分类:

a.简单直观的算法

1)一步算法

算法特点:不在两个可行解之间比较,在未终止的迭代过程中,得到的中间解有可能不是一个可行解

例子:贪心解0-1背包,每一次迭代选一物品装包直到无法再装,该算法没有在两个可行解之间选择比较,算法结束时得到一解

2)改进算法

算法特点:迭代过程是从一个可行解到另一个可行解的交换

例子:旅行售货员问题

b.数学规划算法

主要包括分支界定启发式、割平面启发式、线性规划松弛再对解可行化、拉格朗日再对解可行化

c.现代优化算法

主要包括禁忌搜索算法、模拟退火算法、遗传算法、蚁群优化、人工神经网络算法等。他们的共性是基于客观世界中的一些自然现象,通过与组合最优化求解类比,找出它们的共性,建立相应的算法,这些算法的目标是希望求解NP难问题的全局最优解

d.其他算法

限制解空间、分解法、混合算法

3.NP,NP完全和NP难

参见已总结博文:http://blog.csdn.net/chinajane163/article/details/49074173

4.邻域

定义:

通俗的说就是:通过某种手段从可行域中取出一部分可行解来,所形成的集合

例子:

TSP问题解的一种表示方法为D = { x = (i1 , i2 , … , in ) |  i1 , i2 , … , in是1,2,…,n的排列},定义它的邻域映射为2-opt,即x中的两个元素进行对换,N(x)中共包含x的Cn2=n(n-1)/2(随机选两个互换位置)个邻居和x本身。
例如:x=(1,2,3,4),则C42=6,N(x)={(1,2,3,4), (2,1,3,4), (3,2,1,4), (4,2,3,1), (1,3,2,4), (1,4,3,2), (1,2,4,3)}

TSP问题解的邻域映射可由2-opt,推广到k-opt。

邻域概念的重要性:

邻域的构造依赖于决策变量的表示,邻域的结构在现代优化算法中起重要作用

概论-组合最优化问题、计算复杂性和启发式算法概念(现代优化计算方法)相关推荐

  1. NP-Hard问题及组合最优化问题

    1.P类问题和NP类问题 在讲NP-Hard问题问题之前,先讲P类问题和NP类问题 P类问题:可以找到一个多项式时间复杂度的算法去解决的问题: NP类问题:可以在多项式时间复杂度的算法去验证结果正确性 ...

  2. 深度学习基础(基本概念、优化算法、初始化、正则化等)

    2020-04-25 16:29:09 引言 深度学习目前已成为发展最快.最令人兴奋的机器学习领域之一,许多卓有建树的论文已经发表,而且已有很多高质量的开源深度学习框架可供使用.然而,论文通常非常简明 ...

  3. [论文笔记](东北大学)支持组合服务选取的QoS模型及优化求解(计算机学报06)

    Time Spended: 5 hours 东北大学(沈阳)代钰等发表的与Web Service相关的论文 Yu Dai, Lei Yang, and Bin Zhang, QoS-Driven Se ...

  4. 计算机概论易错题总结:概念类

    为期末考试,冲鸭-- 文字类 1.在计算机运行时,把程序和数据一样存放在内存中,这是1946年由_____领导的研究小组 正式提出并论证的. 冯·诺依曼. 2.被誉为第一位程序员的是_____. Au ...

  5. 数据库系统概论:第九章 关系查询和关系优化

    查询优化一般可以分为代数优化和物理优化.代数优化是指关系代数表达式的优化,物理优化指的是通过存取路径和底层操作算法的选择进行的优化. 9.1 关系数据库系统的查询处理 9.1.1 查询处理步骤 1. ...

  6. 启发式算法之灰狼优化算法

    前言 蚁群算法?秃鹰算法?布谷鸟算法?鱼群算法?猴群算法?这都是些啥? 这些算法听起来都很接地气,实际上也确实很接地气.它们都是学者通过观察动物们的行为得到的灵感,从而设计出来的精彩的算法.以动物命名 ...

  7. 技术干货丨《大天使之剑H5》主程与项目总监:H5游戏的压缩与优化经验

    2019独角兽企业重金招聘Python工程师标准>>> 2018年3月,三七互娱在其主办的中国国际互动娱乐大会上称,<大天使之剑H5>最高单日流水超4000万元,而单月最 ...

  8. 极光会客厅:大型H5游戏如何登陆微信小游戏及游戏性能优化分享

    上周末,由极光网络主办的首期"极光会客厅"正式开门迎客.在本次的"2D小游戏开发实战技术沙龙"上,极光网络客户端主程陈策以及极光网络项目总监陈源向一众与会者分享 ...

  9. 基础组合计数常用的概念和方法总结

    基础组合计数常用的概念和方法总结 一.组合计数中的基本概念与性质 1.排列 定义 性质 2.组合 定义 性质 二.组合计数中的一些常用技巧 1.容斥原理 定义 公式 2.捆绑与插空法 捆绑法 插空法 ...

  10. 【转】图论与组合优化2002年的发展

      http://www.sciencenet.cn/bbs/showpost.aspx?id=54797 图论与组合蓝皮书 图论与组合优化2002年的发展 (中国运筹学会图论与组合优化专业学术委员会 ...

最新文章

  1. Angular1.4.6框架简单读取数据库信息并渲染完成news新闻文章列表以及detail详情页功能(小试牛刀)
  2. 语义分割-- SegNet:A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
  3. MAP 最大后验——利用经验数据获得对未观测量的点态估计
  4. matlab作动态函数曲线图,[转载]Matlab中使用Plot函数动态画图方法总结
  5. Codeforces Round #533 (Div. 2)题解
  6. “万能数据库查询分析器” 5.03发布,访问EXCEL将自动为表名前后加上中括弧
  7. orcale实现自定义优先级排序的SQL
  8. 『设计模式』一张图告诉你UML图怎么画❀
  9. 解决关于M1芯片版Mac外接U盘、移动固态硬盘发热问题
  10. Python练习:恺撒密码 I
  11. JavaScript获取坐标
  12. liferay+portlet+开发实例
  13. 如何配置filezilla服务端和客户端
  14. 小甲鱼老师目前所有视频教程下载地址(mark下来慢慢看系列)
  15. 问题解决:com.lowagie.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H'
  16. python关键词排名批量查排名_Python批量查询百度排名
  17. 《程序员》2012年7期精彩内容:智能算法
  18. 【基于 C++ 面向 Window API 的自制工具】批量重复单键操作器
  19. php进程间通信 yoc_php 进程间通信 ipc
  20. 视频播放器(二):视频解码

热门文章

  1. python123课后作业嵩天_MOOC嵩天《Python语言程序设计》Python123课后作业4
  2. 利用mysql元数据自动生成hive建表语句
  3. mac google浏览器axure插件
  4. Jmeter脚本录制和压测
  5. Q学习(Q learning) 强化学习的简单例子 Matlab实现 可视化
  6. jquery表单的提交
  7. Arduino 连接JDY-08蓝牙模块
  8. Navicat中文版破解安装
  9. 云盒子linux版本,10分钟,搭建好属于自己的私有云盘系统
  10. w ndows7旗舰版网卡驱动,windows7万能网卡驱动官方下载