タグ

algorithmとsampleに関するurza358のブックマーク (2)

  • PHP でダイキストラのアルゴリズムを実装 - ブログ

    最短経路を求めるために,PHP でダイキストラのアルゴリズムを実装しました。 隣接行列 (二次元配列),スタート地点の番号,ゴール地点の番号を渡すと,コストの最小値とそのときのルートを返します。700×700 くらいのときまで動作を確認しました。 ○ コード /** * 最短経路を求める (ダイキストラ法) * http://onair.jp/ * * @param array[][] $AdjacentProcession * @param int $start * @param int $goal * @return mixed */ function dijkstra($G, $v, $g = -1) { $T = array(); $d = array(); $prev = array(); $count = count($G); for ($i = 0; $i < $count;

  • 探索アルゴリズム:フリーセル解決プログラムにおける手順探索

    フリーセル解決手順のプログラムによる探索実行結果 フリーセル百万種類のゲーム全てに対してサンプルプログラムを実行したところ、おそらく勝てないと言われている 11982、146692、186216、455889、495505、512118、517776、781948 以外のゲームでは勝つことができました。 百万種類のゲームの中で 57148、563096 の二つはコンピュータにとって勝つのが難しい性質を持っています。非常に長い堂々巡りの手順が現れ、およそ四百万局面ぐらいの同一局面判定ができなければ勝てません。また最初の一枚をホームセルへ置くまでの手数が長いので、先読みを長くしなければ勝ち手順を見つけることができないのです。この二つのゲームに勝つために、最大手数を 8,192 (freecell.h : MAX_SEARCH_DEPTH)、同一局面判定上限を 4,194,304 局面 (mov

  • 1