学习日志之synthesis and optimization(7)——Heuristic optimization

这类方法的主要思想就是从一个函数的任意一个出发点开始在邻域取值,寻找更优点,逐渐逼近最小值。这个方法有一个明显明显的问题就是容易陷入局部极小值点。所以对于整个问题的步骤主要分为两个部分,一部分是逼近极小值,另一部分是使函数取值跳出极小值的坑,寻找最小值。需要完成这些步骤我们需要三个operator:

  1. expand operator
  2. irredundant operator
  3. reduce operator

其中前两个是为了取到局部最小,而reduce operator是为了跳出局部最小而取到全局最小值

expand operator

选择一个在cube上的minterm为起始点进行扩展,如果一个面上四个点都是minterm那么就可以扩展为一个面,如果是一条楞上都是那么就可以扩展为一条楞,扩展完之后就相当于弄出来了一个implicant。然后再另外选一个没有被cover的点同样的步骤扩展,直到cover到所有的点。下图为一个4输入构成的4维立方体表达。

最终expand的结果如下图所示,这里得到的都是prime implicant:

所以f=\alpha +\beta +\gamma+\delta+\epsilon

irredundant

然而显然在这里\alpha是冗余的,因为去掉之后其余的implicant还是能cover到所有的minterm,因此可以去掉这个implicant。这一步去冗余是由irredundant operator来做的。在irredundant operator和expand operator的共同作用下对于这个问题达到了局部最优值。

reduce

这一步需要做的是将一些本来不需要考虑的Literal(a,a',b,b'之类的)降级为care,在cube中表现为原来是一个面的降为一个楞,一个楞降为一个点上面的图就变成了下图,最终的cover也就变成了\left \{ p',r,\delta ,\epsilon ' \right \}

然后重复这个步骤一直到得到最优的结果为止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值