zoukankan      html  css  js  c++  java
  • 一些算法

     1.分支界限算法

    在历届NOIP竞赛中,有4道初赛题和5道复赛题均涉及到背包问题,所谓的背包问题,可以描述如下:

    一个小偷打劫一个保险箱,发现柜子里有N类不同大小与价值的物品,但小偷只有一个容积为M的背包来装东西,背包问题就是要找出一个小偷选择所偷物品的组合,以使偷走的物品总价值最大。

    如有4件物品,容积分别为: 3 4 5 8

    对应的价值分别为: 4 5 7 10

    小偷背包的载重量为:12

    则取编号为1 2 3的物品,得到最大价值为16。

    2.A*算法

    A*[1] (A-Star)算法是一种静态路网中求解最短路最有效的直接搜索方法。

    注意是最有效的直接搜索算法。之后涌现了很多预处理算法(ALT,CH,HL等等),在线查询效率是A*算法的数千甚至上万倍。

    公式表示为: f(n)=g(n)+h(n),

    其中 f(n) 是从初始点经由节点n到目标点的估价函数,

    g(n) 是在状态空间中从初始节点到n节点的实际代价,

    h(n) 是从n到目标节点最佳路径的估计代价。

    保证找到最短路径(最优解的)条件,关键在于估价函数h(n)的选取:

    估价值h(n)<= n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。并且如果h(n)=d(n),即距离估计h(n)等于最短距离,那么搜索将严格沿着最短路径进行, 此时的搜索效率是最高的。

    如果 估价值>实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。

     

    3.广度优先算法

    最佳解:若所有边的长度相等,广度优先搜索算法是最佳解——亦即它找到的第一个解,距离根节点的边数目一定最少;但对一般的图来说,BFS并不一定回传最佳解。这是因为当图形为加权图(亦即各边长度不同)时,BFS仍然回传从根节点开始,经过边数目最少的解;而这个解距离根节点的距离不一定最短。这个问题可以使用考虑各边权值,BFS的改良算法成本一致搜寻法(en:uniform-cost search)来解决。然而,若非加权图形,则所有边的长度相等,BFS就能找到最近的最佳解。

  • 相关阅读:
    33. Search in Rotated Sorted Array
    文章
    导航
    页眉和页脚
    渐变
    图像翻转与子画面
    背景图像定位
    背景图像
    使用css将图像居中
    使用CSS将图像对齐
  • 原文地址:https://www.cnblogs.com/-yan/p/4271853.html
Copyright © 2011-2022 走看看