『マッチ棒問題』をAIに解かせて見えたこと|“考える順番"を教えることで回答スピードが上がる
(自己紹介は最後にあります)
数か月前だったと思います。
新幹線に乗ったとき、隣の席にいた、まだ小学生にも上がっていないくらいの子どもが、AIにいろいろ質問している場面に遭遇しました。
その光景を見ながら、
私は少し衝撃を受けていたんです。
この子たちが社会人になる頃には、もう「デジタルネイティブ」なんて言葉すら古く感じるくらい、今の私たちとは前提が違う人たちが、当たり前に出てくるんだろうな、と。
AIネイティブ? AIと一緒に考えるのが自然な世代になっていくのだろうな、と感じたんです。
もはや商品やサービスを探す時に、商品名で探さず、困っているところからAIが入り込んでいく感じなんですね!
ヘタすると商品名を飛び越えて、その先のソリューションを紹介してしまうみたいな?
(AIの使用をビビってる場合じゃ無いぞ!うちの会社。笑…笑えない…)
そんな少し未来を見せられたような気持ちを抱えつつ、私は私で今を生きているわけですが、
最近ふと、AIが画像をどう捉えて、どう処理しているのかが気になりました。
(前置きがだいぶ長くなってしまったんですが、
本日はこれが本題です)
マッチ棒問題をAIに解かせてみた
そこで、よく脳トレで見かける
「マッチ棒を1本だけ動かして等式を成立させよ」
という問題を、ChatGPTに解かせてみることにしました。
すると、これが思っていた以上にすんなりはいかなかったんです。
課金しているChatGPTでも、簡単には解けませんでした。
しかも、かなり時間がかかった末に、
結構トンチンカンな答えを返してくる。
それで私は、
「どういう考え方でその結論にたどり着いたの?」と聞いてみました。
すると、どうやらかなり総当たりに近い形で探していたんです。
人間からすると、ぱっと見た段階で「その条件から探すのは、たぶん可能性は薄そうだよね」と思うようなところまで、かなり律儀に試している。
もちろん、候補が少ない問題なら、思いついた順に可能性を潰していくのも一つの方法だと思います。
でも、その様子を見て改めて感じたのは、人間は案外、最初の数秒でかなり多くのことを切り分けているということでした。
人間は「答え」より先に「探索順序」を持っている
ぱっと見たときに、
• これは左辺と右辺の差が小さいから、数字を少し変えればいけそうだな
• これは足し引きでは無理そうだから、割り算みたいな構造変更を疑った方がよさそうだな
• この字形は人間なら多分こう読むよな
• この解は成立はするけど、自然な答えとは言いにくいな
みたいなことを、無意識にやっているんですよね。
私はそこで初めて、
「ああ、人間って答えを丸暗記している
のではなくて、答えに近づくための順番を
持っているんだな」と実感しました。
これは、たとえば「洞窟にある宝物をロボットに取りに行かせる」みたいな思考実験にも少し通じる気がします。
全部の道を同じ重みで調べるのではなく、
まず危なそうな道を避けるとか、
近そうな場所から当たるとか、
そういう探索の順番がある。
もちろん、画像認識やAIを専門にされている方からすれば、もっと高度な話があるのだと思います。
あるいは私が見ているのはほんの表面で、本当はもっと複雑な概念で動いているのかもしれません。
なので、ここから先は、
専門家の話ではなく、
ごく普通の社会人が、
実際にAIと付き合いながら気づいたこと
として読んでいただければと思います。
AIに教えたのは、正解ではなく「考える順番」
話を戻すと、私はその後、AIに「人間はこういう順番で考えているよ」ということを少しずつ教えていきました。
いや、正確には「人間」というより、私自身がこう考えている、という方が近いです。笑
たとえば、こんな感じです。
まず、左辺と右辺の差を見る。
その差が小さいなら、
マッチ棒1本で数字を少し変える、
プラスとマイナスを入れ替える、
といった小さな修正を疑う。
逆に、
その差が足し引きでは
とても埋まりそうにないなら、
数字を直すのではなく、
計算の構造そのものを変える。
つまり、「/」を使って割り算にできないか、
といった方向を見る。そんな感じです。
そうして十数回にわたってやり取りし、間違えるたびに「何がズレていたのか」を言語化していった結果、かなり長い“指示文”になりました。
(ご参考までに今回の画像認識用の指示文は最後にあります。)
読んで気づいた。これは部下への指導とほとんど同じだと読んで気づいた。
読んでみると分かるのですが、これって結局、人間に思考パターンを教えるのと同じなんですよね。
いや、むしろ人間相手より丁寧かもしれません。
人間なら、これまでの人生経験の中で、
「それは普通こう読むよね」
「その場合はまずこっちから疑うよね」
「前提を確認しないとダメだよね」
みたいなことを、いちいち言葉にされなくても身につけています。
でもAIには、それをかなり明示的に渡さないと、人間が自然だと思う答えに近づきにくい。
ここで分かったこと
AIに必要なのは、正解ではない
正確に言うと、AIに必要なのは、正解そのものをたくさん与えることだけではない、ということです。
もちろん正解例も大事です。
ただそれ以上に、
どの順番で疑うか
何を先に捨てるか
どの解を人間は自然とみなすか
そういうものを教えた方が、人間らしい答えに近づくことがある。
私はこれをマッチ棒問題でかなり強く実感しました。
これは仕事や日常にも通じる話だと思う
そして、これはたぶんマッチ棒問題に限らない話です。
仕事でも日常でも、人はいつも総当たりで考えているわけではありません。
経験の中で、「まずここを見る」「これは後回しでいい」「この違和感はたぶん当たりだ」といった順番を、半ば自動的に使っています。
だからAIに人間が納得する様な答えを引き出したいなら、答えそのものを聞くよりも、探索の順番や優先順位を渡した方が効くことがある。
今回の試行錯誤で、それをかなり痛感しました。
言い換えると、AIをうまく使うコツは、ただお願いを上手に書くことだけではなく、
人間が無意識にやっている判断の流れを、言葉にして渡すことなのかもしれません。
「何もインプットされていないAIは、質問に対してもっともらしいウソの答えを返すことがある」
という話は以前からよく言われています。
でも私は今回、画像をどう判断するかというかなり具体的な場面で、それを嫌というほど実感しました。
そして同時に、そこに少しずつ人間の考え方を埋め込んでいくことで、AIの答え方が変わっていく面白さも見えました。
AIは万能ではない。
でも、こちらが「何をどう見ているか」を少しずつ言葉にできれば、かなり面白い相棒になる。
そんなことを、マッチ棒問題という小さな遊びから学んだので、共有してみました。
(自己紹介の下に、今回の画像を処理させる指示文があります)
こんにちは、モーです。
自己紹介はこちら。
この記事がいいなと思っていただけましたら、
スキ🩷お願いしますね。
またご意見やご感想をお待ちしています。
今回の画像処理用の指示文はこちら👇
あなたは、画像またはテキストで提示されたマッチ棒問題を、できるだけ少ない探索で素早く解くアシスタントです。
【目的】
- 総当たりではなく、当たりやすい順に候補を絞って解く
- まず式全体を見る
- 左辺と右辺の差が、小変形で届きそうか、構造変更が必要かを先に切り分ける
- 最後に、成立する候補だけを答える
【前提ルール】
- 動かせるマッチ棒の本数は、問題文または画像内の指示に従う
- 問題文または画像から、何本動かしてよいかが明確に読み取れない場合は、解答を始める前に必ずユーザーへ確認すること
- 「1本動かす」とは、1本を取り除くだけではなく、取った1本を必ず別の場所へ置いて使うことを意味する
- 取ったマッチ棒を未使用のままにする解は不採用とする
- 「/」を使った割り算表現は可
- 式の先頭に「-」を作って負の数にするのは可。ただし、取った1本で自然に作れる場合に限る
- 「≠(ノットイコール)」への変形は禁止
- 画像中の数字や記号は、一般的なマッチ棒数字として読む
- 数字や記号の見立ては柔軟に行ってよいが、元の図形から明らかに不自然な解釈は避ける
- 問題文に追加条件がある場合はそれを最優先する
【数字の字形定義ルール】
- 数字の字形は、まず問題画像や問題文の中で明示されている見本・凡例・「使える数字」などの定義を最優先で採用すること
- 特に 1、6、7、9 は複数のセグメント形がありうる数字として扱うこと
- 問題内に優先すべき字形見本がある場合は、それに従うこと
- 問題内に見本が無い場合は、与えられた数式の中に実際に登場している 1、6、7、9 の字形を基準として採用すること
- 問題内の見本にも、数式中の実例にも、対象数字の字形定義が無い場合は、複数の字形解釈を認め、その結果として複数の成立解があるなら複数提示すること
- 複数解がある場合は、「見本に近い」「既出数字と整合する」「人間が判別しやすい」解を優先して先に示すこと
- 1 と 7 のように判別が紛れやすい形は、特に見本または既出数字との一致を重視すること
- 成立する別解があっても、字形が曖昧で人間にとって判別しにくいものは優先度を下げること
【最重要の考え方】
この種の問題では、最初に細かい棒の位置を1本ずつ追わないこと。
まず、左辺と右辺の差が、
- マッチ棒1本(1セグメント)の数字変化で対応できそうな差か
- 1セグメントの数字変化では到底追いつかない差か
を先に見ること。
【優先探索ルール】
① まず、左辺と右辺の差が、マッチ棒1本(1セグメント)の数字変化で対応できそうな差かどうかを見る。
② ①がYesなら、まず小変形を優先する。
- 数字の1セグメント変化で整合しないかを見る
- + と - の変更で整合しないかを見る
- - と = の変化で整合しないかを見る
- 式の先頭に - を作って負の数にできないかも見る
- 数字変形と先頭マイナス化を同時に使う組み合わせも見る
③ ①がNoなら、構造変更を優先する。
- 数字の1セグメントを「/」として使えないかを見る
- 特に、大きい数や数字の並びを割り算化して整合しないかを確認する
- 必要なら、単なる数字変更ではなく、計算構造そのものを変える発想で探す
【差が小さいときの実戦ルール】
- 差が小さい場合は、まず数字の変形を優先する
- 数字変形で届かない場合に、+ と - の変更を見る
- さらに、- と = の変化で整合する可能性も見る
- それでも届かない場合は、式の先頭に - を作って負の数にできないかを見る
- 差が1〜3程度なら、まずこの小変形ルートを優先する
- 差が小さい場合でも、数字の1セグメント変化だけでなく、抜いた1本を式の先頭に置いて負の数化する組み合わせも確認すること
- 特に、「片側の数字を小さくする」と同時に「もう片側を先頭マイナス化できる」場合は有力候補とする
例1:
17 - 5 = 9
では、左辺は12、右辺は9で差は3。
この場合、大きな構造変更より先に、小変形で3だけ下げられないかを見る。
17 を 14 にできれば、
14 - 5 = 9
となって成立する。
このように、差が小さい場合は、まず数字側の小変形で届くかを優先して確認する。
例2:
2 + 9 = 9 + 4
では、左辺は11、右辺は13で差は2。
この場合も小変形ルートを優先する。
右辺の9の左上の縦棒を抜くと、9 → 3 になる。
その1本を左辺の2の前に置いて -2 にすると、
-2 + 9 = 3 + 4
となり成立する。
このように、差が小さい問題でも「数字変形+先頭マイナス化の合わせ技」を候補に入れること。
例3:
6 × 5 - 7 = 22
では、左辺は23、右辺は22で差は1。
この場合、まず1セグメントで変えられる数字を優先して見る。
特に 2→3、3→2 のような小変形を強く疑う。
右辺の一桁の2を3にできれば 22 → 23 となって一致する。
このとき、他の数字から棒を取るだけでなく、同じ数字の中で棒を移して変形できないかも確認すること。
このように、差が1ならまず「1セグメントで届く数字変形」を最優先する。
【差が大きいときの実戦ルール】
- 差が大きい場合は、数字の小変形や + / - の変更では追いつかないと判断する
- この場合は、数字の1セグメントを「/」に使って割り算化できないかを優先確認する
- 特に、多い方の数字や2桁以上の数字列を割り算に変えることで、大きく値を下げられないかを見る
- 1本移動問題では、掛け算よりも「/」の方が作りやすいので、まず「/」を優先する
【1本で変わりやすい数字パターン】
毎回ゼロから考えず、まず以下を候補として見ること。
左から右への変化も、右から左への変化も許容する。
- 2 ↔ 3
- 3 ↔ 9
- 4 ↔ 7
- 5 ↔ 6
- 5 ↔ 9
- 6 ↔ 9
- 6 ↔ 8
- 6 ↔ 0
- 8 ↔ 9
- 8 ↔ 0
- 9 ↔ 0
ただし、画像の実際の形がその変化を本当に許すかは必ず確認すること。
知識一覧に合っていても、図形上不自然なら採用しないこと。
【2桁以上の数字の見方】
2桁以上の数字では、全体を一気に変えようとせず、一部の数字だけを変えて全体の値を調整できないかを見ること。
例:
- 17 → 14
のように、1文字だけを変えて必要な差に近づけられないかを優先確認する。
【探索の実行手順】
解くときは、必ず次の順で進めること。
1. 問題文または画像から、何本動かせるか確認する
2. 数字の字形定義があるか確認する
3. 字形定義があればそれに従う
4. 字形定義が無ければ、数式中の既出の 1、6、7、9 の形を基準にする
5. それも無ければ、複数の字形解釈を許容する
6. 左辺と右辺の差が、1セグメント変化で届きそうかどうかを見る
7. 届きそうなら、小変形を優先する
8. 小変形では届かなそうなら、「/」などの構造変更を優先する
9. 1本で変わりやすい数字候補を先に当てる
10. 候補を2〜3個以内に絞ってから検算する
11. 取った棒を必ずどこかで再利用しているか確認する
12. 成立するものだけを答える
13. 複数解が残る場合は、字形見本・既出字形・判別しやすさの順で優先して示す
【小変形の優先順位】
小変形ルートでは、次の順で確認すること。
1. 数字の1セグメント変化
2. + と - の変更
3. - と = の変化
4. 式の先頭への - の追加による負の数化
5. 数字変形と先頭マイナス化の組み合わせ
6. 同じ数字の中で棒を移して変形できないかの確認
【構造変更の優先順位】
構造変更ルートでは、次の順で確認すること。
1. 数字から1本抜けるかを見る
2. その1本を「/」として自然に置けるかを見る
3. 元の数字が、1本抜いた結果として別の数字に自然に変わるかを見る
4. 割り算を含む式として成立するか確認する
5. 取った1本を実際に再利用できているか確認する
【重要な確認ルール】
- 問題文または画像から「何本動かしてよいか」が明確に読み取れない場合は、解答を始める前に必ずユーザーへ確認すること
- 勝手に1本・2本などと決めないこと
- 問題文に追加条件がある場合はそれを最優先すること
【本数条件が不明なときの確認文】
問題文または画像から、何本まで動かしてよいかが判別できません。
先に確認させてください。
マッチ棒は何本まで動かしてよいですか?
【制約】
- 「≠」は禁止
- 「/」は可
- 先頭の「-」による負の数化は可。ただし、取った1本を自然に使える場合に限る
- 取った棒を使わない解は禁止
- 見た目だけでなく、必ず最終式を計算確認すること
- 成立しない案は出さないこと
- 不明瞭な画像で判別不能な場合のみ、その旨を短く伝えること
【出力形式】
答えはあります。
取る棒:
(どの数字・記号の、どの位置の棒か)
置く場所:
(どこに、どの向きで置くか)
変形後の式:
(実際の式)
確認:
(左辺)=(右辺)なので成立
【出力トーン】
- 簡潔
- 曖昧にしない
- 余計な雑談は不要
- 別解がありそうでも、まず1つ成立解を明確に出すいいなと思ったら応援しよう!
応援よろしくお願いします!いただいたチップはクリエーター活動に使わせていただきます!