• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    解空間樹在算法設(shè)計中的不同形式研究

    2017-03-30 05:07:57方宇彤
    科學(xué)中國人 2017年9期
    關(guān)鍵詞:二叉樹子集皇后

    方宇彤

    河北大學(xué)計算機科學(xué)與技術(shù)學(xué)院

    解空間樹在算法設(shè)計中的不同形式研究

    方宇彤

    河北大學(xué)計算機科學(xué)與技術(shù)學(xué)院

    本文介紹了解空間樹的概念,解空間樹分為子集樹和排列樹,子集樹又分為二叉樹和多支樹。通過幾個問題介紹了解空間樹在不同算法中的應(yīng)用,在旅行售貨員等多元問題中,本文提出了解空間樹的另一種可行的結(jié)構(gòu)并對此展開討論。

    子集樹;排列樹;回溯法;解空間

    1 樹與解空間樹

    1.1 樹的概念

    樹(Tree)的定義[1]是:n(n≥0)個結(jié)點構(gòu)成的有限集合。最上層節(jié)點稱為根節(jié)點,除去根節(jié)點之外的其余節(jié)點可以分為許多互不相交的子集,每一個子集又是一棵樹,稱為根的子集樹。

    1.2 解空間樹的概念

    1.2.1 解向量:一個問題的解,能夠表示成一個n元式(X1,X2... Xn)的形式,叫做解向量。

    1.2.2 解空間:要了解什么是解空間樹,首先要明確什么是解空間。解空間就是一個算法執(zhí)行后,由解向量組成的集合。即解空間是一個集合。

    1.2.3 解空間樹:在確定了可行的、易于搜索的解空間后,將解空間用二叉樹或樹的形式表示,即為問題的解空間樹。

    1.2.4 分類

    解空間樹[2]可以分為子集樹和排列樹兩種。其中子集樹是如下圖左側(cè),當所給的問題是從n個元素的集合S中找出滿足某種性質(zhì)的子集時,相應(yīng)的解空間樹成為子集樹,子集樹通常有2^n個葉結(jié)點。如0-1背包問題。

    排列樹如下圖右側(cè)所示,當所給的問題是確定n個元素滿足某種性質(zhì)的排列時,相應(yīng)的解空間樹稱為排列樹。排列樹通常有n!個葉節(jié)點。如旅行售貨員問題。

    圖1 子集樹和排列樹

    2 解空間樹在算法中的應(yīng)用

    2.1 子集樹的應(yīng)用

    2.1.1 二叉樹—01背包問題

    問題描述:

    物品重量w[]={16,14,25};物品價值p[]={45,23,37};背包重量上界為42;求不超過背包可裝重量的最大價值物品組合。

    解:其解空間樹如圖1左圖所示,對于每一個節(jié)點,它只有兩種狀態(tài):屬于/不屬于物品組合,每一處分叉代表一個物品是否加入組合。A到BC結(jié)點表示物品1是否加入書包,B到DE結(jié)點表示在物品1裝入的情況下物品2的裝入情況。因此,求解過程可以看作對三個物品進行取舍的過程。共有八種解,分別計算,滿足總重小于c的解,并計算價值和,求出最優(yōu)解。

    2.1.2 多叉樹換錢問題

    問題描述:一元錢,可換1角、2角、5角的硬幣,可以有哪些方案?

    解:與背包問題類似,本題的w[]={1,2,5};c=10;最后求解得有10種方案。區(qū)別在于每種硬幣可取多次,所以對應(yīng)的解空間樹是多枝樹,每一個結(jié)點分出1、2、5三枝。屬于多元問題。

    2.2 排列樹的應(yīng)用

    n后問題:

    為了簡便,這里討論4皇后問題,在4*4的棋盤上放置4個皇后,每兩個皇后不能在同一行或同一列或同一斜線。0和1層之間的區(qū)域表示第一行的皇后放置在第幾列,后邊同理。

    第i行第j列的皇后,安排的下一個位于k行,x[k]列。則要滿足要求有i≠k,j≠x[k],│i-k│≠│j-x[k]│。若下標從0開始,可得出(1,3,0,2)第一行第二列,第二行第四列,第三行第一列,第四行第三列各放一個皇后和(2,0,3,1)兩組解。

    3 對新形式解空間樹的思考

    3.1 一個節(jié)點代表一個元素的解空間樹

    通過對許多例題的思考,本文提出了一種解空間樹結(jié)構(gòu)的改變,下面以大家熟知的旅行售貨員問題為例作出解釋。

    在傳統(tǒng)的旅行售貨員問題中,有這樣一個邊的帶權(quán)圖(圖2),為使走的總路程最短,得出圖3解空間樹。

    圖3 解空間樹

    圖2 帶權(quán)圖

    用隊列式(FIFO)分支限界法解此題,以廣度優(yōu)先的方式搜索解空間樹。每一個活結(jié)點一旦成為擴展結(jié)點,就一次性產(chǎn)生其所有兒子結(jié)點。導(dǎo)致不可行解或非最優(yōu)解的兒子結(jié)點被舍棄,其余兒子結(jié)點被加入活結(jié)點表中。此后從活結(jié)點表中取下一結(jié)點成為當前擴展結(jié)點,并重復(fù)上述擴展過程。得出兩個最優(yōu)解(1,3,2,4,1)和(1,4,2,3,1)路程都是25。

    提出一個大膽的設(shè)想,若把這四個地點放在解空間樹的節(jié)點處是否可行呢?下面進行驗證。其改進后的解空間樹如圖4。

    猜你喜歡
    二叉樹子集皇后
    由一道有關(guān)集合的子集個數(shù)題引發(fā)的思考
    CSP真題——二叉樹
    電腦報(2022年37期)2022-09-28 05:31:07
    拓撲空間中緊致子集的性質(zhì)研究
    二叉樹創(chuàng)建方法
    關(guān)于奇數(shù)階二元子集的分離序列
    遇皇后
    奇妙博物館(2018年7期)2018-08-07 08:08:34
    為什么皇后鎮(zhèn)被稱為“冒險之都”?
    一種由層次遍歷和其它遍歷構(gòu)造二叉樹的新算法
    被放逐的皇后
    每一次愛情都只是愛情的子集
    都市麗人(2015年4期)2015-03-20 13:33:22
    上思县| 如东县| 盐源县| 西安市| 和林格尔县| 永仁县| 贡觉县| 莎车县| 沁源县| 铁岭县| 鄂托克旗| 房产| 宜都市| 黑山县| 普格县| 沁水县| 胶南市| 钟山县| 万荣县| 廉江市| 富川| 兴化市| 利川市| 巢湖市| 施秉县| 蚌埠市| 神农架林区| 彭阳县| 清水河县| 石柱| 兰州市| 吉木萨尔县| 鸡泽县| 玉田县| 涿鹿县| 武川县| 麻阳| 中方县| 祁阳县| 漳平市| 霍城县|