バックトラックの基礎

バックトラックは、最適な選択条件に応じて好適な、深さ優先探索(トラバース簡単用語である)から選択された検索方法です。オリジナルの選択肢がターゲットに到達最適かどうかではありません見つけるために、特定のステップを検索する場合、再選択するためにステップバックで、バックトラッキングと呼ばれるリターン徒歩技術上のこの行き止まり、および状態のバックトラッキングの条件を満たしていますポイントは「と呼ばれるバックトラックポイント。」

1.アルゴリズムの考え 

 バックトラックは、制約条件生成された子ノード、探索問題の解決策によると、道を譲るために深さ優先探索、初期状態からです。彼らが見つけた場合、現在のノードが別のパスを試して戻ってそれを解決するための条件を満たしていません。バックトラックがあるメソッドを検索し、「変更を入力することはできません、入力に進み、変更がバックすることはできません」。

2.要素アルゴリズム 

(1)解空間:

  • 組織ソリューション:ソリューションバックトラッキング組織は、例えば、三つの項目0-1ナップザック問題を{X1、X2、X3、...、XN}のnタプルを調節することができ、溶液がフォームで構成されています{ X1、X2、X3}。
  • 著しい制約:溶液成分の範囲を規定します。例えば、3つのアイテム0-1ナップザック問題は、組織液は、{X1、X2、X3}です。非常に単純なXIからその溶液の範囲の構成要素は、xiが1又は0であることは、バックパックに項目か否かを示します。
  • 解空間:名前が示すように、スペースですべての可能な解決策で構成されています。図示のように:

各点は、我々は解決策になる可能性があるということであることを図仮定は、これらのソリューションは、我々は問題の制約になりました、空間の構成を理解解空間における最適なソリューションを見つけるでしょう。

  • 解空間、高い検索効率。

(2)解空間組織構造:

解空間は、通常、我々は、ブラインドの検索効率が非常に低い無知ではないことができ、多くの可能なソリューションで構成されています。私たちは、組織外の特定の形で表現して、最適なソリューションを探しに行くことがあります。この組織は、解空間の木であります:

問題解決の画像は、とき解空間ツリーだけで解空間の画像表現は、検索処理の理解を容易に本物の木を生成するのではなく、

(3)検索ソリューションスペース:

暗黙の制約がの可用性の問題を指し、実行可能解または最適解作ら制約。

如果不满足隐约束,就说明得不到问题的可行解或者是最优解。那就没有必要再沿着该结点的分治继续进行搜索了,相当于把这个分支都剪掉了。因此隐函数也成为剪枝函数,实质上不是剪掉该分支,而是不再搜索该分支。

例如:3个物品的0-1背包问题,如果前2个物品放入后背包超重了,那么就没有必要再考虑第三个物品是否要放入背包了。相当于是剪枝了:

3.剪枝函数 

 隐函数:也称剪枝函数,包括约束函数和限界函数。

对于能否得到问题的可行解的约束称为约束函数,对于能否获得最优解的约束称为限界函数。有了剪枝函数,我们就可以“剪掉”得不到的可行解或者是最优解的分支,避免无效搜索,提高搜索效率。剪枝函数设计的好,搜索效率就高

解空间的大小和剪枝函数的好坏都直接影响搜索效率。

在搜索解空间时,下面几个术语需要说明:

  • 扩展结点:一个正在生成孩子的结点。
  • 活结点:一个自身已生成,但孩子还没有全部生成的结点。
  • 死结点:一个所有孩子都已经生成的结点。
  • 子孙:结点E的子树上所有结点都是E的子孙。
  • 祖宗:从结点E到树根路径上的所有结点都是E的祖宗。
发布了57 篇原创文章 · 获赞 9 · 访问量 3613

おすすめ

転載: blog.csdn.net/Jayphone17/article/details/102910824