<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AMF48 &#187; gdd11jp</title>
	<atom:link href="http://amf48.develop.jp/archives/tag/gdd11jp/feed" rel="self" type="application/rss+xml" />
	<link>http://amf48.develop.jp</link>
	<description>AMF Encode/Decode Library for Java</description>
	<lastBuildDate>Sun, 04 Mar 2012 09:47:28 +0000</lastBuildDate>
	<language>ja-JP</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.8.41</generator>
	<item>
		<title>DevQuiz満点への道（力技偏ｗ）</title>
		<link>http://amf48.develop.jp/archives/384</link>
		<comments>http://amf48.develop.jp/archives/384#comments</comments>
		<pubDate>Mon, 12 Sep 2011 12:54:50 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[devquiz]]></category>
		<category><![CDATA[gdd11jp]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=384</guid>
		<description><![CDATA[DevQuizが終わったので、結果をまとめておこうかと… 　回答数: 5000/5000 　L: 68088/72187 　R: 77650/81749 　U: 67642/72303 　D: 77117/81778 LRUDは、計17520個余っていますが、まだまだ削れるみたいですねぇ。 （5000問のうち、2509問だけは最適解と確認済） 【やったこと】 ※ちなみに、今回は評価関数を全く書いていませんｗ 1. 初期状態と、ゴール状態の双方から１手づつ展開 　・パネルの状態を表す文字列がキー、経路が値のマップを作成しながら展開 　・前方からの展開と、後方からの展開が一致すれば、経路をつないで回答とする 　・この方法だと、メモリー使用量がネックになって、確実に解けるのは４０手どまりでした… 　・ただ、それでも頑張ってまわせば1500問以上は解けていた気がします 2. 問題を分割（左端、上端偏） 　・左端あるい上端から１列づつ埋めて、問題を小さくして、総当りできるサイズに削る戦略 　・ただし、袋小路などが出来ないように、隣接ブロック数が１つ以下の部分は移動対象に追加 　・移動の対象にならないブロックを「?」に置き換えてパネルの状態を圧縮 　・ゴールは、「0」がどこにくるかわからないので、可能性がある分準備… 　・１列全てだと移動できない場合、分割して移動するように処理を追加 　・部分移動に成功した場合、移動済の部分は変更しない条件付きで経路探索を継続 　・ここまで書けば4900問ぐらいまで解けた気がします 3. 問題を分割（上下左右端偏） 　・下側、右側から埋めていくことを許容 　・下側などから埋めると「0」の位置が問題になるので、予めゴールの「0」を移動させておく必要あり（後で、その移動に使った分を、経路に追加しておく） 　・ここまで書くと4996問まで解けたと記憶しています 4. 残り４問を個別対応 　・３問は、初期に移動するブロックを指定すれば解けました。 　・１問は、ゴール状態を指定（＝「0」のずらし方を指定）でなんとか解けました。 5. この時点て３万ぐらいLRUDが足りなかったので…^^; 　・初期に与える移動ブロックを２行とか３行にするなど、部分移動量を増加（ロングパス狙いｗ） 　・初期ブロックの与え方を変えた２PGを実行し終わった時点で、8000ぐらい余裕ができて、無事ゴール♪ ＃150点獲得後は、総当りのPGを改良して、最適解がいくつあるのか数えていました… ＃Java7のFork/Joinをお試しに使ってみたので、性能評価したら公開したいかも… 【結論】 力技でも、満点は取れる！ｗ]]></description>
				<content:encoded><![CDATA[<p>DevQuizが終わったので、結果をまとめておこうかと…</p>
<p>　回答数: 5000/5000<br />
　L:  68088/72187<br />
　R:  77650/81749<br />
　U:  67642/72303<br />
　D:  77117/81778</p>
<p>LRUDは、計17520個余っていますが、まだまだ削れるみたいですねぇ。<br />
（5000問のうち、2509問だけは最適解と確認済）</p>
<p>【やったこと】 ※ちなみに、今回は評価関数を全く書いていませんｗ</p>
<p>1. 初期状態と、ゴール状態の双方から１手づつ展開<br />
　・パネルの状態を表す文字列がキー、経路が値のマップを作成しながら展開<br />
　・前方からの展開と、後方からの展開が一致すれば、経路をつないで回答とする<br />
　・この方法だと、メモリー使用量がネックになって、確実に解けるのは４０手どまりでした…<br />
　・ただ、それでも頑張ってまわせば1500問以上は解けていた気がします</p>
<p>2. 問題を分割（左端、上端偏）<br />
　・左端あるい上端から１列づつ埋めて、問題を小さくして、総当りできるサイズに削る戦略<br />
　・ただし、袋小路などが出来ないように、隣接ブロック数が１つ以下の部分は移動対象に追加<br />
　・移動の対象にならないブロックを「?」に置き換えてパネルの状態を圧縮<br />
　・ゴールは、「0」がどこにくるかわからないので、可能性がある分準備…<br />
　・１列全てだと移動できない場合、分割して移動するように処理を追加<br />
　・部分移動に成功した場合、移動済の部分は変更しない条件付きで経路探索を継続<br />
　・ここまで書けば4900問ぐらいまで解けた気がします</p>
<p>3. 問題を分割（上下左右端偏）<br />
　・下側、右側から埋めていくことを許容<br />
　・下側などから埋めると「0」の位置が問題になるので、予めゴールの「0」を移動させておく必要あり（後で、その移動に使った分を、経路に追加しておく）<br />
　・ここまで書くと4996問まで解けたと記憶しています</p>
<p>4. 残り４問を個別対応<br />
　・３問は、初期に移動するブロックを指定すれば解けました。<br />
　・１問は、ゴール状態を指定（＝「0」のずらし方を指定）でなんとか解けました。</p>
<p>5. この時点て３万ぐらいLRUDが足りなかったので…^^;<br />
　・初期に与える移動ブロックを２行とか３行にするなど、部分移動量を増加（ロングパス狙いｗ）<br />
　・初期ブロックの与え方を変えた２PGを実行し終わった時点で、8000ぐらい余裕ができて、無事ゴール♪</p>
<p>＃150点獲得後は、総当りのPGを改良して、最適解がいくつあるのか数えていました…<br />
＃Java7のFork/Joinをお試しに使ってみたので、性能評価したら公開したいかも…</p>
<p>【結論】<br />
力技でも、満点は取れる！ｗ</p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/archives/384/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DevQuizで150点満点達成♪</title>
		<link>http://amf48.develop.jp/archives/377</link>
		<comments>http://amf48.develop.jp/archives/377#comments</comments>
		<pubDate>Wed, 07 Sep 2011 10:07:25 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[devquiz]]></category>
		<category><![CDATA[gdd11jp]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=377</guid>
		<description><![CDATA[いろいろ試行錯誤の結果、なんとかスライドパズルを５０００問解いて DevQuiz (Google Developer Day 2011に参加するための問題)で、 満点の150点を達成！ いろいろ書きたいこともあるけど、提出期間の終わる、来週の月曜まで 自粛規制っと…。今は画像だけ貼っておきますｗ]]></description>
				<content:encoded><![CDATA[<p>いろいろ試行錯誤の結果、なんとかスライドパズルを５０００問解いて<br />
DevQuiz (Google Developer Day 2011に参加するための問題)で、<br />
満点の150点を達成！</p>
<p>いろいろ書きたいこともあるけど、提出期間の終わる、来週の月曜まで<br />
自粛規制っと…。今は画像だけ貼っておきますｗ</p>
<p><a href="http://amf48.develop.jp/wp-content/uploads/2011/09/DevQuiz2011.png"><img src="http://amf48.develop.jp/wp-content/uploads/2011/09/DevQuiz2011.png" alt="FullMarks" title="DevQuiz2011" width="357" height="325" class="aligncenter size-full wp-image-378" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/archives/377/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
