- hirokazu1020
- 28086
- 6
- 18
- 9
https://t.co/ZmjsHqamFn これについて1つ補足しておきますが、与えられた「解」の評価関数と、「解のクラスタ」に適した評価関数とは、必ずしも一致するとは限らないので、マラソンマッチにおいて評価関数が楽というのは、たぶん嘘じゃないかなと。。。
2013-12-27 02:03:28まぁ、前回のMM82なんかだと、解の評価値そのまま使って失敗している人が多分たくさんいたのだけれども(前半はペナルティだけを評価値として見たほうが良い)、大抵の場合はそのまま使っても有効な場合が多いと思うなぁ。
2013-12-27 02:05:32たとえばA~Zのアルファベットから、3つのアルファベットを選べという問題があったとします。ここで、アルファベットを1つだけ選んだ状態……これは「解」ではありませんが、すべての解から部分的に制限がかかっている解の集合であると見なせます。
2013-12-27 02:06:14評価関数と距離でなんか混同している人がいるっぽいので、適当な例を出そうなんかフィールドが与えられるから、トの字型のブロックを出来るだけ敷き詰める問題。 http://t.co/sSGJf806bP
2013-12-27 02:06:35これは、近傍の設定方法超大量にあるわけで。 たとえば、あんまり有効じゃなさそうだけど、この図のように、適当に3×3を選んで、そこに被っているブロックを取り除いて http://t.co/DiHbO1kOTM
2013-12-27 02:10:14再配置してみる、みたいな近傍の取り方とかあるわけですよ。良いかどうかは別問題ね。 http://t.co/h9C3xqpT5c
2013-12-27 02:10:40んで、こんな感じで解を作った時に、例えば以下の2つは、評価値は両方7だし、おそらく両方正解なのだけれども、今回の定義において、解同士が近いか、と言われたら、多分かなり遠いよね。 http://t.co/bPRbZbvqsu
2013-12-27 02:14:58ただまぁ、距離が近いところに同じ評価値7のものも存在するわけだ。たとえばここの赤と青を変えただけとか、今回の定義だと、むっちゃ距離近そうだよね。 http://t.co/CmY7BIZPuQ
2013-12-27 02:22:46んじゃ、今度は別の近傍の定義をしてみよう。ランダムに2つのブロックを選択し、除去。 http://t.co/ndoGtnZ1tl
2013-12-27 02:25:41その後、同じように再配置するような近傍の取り方をしてみるとしよう。 http://t.co/5a8qLA4L6U
2013-12-27 02:27:06やってること自体は、除去するブロックの選び方だけなんだけど、これで、さっきのと、「近い状態」「遠い状態」がそこそこ変わってるのが、イメージしてもらえると解ると思います。たとえば、「離れているの3つの向きが入れ替わった」とか「50*50の領域の中で、7*7の中のみ入れ替わった」とか
2013-12-27 02:29:08まぁそうなった時に、「どっちの探索空間の方が、解が纏まってるか?解に辿り着きやすいか?」ってのを考えるわけです。 近くを一気に動かして探索するべきなのか、それともばらばらにたくさん変えてみるべきなのか。
2013-12-27 02:31:44まぁこうなった時に、手法はいくつかあって、「両方組んで両方試してみる」というのが一番簡単。「どっちの方が良い」という根拠があれば、とりあえずそっちを優先してやってみる。って話です。
2013-12-27 02:33:51例えばこの2択を迫られたら、自分としては、「詰まり具合が十分担保された状態を端から伝搬させていきたい」という理由で、3*3の範囲で除去再配置、というのをまず選択します。「どういう風になるのが良いかな?」「どういう風にすれば良い解が固まるかな?」みたいなのを考えてあげましょう。
2013-12-27 02:34:35まぁ経験則として、「ランダムに2つ変える」というのは論外で、それをやるならほぼ「ランダムに1つ変える」の方が良いと思っていて、それだと嵌るパターンが出るので、やっぱりこの方針は微妙なんじゃないのかな?固まって変えないとだめじゃないのかな?みたいな思考の流れになるかな。
2013-12-27 02:35:44だからまぁ、こういう問題に関しては、ほんとに「どういうところに良い解があるか?」ってのを自分でイメージして考えてあげないといけないので、常に使える一般的なテクニック、ってのは、ある程度感覚としてはあるところもあるけど、やっぱ毎回考えてあげるしかないんじゃないのかなぁ、と思ってます
2013-12-27 02:36:53