热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

1.组合最优化问题定义:是通过数学方法的研究去寻找离散事件的最优编排、分组、次序或筛选等。描述:最优化问题的数学模型的一般描述是,x为决策

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。

邻域概念的重要性:



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








推荐阅读
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • 读手语图像识别论文笔记2
    文章目录一、前言二、笔记1.名词解释2.流程分析上一篇快速门:读手语图像识别论文笔记1(手语识别背景和方法)一、前言一句:“做完了&#x ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 安装Tensorflow-GPU文档第一步:通过Anaconda安装python从这个链接https:www.anaconda.comdownload#window ... [详细]
author-avatar
虚实人生轶事
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有