一个毫无意义的文章
来源:互联网 发布:hive spark sql 区别 编辑:程序博客网 时间:2024/05/13 20:33
搜索解决问题的基本步骤:
针对所给问题,定义问题的解空间;确定易于搜索的解空间结构;以深度优先方式搜索解空间,并在搜索过程中利用Pruning函数剪去无效的搜索。
摘自百度百科。
剪枝比如有可行性剪枝(如联通性剪枝),最优性剪枝
如切木板问题,我要切得和剩下所有的木板加起来还不够所有要切得,显然是不需要继续搜的。
如当前状态已走步数与预判最好情况下要走步数是否劣于最优值。预判还可考虑另写估价函数。
改变搜索顺序使得更容易地剪枝,如最大团解法,以从后往前的顺序搜索,反而易于剪枝。亦可考虑贪心。
还要优化搜索层数,如IDA*。
不如先考虑显然不合法的状态,为何不合法,如何剪去不合法状态。
以及平衡剪枝与不合法搜索空间的时间关系,剪枝/判断不合法所花时间应远小于不合法状态搜索时间。
考虑某一状态时,要将其所有信息一并考虑,抓住状态的性质,如切木板问题,考虑已经切了的以及预判还能切的时候,还要考虑另一面,即浪费掉的木板量。正面考虑比较困难,不如反过来考虑。
另外还需考虑重复状态,避免重复搜索,可通过哈希等手段判断。如切木板问题,我要切出来的两块木板长度相同,一块可能搜索到从i开始时有效,那么另一块就也要从i开始,而不必再搜索i前面的状态了。
还要考虑状态的部分与整体的关系。
最优性问题亦可考虑二分答案转化为判定性问题。
总之不如先出一个比较通用或感觉会有不同情况的数据并绘出其搜索树。
剪枝不能把可能通向最优答案的部分剪掉(很显然)
双向广搜并不知道是否有很大的优化程度。。
另外还有路径交,从源汇点各走一次搜索(最短路)。
听说有一个hash方法判断有向图是否相同。
以下为搬运。
迭代k次以后的
不清楚贴过来是否有版权问题。。
如何判断一个点是否在多边形内。
射线法。
如果从该点发出的射线经过了多边形边奇数次就在多边形内,否则不在。
- 一个毫无意义的文章
- 为什么要买些毫无意义的东西
- [RealSense]5-毫无意义的后记
- c/c++ 中毫无意义的 i+++++i
- 不依赖于具体的抽象是毫无意义的
- 宿命论毫无意义
- 努力毫无意义
- 一个文章的网站
- 一个学生写的文章
- 一个关于VOFM的文章
- 一个文章排序的问题
- 一个关于VOFM的文章
- 分享一个不错的文章
- 分享一个不错的文章
- 用于 Android 开发的 Kotlin:是重量级语言还是毫无意义的炒作?
- 用于 Android 开发的 Kotlin:是重量级语言还是毫无意义的炒作?
- 用于 Android 开发的 Kotlin:是重量级语言还是毫无意义的炒作?
- 不要让你的美化毫无意义(web和手持UI向)
- java web学习(进阶篇)六 Spring中的AOP
- Centos环境下安装java jdk 设置环境变量
- SendMessage和PostMessage
- 白话快速排序
- C++ 工程实践(4):二进制兼容性http://blog.csdn.net/Solstice/article/details/6233478
- 一个毫无意义的文章
- 虚幻4 在VS2015中智能提示不灵敏解决方法
- VC程序里一种很好的线程退出方式,算是复习Event
- AndroidStudio出现错误
- Android面试之View绘制流程以及invalidate()等相关方法分析
- Java中Runnable和Thread的区别
- hihoCoder week 84 P1 : Lucky Substrings 【dp】
- 2016年工作技能提升计划
- 几种排序算法总结