实用优化算法(一)准备和概念

来源:互联网 发布:日本汉字 知乎 编辑:程序博客网 时间:2024/06/14 09:39

原文地址:http://caesor.github.io/10-10-2014/Optimization_Algorithm.html

问题的分类:组合问题和数值问题

组合(Combinatorial)优化问题定义在一个有限的离散的问题空间里。比如:位流、元素置换、课程选择等。

数值(Numerical)优化问题定义在数字领域或者涉及实值变量。比如:求的数学方程式、股票预测、飞机机翼设计等。

优化算法(Optimization Algorithm):优化算法就是找到一个最合适的算法来解决一个优化问题。 算法分为两类:确定算法和随机算法

确定算法(Deterministic Algorithm):算法的每一步只存在一种方案执行下去,否则算法终止。比如:穷尽枚举法、确定共通启发式算法。

随机算法(Randomized Algorithm):算法包括至少一种指令要调用随机数。比如:随机举例法、随机本地搜索法(创建一个随机结果,通过每次修改它一点点并判断是否变好了来决定是否保留它)。

有两类随机算法:拉斯维加斯算法(Las Vegas Algorithm)蒙特卡诺算法(Monte Carlo Algorithm)。拉斯维加斯算法要么返回一个正确的结果要么纯粹没有返回值,蒙特卡洛算法总会终结,它一定会返回一个正确或者错误的结果。

共通启发式演算法(Metaheuristics):共通启发式演算法是一种解决一般问题的方法。它将目标函数和启发式相结合产生一个抽象并且有效的方式作为一个黑盒程序。

优化算法又可被分为在线(Online)离线(Offline)两种过程,在线过程需要快速完成,大约在10ms到几分钟的时间内完成。而时间对离线过程并不重要,用户为了得到更好地结果可能要等待几天或者几周时间。

我们将在接下来主要讨论的是有关随机算法、随机本地搜索法、蒙特卡洛算法、离线算法的问题。

优化结构

接下来,让我们从一个例子开始探讨优化问题:

Example:Traveling Salesman Problem

一个商人选择最短的距离访问 n 个城市。所有的城市只能访问一次并且最终要回到出发的城市。Traveling Salesman Problem(TSP)的目标是要找到一条访问了所有城市并且距离总和最短环路。 picture1

1.问题空间(Problem Space)X: 问题结果x的集合,x被称为备选结果

TSP的问题空间是:X = Π { Beijing , Chengdu , Guangzhou , Hefei , Shanghai }

2.目标函数(Objective Function)f:评判结果是否是最优的函数,X -> R,f(x)是R中的元素,x是X中的元素,如果目标是求最小化,对于f(x1) < f(x2),表明x1比x2要好。

TSP的目标函数是:Minimize f (x) = dist( Hefei , x[0]) + Σ(i=0->2)dist(x[i] , x[i + 1])+dist(x[3] , Hefei )

这时问题出现了,我们可以尝试遍历所有可能的结果吗?问题空间的大小为X = (n − 1)! / 2,当问题复杂时我们不可能遍历所有结果!!!现在我们并不知道比较好的方案的特征是什么!我们可以计算目标函数f,但不能通过目标函数f求得最小值!那我们现在应该怎么办?

3.共通启发式演算法(Metaheuristics): 我们知道问题空间X的数据结构,那么我们可以随机创建一个实例x!然后修改已存在的实例x,或者合并存在的实例x1、x2。如果能够足够好的完成这个,我们就成功啦!

picture1

接下来我们就需要得到实例x了!还需要一个修改实例的方法!或者是一个合并实例的方法!

搜索操作(Search Operations): 通过Nullary Search Operation我们先创建一个G的实例g,然后通过Unary Search Operation修改实例,得到一个新的实例。

通常,我们可以使用著名的数据结构X,比如:Rn ≡ double[]。

那么,TSP的可以将自己的问题空间转化为X = Π { 0 , 1 , 2 , 3 , 4 }

但是如果有些问题的问题空间不是著名的数据结构应该怎么办呢?那我们转化它!比如:

picture1

我们把这个过程称为基因-表现型映射(Genotype-Phenotype Mapping),Genotype-Phenotype Mapping(GPM)G → X将实际中的搜索空间(Search Space)G映射到了问题空间X中。

4.终止条件(Termination Criterion)决定了该方法迭代的结束条件,我们通过设置最大步数(MaxStep)来终结算法。

优化算法函数模型

  1. publicabstractclassOptimizationAlgorithm<G, X>{
  2. publicINullarySearchOperation<G> nullary;
  3. publicIUnarySearchOperation<G> unary;
  4. publicITerminationCriterion termination;
  5. public IGPM<G, X> gpm;
  6. publicfinalRandom random;
  7. publicabstractIndividual<G, X> solve(finalIObjectiveFunction<X> f);
  8. }

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 前列缐炎引起尿血怎么办 牙齿牙根长在神经里怎么办 牙齿杀完神经牙根发炎怎么办 牙齿有大洞好疼怎么办 大门牙有蛀牙了怎么办 大门牙蛀牙黑了怎么办 大门牙蛀牙有洞怎么办 大门牙的缝蛀了怎么办 最里面的牙烂了怎么办 牙齿蛀了个洞怎么办办 牙齿痛怎么办才能治好? 门牙牙齿蛀掉了怎么办 吃了辣的牙齿痛怎么办 牙颈部楔状缺损怎么办 牙齿磨了很疼怎么办 小孩牙有窟窿疼怎么办 西瓜吃多了尿不停怎么办 吃了个西瓜不停拉肚子怎么办 例假完了又来了怎么办 肾上面有个肿瘤怎么办 膀胱壁毛糙增厚怎么办 痔疮手术后尿不出来怎么办 小牛肚一天不尿怎么办 小孩拉肚一直不好怎么办 尿涨但是尿很少怎么办 十四岁尿血医生说是肾炎怎么办 吃肉反胃想吐怎么办 母牛排尿带血尿发烧怎么办 4岁发烧40度怎么办 狗狗拉肚子咳漱哮喘怎么办 拉肚子拉脱水人无力怎么办 孕中期拉稀拉水怎么办 吃坏肚子拉稀水怎么办 手上起小疙瘩疼怎么办 手上长东西很痛怎么办 七八十斤猪拉稀怎么办 宝宝扁桃体化脓反复发烧怎么办 骑单车后膝盖痛怎么办 孩子一运动就喘怎么办 小孩晚上咳嗽很厉害怎么办 1岁宝宝夜里咳嗽怎么办