The Fool In The Valleyの雑記帳

-- 好奇心いっぱいのおじいちゃんが綴るよしなし事 --

箱入り娘を解く その0

chatGPTが注目を集めています。昨日は、開発元のOpenAIのCEOのSam Altman氏が来日し首相にもあったとかで世間も随分にぎやかです。
まだ初期の段階ですが、もっともらしい日本語の文を返してくれるだけではなく、プログラムも書いてくれるというのは興味があります。
試しに「ディレクトリの中のファイル名を更新日時順に書きだすプログラムをPythonで書いてください。」と問うと、間違いのないコードを書いてくれます。大したものです。使い方によっては結構役に立ちそうです。

それではとちょっと難しくして
「『箱入り娘』というパズルを解くプログラムをPythonで書いてください。」と投げかけると、
「以下は、『箱入り娘』というパズルを解くPythonのプログラムです。このプログラムは、幅優先探索(BFS)アルゴリズムを使用して、開始状態からゴール状態までの最短ルートを探索します。」と答えてきました。
「箱入り娘」というのは下のようなパズルなのですが、どうもそのことを正しく認識できていないようなので、

「『箱入り娘』というのはこういうパズルです。https://ja.wikipedia.org/wiki/%E7%AE%B1%E5%85%A5%E3%82%8A%E5%A8%98_(%E3%83%91%E3%82%BA%E3%83%AB)」と正すと、
「そうですね、箱入り娘とは、大きさが異なる3つの箱を使って、2つの小さな箱を同じ容量に分けるパズルです。ありがとうございます。上記の回答を修正します。」 と返してきて答えになっていません。
まあ、こんな大雑把な聞き方では答えは得られないのでしょう。

そんな質問をしてみたのは、2年前に『箱入り娘』を解くロボットを作ることを思いつきながら、
tfitv.com
一緒に購入した「ハノイの塔」のパズルを解く方に走っていまい、
tfitv.com
『箱入り娘』はそのままになっていたからです。
プログラミングはしばらく御無沙汰しているのですが、久しぶりに何か作りたくなってきて、そんなことなら自分で書くかという気になってきました。

解く方針としては、上のブログに書いたように、盤の状態の遷移を木構造で考え、それを幅優先で探索するのだろうと漠然と考えていましたが、chatGPTが幅優先探索(BFS)でと言ってくれているなら(笑)まずはその方向で考えてみるのも悪くないでしょう。

上手くいきそうであれば、「箱入り娘を解く その1」・・・と続けます。

⇒ 箱入り娘を解く その1