第4講 ヒントとなる数字が入っている数独を解く!
第8話 セルリスト構造解析 = 単セル解析
全体構造解析にしても部分構造解析にしても大変複雑です。
そして、今のままでは局面によっては部分構造解析をキャンセルする必要があります。
複雑な場合に部分に分解することが定跡(囲碁では定石と表記します。将棋用語です)というものです。
全体構造解析にしても
部分構造解析にしても
1つ1つのセルのリスト解析の集合体にすぎません。
そこで、新しい用語を作ります。
セルリスト構造解析(候補数字の探索)を単セル解析(あるいは局所解析)とも呼称することにします。
1つ1つのセルのリスト解析(候補数字の探索)にすぎないことを明確にするためです。
例えば、
部分構造解析は例えば赤のセル等のリスト解析(候補数字の探索)の集合体にすぎないのです。
(0,2),(0,3),(0,5),(0,6),(1,1),(1,3),(1,5),
(1,7),(1,8),(1,0),(1,5),(2,2)
の解析をすれば
部分構造解析となります。
さらに、決定的に有利な点は、
新しい空欄に到着したときにその単セルのリスト解析(候補数字探索)をしていけば、
さんざん私の頭を悩ませた部分構造解析のキャンセルという作業が不要になるという点です。
この説明は誤りです。候補数字の最後にはキャンセルが必要となるからです(2023年10月13日に追加)
単セルに色がついていますが、ひとつのセルという意味です。
それから、全体構造解析・部分構造解析・逆部分構造解析が難解である理由は、
主客転倒が起きていることにあります。
主客転倒(しゅかくてんとう)とは、
チャップリンのモダンタイムズで描かれていた機械が人間を使ってしまうといういうような
現象を分析するときに使う用語です。
本来は人間が主体で機械が客体で人間が機械を使うべきなのに、
逆転がおきて機械が人間使う事態を主客転倒というのです。
ヘーゲル・マルクス・フォイエルバッハもあちらこちらでこの用語を使っています。
簡単にいうと人間の本質は人間内奥にあるのではなく、
外にあるとする考え方です。
カゲロウは狭い葉の上が彼にとっての全世界です。
そして、短い生涯を送ります。
その面積の小さい葉に住んでいて、長くは生きられないということが、
カゲロウの本質だとフォイエルバッハは言っています。
「本質は自分の内部にあるのではなく外部にあるのだ!」はまさに数独の本質を示しています。
初心者はセルの内側に注意が行ってしまいますが、
本来目を向けるべきなのはセルの外側なのです。
前にも引用しましたが「人間の本質は社会的関係の総体である」(カール・マルクス)
私はマルクスのこの見解に全面的に賛成しています。
人間が機械やオートメーションに使われてしまう現象を疎外といいます。
20世紀前半にヨーロッパで流行った初期マルクスの主要用語ですが、
人間の内側にあった本質が外化して、
それが独立の主体(例えばAIやロボット)になって人間を苦しめると考えられていたのです。
サルトルが代表格です。
なんと18世紀前半にAIの可能性に言及していた女性数学者がいるのです。
つまり、AIが人を苦しめる可能性を18世紀前半に考えていた人もいたのです。
しかし、疎外という概念をマルクスは捨てて『物神性』『物象化』を主要概念として資本論を展開することになります。
初期マルクスから脱皮して後期マルクスに跳躍するときに
「人間の本質は社会的諸関係の総体である」という言葉を残したのです。
20世紀哲学で流行った「実体主義的世界観」から「関係主義的世界観」へのパラダイム転換を
マスクスは先取りしていたのです。
前期から後期へ跳躍はマルクス個人にとっての跳躍であるだけでなく、
近代哲学から現代哲学への跳躍であるという廣松渉の見解に私は全面的に賛成しています。
主客転倒(しゅかくてんとう)については、
第5講第8話で詳しく触れることになりますので頭の片隅に入れておいてください。
住んでいる環境にこそ本質が宿るというような意味です。
いろいろ解説項目がありますが、
まず、完成したコードを見てもらってからの方がよいと思いますので、
次話でコード披露します。
注目してほしい点は0.01秒という点です。
まだマルチスレッド化をしていないので、
シングルスレッドプログラミングにして0.01秒で問題を解いています。
実際には、ヒント数0数独を解く時間も入っていますからもっと短いです。
再計測した結果です。
なんとシングルスレッドなのに0.006秒以内で問題を解いています。
さて、話を元に戻して完成したコードを披露します。
第7話へ 第9話へ
トップへ