2012-01-08

情報悪魔説

人間界では、ノイズが増幅される現象を「増すゴミ」と呼ぶそうな。もっとも、俗世間では濁らずに「マスコミ」とスマートに呼ばれる。その特徴は、言論の自由を大声で叫びながら、他人の意見を迫害する。そして、なによりも正直者である。けしてデマを流すわけではなく、些細な事実を思いっきり盛り上げ、重大な事実をささやかに報じる。よって、彼らの情報操作は超一流だ!おまけに、クラブとやらを形成しながら、強き者に媚を売り、弱き者をくじく。したがって、落ち目の政治屋は徹底的に叩かれる運命にある。ちなみに、アル中ハイマーも夜のクラブ活動に余念が無い。
...アル中ハイマー著「情報屋理論」より抜粋。

俗世間の圧倒的多数は、残念ながらアル中ハイマーのようなあまり思考しない人々であろう。人間は基本的に面倒で厄介な事を嫌う傾向がある。これだけ情報インフラが発達しながら、いまだにテレビの影響力が強いのは、人間の受動的な性質によるところが大きい。ちなみに、放送とは「送りっ放し」と書く。
情報社会では、情報の質の微妙な差が結果に大きく影響を与える。そして、情報手段が巧妙化し、その手段が目的と化す。大護送船団を形成する大新聞たちが最も洗脳性が高いのは、太平洋戦争時代と大して変わらない。いや、大本営の乱立はむしろ質ちが悪いか。民衆が従来のマスメディアに幻滅し、ソーシャルメディアに走るのも無理はない。だが、そこにも多くのノイズが紛れる。混乱をきたす情報は、欺瞞を目的としたものだけでなく、善意からも生じる。勘違いや誤謬からも偽情報が拡散される。実際、大震災時にかなりのスパムやチェーンメールが出回った。ウォルター・リップマンは、著書「世論」の中で「ジャーナリズムの本質は人間の理性に頼るしかない。」と悲観的に締めくくった。ステレオタイプという現象は人間社会の本質なのかもしれない。かつて情報は、君主制をはじめとする政府側の所有物であった。そして今、民主化が進む中で皮肉にも情報屋の所有物と化す。
ただ、そんな悲観的な状況にあっても言えることがある。それは、情報屋に支配された情報社会を市民が奪い返そうとしていることである。実際、北アフリカや中東で起こった民主化運動は、ソーシャルメディアが引き金となった。肥大していくソーシャルメディアが隠蔽情報を露呈させ、情報の民主化を加速させるだろう。そして、情報発信者が庶民化し、地位や名声といったものに意味がなくなるだろう。ソーシャルメディアは、従来の価値観を破壊するかもしれない。その最終的な目標は、旧体制の破壊であろうか?ただし、人類はむかーしから新しいものに過大な期待をかけてきたけど...

1. 情報量と冒険心
情報社会が高度化すれば、それだけ情報量が増え知識も増えるのだから、賢くなってもよさそうなものである。有識者どもは、世界へ飛び出し、多くを見よ!と助言する。確かに、多くを見聞し、多くを経験することは大切である。旅をすることで、新たな境地を開き、新たな価値観を覚醒させることもあろう。だからといって、現代人が古代人よりも精神が成熟していると言えるのか?古代人よりも知性や理性が優れていると言えるのか?古代よりも、移動手段が豊かになり、情報手段も豊富になったにもかかわらずだ。おまけに寿命まで延びている。ソクラテスの「善く生きる」よりも優れた政治哲学を披露した政治家を、いまだ知らない。アメリカのある大学では、押し寄せる留学生たちの盗作論文に悩まされていると聞く。情報が溢れれば、思考する必要がなくなり、猿真似でも通用するとは、これいかに?冒険の経験から新たな境地を見出せなければ、それは単なる経過に過ぎない...などとアル中ハイマーな貧乏人は僻みを言う。
一方で、建築家ガウディはバルセロナというただ一つの地に留まり作品を集中させた。世界をかけめぐることなく世界を一転させたところに凄みがある。中途半端に世界を知るぐらいなら、足元を徹底的に探求した方が得られるものがあると言わんばかりに。近代社会が生産性を高めてきたのは認めよう。おかげで便利な社会になった。だが、創造性や独創性は孤独より生じ、芸術心は孤独を求める。孤独から思考を発展させる過程は、本質的に変わらないはずだ。

2. 高度な社会と精神の試練
人間社会では、伝統的に社会情勢の変動を察知するために、情報の分析能力が問われてきた。かつて情報を得ることが難しい時代には、情勢の些細な変化を見逃さないために微分的思考が要求された。そして今、瞬時の変化よりも、ノイズに惑わされないために積分的思考が求めれる。
絶え間ない情報の山積が忙殺に追い込み、思考する隙間すら与えず精神を麻痺させる。しかし、自然のリズムは、精神が意図した切れ目切れ目の無音状態を欲する。もし、精神が意図する間もなければ、必然的に絶望という無音状態が訪れる。それはあまりにも静かな状態で、思考すること自体を鬱陶しくさせ、生きる渇望をも失わせる。なぜなら、どん底を知る者のみが生の全貌を知ることができ、死と正面から対峙するようになるからである。芸術的天才たちは、こうした無音状態の反動を利用して、精神を高めるのであろう。そして、思考の深さを測るために、孤独の殻に籠もる。騒がしい社会になるほど孤独愛好家が増えるのも道理というものか。
仲間意識を高めるには、情報の共有ほど効果的なものはない。だが、芸術精神は馴れ合いからは、けして生じない。情報を処理することと、思考することはまったく違うのだ。高度な社会では、生きる者に高度な要求を課す。実体がはっきりと認識できた時代では、感覚的に生きてもなんとかなった。だが、仮想化が進むと、実体がつかめないだけに生き方も難しくなる。そして、しっかり個人を持ち、哲学的思考を持ち、感性を磨きながら直観を信じて生きていくしかあるまい。見識のある専門家の固定化した思考よりも、純粋なガキの直観の方が想像は、はるかに拡がるはずだ。なんにでもなぜ?と喰いつくガキは、最も素朴な哲学者なのだから。

3. 利便性の悪魔と依存症
インターネット接続を権利としている国も珍しくない。基本的人権に崇めている国までもある。確かに、技術は権利を獲得するための手段である。しかし、特定の技術すなわち手段を崇めれば、いずれ誤ったものを尊重するようになろう。なにも、ネット社会が特別に高度な社会というわけではない。社会の一形態であって、社会問題の性格は根本的に変わらない。いくら科学や技術が進歩しようとも、人間精神は置き去りにされたままだ。したがって、特に崇める必要もなければ、特に蔑む必要もない。
新技術に馴染めないオヤジたちが難癖をつけるのも、人間社会の伝統である。一方で、ネット情報を「大衆の叡智」と崇める風潮がある。だが、それも怪しい。真理が多数決に支配されると悲劇だ。いや喜劇か。現実にウィキペディア崇拝者は少なくない。情報の利便性は、エセ情報を拡散させやすく犯罪行為を助長させる。情報の利便性は、思考することよりも検索することに目を奪われ、目的よりも手段を優先させる。ネットに疑問を投げれば、即座に誰かが80点ぐらいの回答をしてくれる。実際、学生が宿題を投げているのを見かける。こうなると、教育の場も宿題の概念を見直す必要があろう。そもそも日本の教育は、思考することよりも生産性を重視してきた。そして、暗記能力が試されてきた。疑問は思考の原点であるはずなのに、わざわざその機会を奪ってどうする。なるほど、思考しない方が幸せというわけか。
社会では、過程をまったく無視して結果だけに目を奪われる風潮がある。ほとんど占い師の思考だ。すぐに結論に飛びつく癖がつくと、ちょっとした想定外にも対処できなくなる。現実に直面する問題には、ほとんどのケースで一般解が存在しない。答えは自分でその場で導くしかない。思考の過程を放棄すれば、情報依存性になるだろう。なるほど、依存できるものがあるだけ幸せというものか。
思考を放棄して情報に振り回されれば、世間は鬱陶しい存在となろう。そして、社会嫌いになり人間嫌いになる。こうして、無理性なアル中ハイマー病患者はアルコール依存症になったとさ。

4. IT系コンサルたちの脅迫観念
高度な情報社会では、情報の優位性を失わせ均衡しそうなものだが、実際には情報格差を助長する。かつて情報は一方的に流されたが、今では情報選択も容易になり、意欲的な個人が知恵として蓄えていく。情報が氾濫すれば、有益な情報を得ることも難しくなり、情報に対する嗅覚という新たな能力が要求される。そして、情報能力は認識格差となる。逆に言えば、認識の立ち遅れを指摘さえすれば、扇動もしやすいわけだ。
利便性の背後には、セキュリティ対策に無防備な人々を蔑む風潮が現れ、自己責任という社会意識が強迫観念にまで高められる。そして、セキュリティ業界が不況になれば、自らウィルスもどきもをばら撒けば存在感を強調することもできる。通信業界の横暴も目立つ。通信サービスは、課金される方向に誘導され、面倒くさがり屋の年寄りが餌食となる。通信契約込みで、iPadなどの端末を無料で配るという誘惑は、しっかりと高額な通信費が請求される仕組みになっている。外部通信を遮断してWiFi端末化しておけば、元はとれそうだけど...ゴホゴホ!いずれにせよ、知らないユーザがボラれる構図は変わらない。
ITコンサルたちは、フォローされなければ意味がないとか、上位にランクされなければ存在すらしないなどと脅しやがる。コンサルを「混乱させる猿」と誰が言ったかは知らん。いや、「混乱する猿」だっけ?
しかし、日記という文化はネットのない古き時代からあった。誰に見せるわけでもなく、誰に読まれるわけでもなく、ひたすら自己満足に浸る世界だ。自己啓発のために書く人もいるだろう。注目数にこだわる、つながりにこだわる、精度にこだわる、完成度にこだわる、はたまた愚痴のはけ口にする、これすべて自己満足の世界である。そぅ、人間は自己満足の世界を生きることぐらいしかできないのだ。匠たちは、自己満足のレベルを最高度に求めるように自らに課すことのできる、純粋な知性の追求者と言うことができようか。
仮想化社会は、友人の概念までも変えつつある。いまや顔を知らない仲間が大量に創出される。フォロー数で友人の数を競い、フォローがなければ孤独に苛む。しかし、人生において、たった一人の親友を得ることが、どれほど難しいことか。少数の強い結びつきは、多数の弱い結びつきで補われる。なるほど、エネルギー保存則としては等価というわけか。都合が悪くなれば、さっさと縁(線)を切ればいい。もともと無線か。人間嫌いには、実に都合のいい社会である。

5. ヤラセの専売特許は誰のもの?
原発事故後、某電力会社の原発世論を誘導するヤラセ問題が明るみになると、大手マスコミはこぞって大批判を展開した。確かに、けしからん!だが、ヤラセという手法は、昔から積み重ねてきたマスコミや企業広告の得意技である。ネットの売れ筋やオススメといった統計情報も怪しいもんだ。なるほど、報道屋は自分の専売特許を侵害されたことに憤慨しているのか。
大手マスコミは、自分に向けられる批判を最小限にしか報じない。いや、もみ消す。あるいは、現在進行中の民衆にとって不都合な情報を知りながら、ずっと後になってから知らなかった振りをして大批判キャンペーンを展開する。なにも真相が週刊誌やネットなど他のメディアにリークすることは驚くに値しない。それが彼らなりの正義なのだから。そもそも、民主主義の根幹的手段となっている選挙がヤラセではないか。テレビが政治屋たちの選挙運動に協力しているではないか。

2012-01-01

人間悪魔説

親鸞曰く、「善人なほもて往生をとぐ、いわんや悪人をや」

所詮、人間ってやつは誰もがゲスでね。大金を前にすれば目が眩む。保身のためならなんでもやる。人間ってやつは思ったより善ではない。だが、思ったより悪でもない。自己の存在に罪を認めるような人でなければ、理性なるものは獲得できないのかもしれん。となれば、社会を理性へ導くはずの政治屋どもが、悪徳を尽くすのも道理というものよ。
悪の力は善の力よりも強い。どんなに物が満たされようとも、どんなに知が満たされようとも、自己満足は一瞬のうちに過ぎ去り、精神ってやつはけして満たされることはない。人の世とは、まるで狂気の沙汰よ!精神が空想へ向かえば欲望は無限となり、実体なきものは真に実体なきものへ回帰する。
しかし、精神の天才たちは欲望を匠へと向ける。修羅の妄執がごとく自らを芸術の域へ導く。永遠に到達できないことを覚悟しながら、孤独を怖れる様子もない。これが微分学の美学というものか。人間というものは、理論よりも本能が優先する。本能を潰してまで正論を導くなら悪魔の眼が必要となる。故に、芸術的天才たちは概して狂人となろう。
善人は気楽なものだ。相互関係に安眠しながら、社会制度に安住しながら、平然と死んでいく。人間ってやつは官僚体質に陥りやすい。権威主義に陥りやすい。政治も、役所も、企業も、そして、個人も。常に防衛本能が働き、安住したい、楽をしたい、という衝動が働く。避けられない現実には目を背け、保留の思考が働く。これが悪魔の思考ってやつだ。よって、常に思考の検証が必要となる。それは死ぬ瞬間まで続く。そう運命づけられているだけのことよ。
一旦、悪徳を了解しちまえば、悪魔はいつでもハーデスの門から誘惑してくる。その証拠に、夜の社交場の門をくぐれば、自己陶酔者は小悪魔にイチコロよ。ちなみに、医学には「疾病失認」という用語があるという。自分が病気だと気づいていない状況を指すのだそうな。まさに悪魔は、脳の中に亡霊のごとく隠れ住む。
...アル中ハイマー著「自我失認論」、序説「ハーデスからの使者」より抜粋。

「狂ったこの世で狂うなら気は確かだ。」...シェイクスピア「リア王」より。

「正義」という言葉に照れくささを感じるのは、自我に悪魔が住み着いた証しであろうか。おろらく潜在的には、自分のことは自分が一番よく分かっているのだろう。厄介なのは、自己は都合の悪いことから目を背ける習性があることだ。けして悪性を認めようとしない。それは、自己の存在そのものを否定することになるからである。知り尽くしていれば、欺瞞するポイントもよく心得ている。そして、自己に盲目となる運命からは逃れられない。元FBI捜査官クレオン・スクーセンは、どんな凶悪な犯罪者も自分が悪いとはけして思わないと語った。どんな悪事も何かのせいにすることができる。ある時は生い立ちのせいに、ある時は社会のせいに、何事も正当化しながら自己完結させるのは容易い。自己が自己を冷静に観察できないのであれば精神の合理性を欠く。精神は永遠に自己評価できないだろう。自分が愚かだと薄々気づきながら、それを悟るのは精神にとって最も難しい試練である。そして、自己を欺きながら、傲慢に振舞うことが自己の存在を確認する手段と化す。俗世間の泥酔者に自己犠牲など無縁というわけだ。
人間が悪魔へ邁進するとなれば、腐敗した文明を一旦リセットすることが、氷河期の役目であろうか?神にもチャラにしたいものがあるらしい。そこで実践的方法として、自我は第三者の指摘を必要とする。だが、他人からの指摘にも欺瞞が紛れ込む。結局、何を信じていいのか分からず、精神は意志の強さと頑固さの狭間で揺れ動く。精神に憎悪の性質があるのは、自我投影に対する恐怖心の裏返しであろうか?だとすると、悪魔が真理を悟れば自ら命を絶つしかあるまい。自殺とは悪魔を退治することなのか?天才たちはそれを悟ったというのか?
人間は、自然界において存在する。にもかかわらず、「自然」に対して「人工」という言葉を編み出したのは、人間が無意識に悪魔を自覚しているからであろうか?人工物が愚行の記念碑に過ぎないことに気づいているからであろうか?自我の征服は、自然の征服と同じぐらい難しい。いずれ自然界が、自我も悟れない悪魔を抹殺するだろう。ちなみに、天文学では、月の軌道は地球から徐々に遠ざかっているという。人類のツキもだんだん遠ざかっているのかもしれん。

1. 悪魔どもの忘年会
忘年会とは、その年の苦労や失態をきれいサッパリ忘れましょうという美しい会である。なのに、忘年会での失態は、いつまでも忘れてくれない。もう十年にもなるというのに。武勇伝は永遠に語り継がれるというのか?せっかく理性ある酔っ払いを演じてきたのに、そりゃ、悪魔にもなろうというものよ!よって、忘年会とは、その瞬間をけして忘れない!遺恨を引きずる醜い会なのであった。

2. 悪魔進化論
生きた化石と呼ばれる生物は、地球の究極の環境変化による大量絶滅の時代を幾度となく生き延びてきた。それは、これ以上進化する必要がないという究極の自己満足を獲得した結果であろうか?人類は、生きた化石の生命領域を侵してまで、進化しようとしている。これは悪魔への進化か?だが、生きた化石と呼ばれる生物たちのようには、大量絶滅の時代を生き残ることはできないだろう。
「商売は儲けすぎてはならない、欲を持ちすぎてはならない」という価値観は、既にシルクロードの東西交易で活躍したソグド人の時代に記録として残されるという。だが、人類は三千年もの古い価値観といまだに対峙している。歳を重ねたからといって、物分かりが良くなり、他人のことを考え、欲望がおさまるとは到底思えない。むしろ、確実にあさましくなっている。人間社会には最も功利的な毒々しい計算がつくされる。他人から許されたいがために、他人を許そうとするなど、子供同士の馴れ合いのような道徳律がまかり通る。はたして人間精神は成長しているのか?草食系人種は絶滅してきたのか?あるいは自殺してきたのか?エントロピー増大の法則とは、悪魔への片道切符を意味しているのか?
巨大な富を獲得した成功者が、突如として巨額の寄付をしたり慈善団体を設立したりする。散々周囲を蹴飛ばしておきながら慈善家を気取る。こうした行為は、過去への償いであろうか?欲望の限りを尽くした時に、理性なるものが見えてくるというのか?となると、大人たちはますますモンスター化するしかあるまい。なるほど、歳を重ねれば、足が臭くなり、口が臭くなり、酒の席で醜態を演じながら、精神が腐っていくのを感じる。

3. 悪魔のセールスマン
社会には、人類愛や博愛を叫ぶヒューマニストたちがいる。人間を自然の姿で愛する者、人間を教説で導かないと気が済まない者。はたまた、同意を得て救済しようとする者、意に反しても救済しようとする者。おまけに、生を愛する者、死を愛する者などなど。ヒューマニストたちは互いにいがみ合う。それは、個人としてであって人間としてではない。彼らは等しく有識者と呼ばれる。ヒューマニストたちが、癒し系の言葉で感傷に浸りながら、人間中心主義を生み出すとは皮肉だ。その典型が友愛型政治屋で、正義のセールスマンを自負する。彼らは隣人愛や友愛を善とし、なにびとも愛せよ!と叫ぶ。なのに、浮気だけが特別に軽蔑されるのはなぜか?そこに性行為を伴うからか?いや、教祖様はなにびとも肉体的に愛するではないか。聖職者とは、生殖者か?性色者か?なるほど、政界を裏で牛耳ったとされるラスプーチンと同じ遺伝子を受け継いでいるようだ。ダンテは「地獄への道は善意で舗装されている」と言ったとか言わなかったとか。悪魔ほど善人づらをしているものだ。
ところで、正義とは何か?悪をやっつける奴が正義だと定義すれば、悪が存在しなければ正義は成り立たない。そして、正義が存在しなければ悪魔も成り立たない。互いに存在を助け合うわけか。したがって、宗教家や有識者どもが、悪魔のセールスマンとなって正義を演じるのも道理というものである。なるほど、神の代理人と称する人間がわんさといるわけだ。

4. 悪魔の自己増殖
人類は、精神を獲得した自己を崇め、それ以外の動物をケモノやケダモノと呼んで蔑む。だが、人間は獣を食して生き長らえている。そぅ、自ら蔑んだ無能な生き物たちによって身体を形成しているのだ。ならば、人間自身を獣の類いと蔑んでも不思議はあるまい。どうして脂ぎった欲望を捨てられようかと。だからといって、いまさら植物だけを食しても無駄だ。どうせ遺伝子からは逃れられない。ちなみに、ヒトラーは菜食主義を宣言した後に大悲劇を実施した。
動物や植物は自然との関係から数が抑制されるが、人間のみが数に制限を与えない。日夜、不老長寿を願い、永遠の生命までも欲する。健康ブームはいつの時代も大盛況だ。おまけに、少子化問題を大声で叫び、些細な人口減少を民族滅亡かのようにはしゃぐ。わざわざ少子化担当大臣という女性用ポストを設けることに、なぜフェミニストたちは目くじらを立てないのか?世帯を持つことを奨励し、いや、持たないと自立できない者と蔑み強迫観念を押し付ける。子供を産んだ女性は、勝ち誇ったように独身女性を見下す。大人たちは若年層のひきこもりや働く意欲を見せないことを嘆くが、現実に若年層の求人率が低いままというのをどう説明するのか?おまけに、定年延長で職場を圧迫すれば、自発的失業者をますます必要とする。
一方で、情報化が進み、債券や物価などあらゆる価値が柔軟に変動する時代に、労働賃金だけが今なお硬直化したままだ。現実に、社会保障を自ら放棄する非正規労働者の存在が経済に柔軟性をもたせている。なのに硬直化した正規労働者の方が大きな顔をするとはどういうわけか?人口増殖が産業を枯渇させ、社会を困窮に追い込んでいる。人類はいまだ、人口を抑制する術を戦争か疫病ぐらいしか知らない。住みにくい社会ともなれば、草食系と呼ばれる人種が現れる。これは古くからある社会現象で、いつの時代にも、社会の様を嘆き、政治の様を嘆き、学問に救済を求めてきた人々がいた。少なくとも、バブルの脂ぎった時代に出世した連中よりも、就職難で苦しむ若者たちの方が、物事を深く考えているだろう。
はたして、人口を増加させようとすることが理性的な思考なのか?はたまた、人口を抑制しようとすることが理性的な思考なのか?俗世間の泥酔者にはさっぱり分からん。ただ、理性があるとされ、有識者と呼ばれるほとんどの輩が少子化問題を口にする。長寿大国日本!それは最も欲望を享受している国ということではないのか?伝統的に「今の若い奴は...」と説教されてきた。今では「今の年寄りは...」とつぶやかれる(tweetされる)。

5. 悪魔の政治
国家の在り様には、根源的に二つの思考がある。一つは、人間は生まれながらにして善人であるとする考え、二つは、人間は生まれながらにして悪人であるとする考え。前者は、人々に自由裁量を求めた挙句、無法な振る舞いが横行する。後者は、規制で縛りつけた挙句、堅苦しい世の中となる。どちらも、思考が悪知恵へと進化し、重苦しい世の中になるのは同じか。精神を獲得した知的生命体は、生まれた時から思惟するように宿命づけられる。そして、より生活を楽にしようとし、より幸せになろうとし、多くの道具を編み出しながら生産性を高めてきた。生産を余儀なくされてきたのは、消費の裏返しであり、欲望の顕れである。歴史を振り返れば、多くの種族が困窮と飢餓によって死滅し、同時に強力で貪欲な種族が弱肉強食という競争原理を生き残ってきた。そして今、ほんの一握りの強力で貪欲な経済人たちが富裕層を形成している。なぁーに、支配層が君主から経済人に移っただけのことよ。
人類の経済政策は、いまだ消費拡大と人口増加を煽ることしか知らない。しばしば偉大な才能が過ちに利用され、その能力の程度に人類の負の遺産を生みだしてきた。そこには、君主の暴走や官僚的腐敗など、必ず政治との結びつきがある。いまや、政治が必然的存在なのかも疑わしい。社会人類学者レヴィ=ストロースは、原始文化の研究において「首長の政治力は、共同体の必要から生まれたものではないように思われる」と語った。ニーチェ風に言えば、余計な人々というわけだ。政治屋は政界だけに存在するのではない。集団社会の存在するあらゆるところに寄生する。比較的ましな世の中にしたければ、才能豊かな人々の創造力に委ねて、凡人が邪魔をしないことだ。だが、凡人ほど知識で武装して、存在感を強調する。乏しい能力ほど他人に認めさせようという欲望が働く。これが政治屋気質というもので、ここに人間社会の矛盾の根源がある。
政治の歴史を眺めれば、純粋な観念の持ち主が決定的な役割を演ずることは稀である。18, 19世紀には独裁制の醜態を曝け出し、20, 21世紀には民主制の醜態を曝け出す。どんな政治体制もいずれ腐り果てるであろう。では、人類が次に改良した政治体制を獲得するのは何百年先であろうか?既に、人類滅亡へのカウントダウンが始まっているのかもしれない。いずれにせよ、自然法則に逆らう現象は葬られるであろう。政治には絶えず毒を以て毒を制すの原理が働く。

2011-12-25

"ユークリッド原論 縮刷版" ユークリッド 著

人類の遺産で最も厳密性を極めた書と言われ、二千年以上も読み継がれるロングセラー振りは聖書に劣らない。ただ、この幾何学の基礎の基礎を義務教育から慣れ親しんできたというのに、いまだ原典的なものに触れたことがない。バイブル的存在としてあまりに早く知ってしまうと、逆に当たり前という意識が定着して疎かになることがある。生涯で一度は、この古典に触れてみたい。

「原論」の最高の意義は、その論法にあろう。自明であって証明の要なしという宣言は、まさに直観の偉大さを示してる。それは、定義、公準、公理で始まる論理スタイルが物語っており、人間能力の限界ひいては言語論の限界を唱えているように映る。また、あらゆる命題とその証明の後で「これが証明すべきことであった(Q.E.D.)」と締めくくる叙述方法は、今では哲学でお馴染みだが、定理の普遍性を強調している。こうした特徴は、ある意味宗教的ですらあるが、確実に宗教と一線を画す。幾何学とは、人間認識の立体的感覚、すなわち精神空間から生じた真理の学問とすることができよう。数学とは言語である。そして純粋な精神の手段である。それを実感させてくれる一冊である。
尚、本書は、共立出版(1996年)から刊行された「縮刷版」である。既に絶版となっているので図書館を利用した。だが、とても貸出期限2週間で読破できる代物ではない。一度は延長させてもらったが、二度となると顰蹙であろうか。てなわけで、アル中ハイマーな能力では斜め読みするぐらいしかできない。おっと、いつのまにか「追補版」が刊行されている。ちと高いが、衝動は抑えられそうにない。

「原論」と言えば、幾何学の集大成という印象がある。その通りであろうが、歴史的には代数的に解釈されてきた部分もある。驚くべきは、全13巻のうちのほぼ半分が無理量を扱うことに費やされることだ。代数的手段をまったく持たない古代ギリシャ数学において、これは由々しき問題である。そこで、数論を導入しながら、量の大小関係から比や比例関係を扱い、更に相似形によって相対的に無理数を説明する。幾何学のみで説明しようとすれば、そうするしかないのかもしれん。近代数学においても、多くの微分方程式が解けない事情から、大小関係から近似的に迫る方法が盛んに行われる。ε-δ論法はその最たるものだろう。そぅ、アル中ハイマーを数学の落ちこぼれにしやがった、あの忌々しいやつだ。得体の知れない対象に迫るには、既に分かっている量と比較しながら近づいていく。これが相対的認識能力しか持てない知的生命体の典型的な思考方法、あるいは合理性なのかもしれない。
無理量を大々的に扱っている第10巻は、なんと全体の1/3を占める。そして、二項線分、余線分、優線分、劣線分とかいう奇妙な言い回しで、無理線分なるものを定義している。そもそも、こんな量を扱う目的とは何か?それは、プラトン立体の正体を暴くための布石であろうか?古代ギリシャにおいて、プラトン立体の存在は哲学的にも大きな意義を持っていたに違いない。「原論」の目的とは、ピュタゴラスの定理とその拡張からプラトン立体に至るまでの道しるべ、すなわち、プラトン宇宙の体系化と解釈するのは行き過ぎであろうか?そう思えるのは、最後の第13巻が正多面体論で締めくくられるからである。
また、議論が盛り上がると、背理法的に命題が組み立てられる。もともと帰謬法と呼ばれた思考方法である。矛盾を仮定しながら、自ら解決するといった記述も目立つ。対話的でもある。当時、弁証法的思考から背理法的思考を進化させたのかもしれない。ユークリッドは、哲学と数学の境界線を明確にしようとしたのだろうか?
「原論」は、厳密性を重視した思考の方法論であるがために、読み辛い書となるのは避けられない。おまけに代数的な記号がまったくないので、プラトン立体が幾何学のみで表現されるのはなかなかの見物だ!ゲーテ曰く、「制約の中にのみ、巨匠の技が露になる。」
それにしてもプラトン立体が二重根号に帰着するとは...知っていたとはいえ、最後の最後に溜息しかでん!

[ 第1巻: 三角形と平行線、ピュタゴラスの定理 ]
三角形の合同条件や平行線の性質が綴られ、ピュタゴラスの定理に辿り着く。その定理が示す直角三角形の性質が知られたのは、「原論」よりもはるかに古く、古代バビロニアや古代中国においてである。だが、証明によって完全なる定理としたのは古代ギリシャであった。それは「ギリシャ人の奇蹟」と言われるそうな。
まず、23個の定義が唐突に始まり、次にあの有名な5つの公準が続く。
  1. 任意の点から任意の点へ直線をひくこと。
  2. および有限直線を連続して一直線に延長すること。
  3. および任意の点と距離(半径)とをもって円を描くこと。
  4. およびすべての直角は互いに等しいこと。
  5. および1直線が2直線に交わり同じ側の内角の和を2直角より小さくするならば、この2直線は限りなく延長されると2直角より小さい角のある側において交わること。
第五公準は平行線公準として知られ、これだけが明らかに異質である。古くから、第五公準は公理ではないかという意見があり、証明の必要性を唱える批判がある。ここに、非ユークリッド空間の可能性を示唆していたと想像するのは、考え過ぎだろうか?まさに、非ユークリッド空間の存在は第五公準の崩壊によって証明されたのだから。

早々、あの「ロバの橋」の証明が登場する。中世の大学生がつまずくことから、落ちこぼれには渡れないと皮肉られるやつだ。

「命題5: 二等辺三角形の底辺の上にある角は互いに等しく、等しい辺が延長されるとき、底辺の下の角は互いに等しいであろう。」

[ 第2巻: 幾何学的代数 ]
「定義2: いかなる平行四辺形においてもその対角線をはさむ平行四辺形のどれか一つは二つの補形と合わせてグノーモーンとよばれるとせよ。」

グノーモーンってなんじゃ?日時計が作る影と棒の関係のようなL字型の図形を言うようだ。
数論では、奇数の和を平方数で表すようなことをする。
 Σ(2k -1) = n^2
あるいは三乗和の公式のようなものもある。
 1^3 + 2^3 + ... + n^3 = (1 + 2 + ... + n)^2
これらはグノーモーンの考えから示される。すべての数は、縦・横の面積で説明がつき、すなわちグノーモーンに通ずというわけか。
ところで、第2巻の命題はすべて代数的な表現に対応するというから凄い!その内容を訳注に従って書き出すとこんな感じ。

 命題1: a(b + c + d + ...) = ab + ac + ad + ...
 命題2: (a + b)a + (a + b)b = (a + b)^2
 命題3: (a + b)a = a^2 + ab
 命題4: (a + b)^2 = a^2 + b^2 + 2ab
 命題5: ab + {(a + b)/2 - b}^2 = {(a + b)/2}^2
 命題6: (2a + b)b + a^2 = (a + b)^2
 命題7: (a + b)^2 + a^2 = 2(a + b)a + b^2、あるいは a^2 + b^2 = 2ab + (a - b)^2
 命題8: 4(a + b)a + b^2 ={(a + b) + a}^2
 命題9: a^2 + b^2 = 2[{(a + b)/2}^2 + {(a + b)/2 - b}^2]
 命題10: (2a + b)^2 + b^2 = 2{a^2 + (a + b)^2}
 命題11: x^2 + ax = a^2
 命題12: a^2 = b^2 + c^2 + 2b(-c cos a)
 命題13: b^2 = a^2 + c^2 - 2a(c cos β)
 命題14: x^2 = ab

こうして羅列してみると、かなりの部分で重複している。「原論」が厳密な書であるならば、必要最小限の命題しかないように配慮されているはず。幾何学的に何か意図があるのだろうか?ある研究によると、円錐曲線論を扱う統一的方法としての見解もあるそうな。尚、命題11と命題14は、二次方程式を解くことに相当する。

[ 第3巻, 第4巻: 円の性質、方べきの定理 ]
第3巻では、弦や接線、円周角と中心角、接弦定理を経て、方べきの定理に辿り着く。方べきの定理では、円と点の関係、しかも点は、円の外にある場合と内にある場合で区別される。これは、代数学と幾何学の抽象レベルの違いを示しているのか?あるいは、位相幾何学の概念を示唆していたと解釈するのは考え過ぎか?
第4巻では、円に三角形や多角形を内接、外接させる作図を扱い、正五角形の作図で盛り上がる。そして、正六角形を経て、十五角形の作図に踏み込む。その方法は、ピュタゴラスの定理の拡張という形で到達している。ここには、すべての平面図形を抽象化すれば、三角形と円の二種類に帰着するという考え方があるように思える。そして、三角形の作図は黄金比に帰着するというわけか。あの神の比だ。んー、やっぱり位相幾何学に通ずるものを感じる。

[ 第5巻, 第6巻: 比例論 ]
第5巻では、比と比例に関する基本定理が扱われる。無理量を扱うための準備といったところであろうか。ただ、比例の定義はかなりややこしい。比や比例は初等的な問題であるが、これを一般化して言及すると案外難しいようだ。

「定義5: 第1の量と第3の量の同数倍が第2の量と第4の量の同数倍に対して、何倍されようと、同順にとられたとき、それぞれ共に大きいか、共に等しいか、または共に小さいとき、第1の量は第2の量に対して第3の量が第4の量に対すると同じ比にあるといわれる。」

「定義10: 4つの量が比例するとき、第1の量は第4の量に対して第2の量に対する比の3乗の比をもつといわれる、そして何個の量が比例しようと常につぎつぎに同様である。」

定義5は、なんとなく言わんとしたことが分かるが、定義10は難解だ。4つの量による列の関係を示しているようで、ベクトル的な解釈もできそう。近代になって、この比例論が重要視されるのは、通約量、不可通約量の如何にかかわらず、一般量として成立することだという。不可通約量とは、現代では無理数に対応するもの。ユークリッドの時代、無理数の存在をどのように感じたかは知らん。ただ、ピュタゴラスの「万物は数である」という信仰が強ければ、表現できない数字があることに危機を感じたことだろう。数自体が明確にできないとなれば、相対的に扱うしかない。これが比や比例の意義であろうか。
第6巻では、その応用として三角形の相似や相似図形の基本問題を扱い、相似となる平行四辺形の作図、面積作図の定理が証明される。

[ 第7巻, 第8巻, 第9巻: 数論 ]
第7巻では、約数や倍数、最大公約数や最小公倍数、素数、互いに素な数の性質が扱われる。

「定義21: 第1の数が第2の数の、第3の数が第4の数の同じ倍数であるか、同じ約数であるか、または同じ約数和であるとき、それらの数は比例する。」

この定義は、第5巻の比例論から引き継がれる。ただ、ここではまだ無理数に適応されていないようだ。
最大公約数を求める方法では、いわゆる「ユークリッドの互除法」が登場する。

「命題1: 二つの不等な数が定められ、常に大きい数から小さい数が引き去られるとき、もし単位が残されるまで、残された数が自分の前の数を割り切らないならば、最初の2数は互いに素であろう。」

第8巻と第9巻は、連続比例する数がテーマで、現代風に言えば等比数列といったところか。そして、第9巻では、エレガントさで知られる「ユークリッドの素数定理」が登場する。

「命題20: 素数の個数はいかなる定められた素数の個数よりも多い。」

つまり、素数は無限に存在するというわけだが、その証明を要約するとこんな感じか。
...
定められた個数の素数をA, B, Γ とせよ。A, B, Γ よりも多い素数があると主張する。A, B, Γ で割り切れる最小数ABΓ をとり、これに単位(=1)を加えたとせよ。そうすれば、ABΓ+ 1 = Hが素数であるかないかである。まず、素数であるとすれば、素数A, B, Γ よりも数の多い素数A, B, Γ, H があることになる。素数でないとすれば、H は素数のどれかで割り切れなければならない。しかし、Hは、ABΓ+ 1 でしか割り切れないのでこれまた素数であると主張する。したがって、定められた素数A, B, Γ よりも多い数の素数A, B, Γ, Hが見出された。
...
んー...思考がエレガントでも、言い回しが馴染めない。

第9巻の後半は、偶数と奇数に関する基本的な命題が扱われ、最後に完全数が証明される。完全数とは、約数の和がその数自身と等しくなる数で、例えば、6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14 がある。古代の歴史では、神が6日間で世界を創った天地創造、月の公転周期は28日、などの解釈で知られている。

「命題36: もし単位から始まり順次に1対2の比をなす任意個の数が定められ、それらの総和が素数になるようにされ、そして全体が最後の数にかけられてある数をつくるならば、その積は完全数であろう。」

「単位から始まる」というのは、1から始まることを意味する。そして、素直に書いてみると。
...
まず、順次に 1 : 2 の比をなす数、A, B, Γ, Δ があるとすると、1 + A + B + Γ + Δ = E が素数ならば、E x Δ = ZH となるようにすると、ZHは完全数になるとのこと。
...
現代風に書けば、「2^n - 1 が素数ならば、2^(n - 1)・(2^n - 1)は完全数」となるが、随分と違った景色が広がる。

[ 第10巻: 無理量論 ]
第10巻は命題が115個もあり、もう気が狂いそう!歴史的にも最も難解とされるところである。ここでは第2巻や第5巻から続く、無理量の詳細な理論が展開される。無理量とは通約できない量である。例えば、正方形の対角線など比の値が無理数になる量のこと。定義では、「いかなる共通な尺度ももちえない量は通約できない量」としている。通約できないということは、明確な数値で表せないことを意味し、比で相対的に扱うしかないというわけだ。そして、有理線分と無理線分、有理面積と無理面積の概念が出現する。比は方形の面積で扱われる。有理面積とは、長さにおいて通約可能な有理線分で囲まれた方形の面積のこと。無理面積とは、有理線分で囲まれても、平方においてのみ通約可能となる場合の面積のこと。
また、x^2 = ab から定められる辺xは無理線分であり、これを中項線分と呼んでいる。これは第2巻の命題14に相当する。更に、重要な概念として、二項線分、余線分、優線分、劣線分という奇妙な用語に振り回される。

「命題36: もし平方においてのみ通約できる二つの有理線分が加えられるならば、全体は無理線分であり、そして二項線分と呼ばれる。」
その証明では、次のように設定される。
「平方においてのみ通約できる二つの有理線分AB, BΓが加えられたとせよ。AΓ全体は無理線分であると主張する。」

「命題73: もし有理線分から全体と平方においてのみ通約できる有理線分がひかれるならば、残りは無理線分である。それを余線分とよぶ。」
その証明では、次のように設定される。
「有理線分ABから有理線分BΓがひかれ、BΓは全体と平方においてのみ通約できるとせよ。残りのAΓは余線分とよばれる無理線分であると主張する。」

「命題39: もし平方において通約できず、それらの上の正方形の和が有理面積で、それらによってかこまれる矩形が中項面積である2線分が加えられるならば、この線分全体は無理線分であり、そして優線分とよばれる。」
その証明では、次のように設定される。
「平方において通約できないで、与えられた条件をみたす2線分AB, BΓが加えられたとせよ。AΓ全体は無理線分であると主張する。」

「命題76: もし線分からその線分全体と平方において通約できない線分がひかれ、全体とひかれた線分との上の二つの正方形の和を有理面積とし、それらによってかこまれる矩形を中項面積とするならば、残りは無理線分である。そして劣線分とよばれる。」
その証明では、次のように設定される。
「線分ABから線分BΓがひかれ、BΓは全体と平方において通約できず与えられた条件をみたすとせよ。残りのAΓは劣線分とよばれる無理線分であると主張する。」

命題36と命題第39では点Γが線分ABの延長上にあるのに対して、命題73と命題76では点Γは線分AB上にある。気になってしょうがないのは、直線や点の名前の付け方に一貫性がないことである。命題41の補助定理あたりからの流れによるもののようだが、実にらしくない。二項線分や無理線分、あるいは、余線分や劣線分といった用語の使い方は、平方根を幾何学的に記述した結果であろうが、今日では当たり前とされる無理数の存在を認めないと、こうも複雑になるものか?この言い回しが、第13巻の正多面体論にも影響を与えるから頭が痛い。
尚、第10巻の目的は、現代風に書くと √(√a ± √b) の二重根号の形で表される無理量の一般化を考察しているらしい。

[ 第11巻と第12巻: 立体幾何学と取尽くしの方法 ]
第11巻では、立方体が扱われ、平面と点、平面と直線、平面と平面の位置関係が述べられた後に平行六面体が議論される。

「命題33: 相似な平行六面体は互いに対応する辺の3乗の比をなす。」

第12巻では、角錐、円柱、円錐、球の体積を扱い、「取り尽くし方法」と呼ばれる手法が用いられる。取り尽くし方法とは、図形の面積や体積を求める手法の1つで、ある図形に内接する多角形を描き、その面積から元の図形に近づけていく方法だという。現代で言う微積分の感覚であろうか。その方法が使われているのが、6個の命題だという。

「命題2: 円は互いに直径上の正方形に比例する。」
「命題5: 同じ高さをもち三角形を底面とする角錐は互いに底面に比例する。」
「命題10: すべての円錐はそれと同じ底面、等しい高さをもつ円柱の3分の1である。」
「命題11: 同じ高さの円錐および円柱はそれぞれ互いに底面に比例する。」
「命題12: 相似な円錐および円柱は互いに底面の直径の3乗の比をなす。」
「命題18: 球は互いにそれぞれの直径の3乗の比をもつ。」

[ 第13巻: 正多面体論 ]
正四面体、正六面体、正八面体、正十二面体、正二十面体を作図し、それぞれの辺と球の直径を比較する。つまり、プラトン立体で締めくくられるわけだ。そして、第10巻で準備された無理線分、あるいは劣線分や余線分との関係が述べられる。

「命題12: もし円に等辺三角形が内接するならば、三角形の辺の上の正方形は円の半径の上の正方形の3倍である。」
つまり、円に内接する正三角形の辺の2乗は円の半径の2乗の3倍であるとしている。
すなわち、s3 = (√3)r の関係。ただし、rは半径。

「命題13: 角錐をつくり、与えられた球によってかこみ、そして球の直径上の正方形が角錐の辺の上の正方形の2分の3であることを証明すること。」
つまり、球の直径の2乗は内接する正四面体の辺の2乗の2分の3であるとしている。
すなわち、k4 = {2√(2/3)}r の関係。

「命題14: 正八面体をつくり、先のように球によってかこみ、そして球の直径の上の正方形が正八面体の辺の上の正方形の2倍になることを証明すること。」
つまり、球の直径の2乗は内接する正八面体の辺の2乗の2倍であるとしている。
すなわち、k8 = (√2)r の関係。

「命題15: 立方体をつくり、角錐の場合のように球によってかこみ、そして球の直径上の正方形が立方体の辺の上の正方形の3倍になることを証明すること。
つまり、球の直径の2乗は内接する立方体の辺の2乗の3倍であるとしている。
すなわち、k6 = (2 / √3)r の関係。

「命題16: 正二十面体をつくり、先の図形のように球によってかこみ、そして正二十面体の辺が劣線分とよばれる無理線分であること証明すること。」
すなわち、k20 = {√(10 - 2 √5) / √5}r、これは劣線分との関係。

「命題17: 正十二面体をつくり、先の図形のように球によってかこみ、そして正十二面体の辺が余線分とよばれる無理線分であること証明すること。」
すなわち、k12 = (√15 / 3)r - (√3 / 3)r、これは余線分との関係。

最後に劣線分と余線分との関係が示されるということは、二重根号からは逃れられないということか。平方根は方形の面積で記述できるが、その面積の大小関係に踏み込めば、それも必然であろうか。はぁ~!

2011-12-18

"ユークリッド「原論」とは何か" 斎藤憲 著

雑念を払い、ひたすら厳密性に傾注した記述とはどんなものか?到底手の届かない領域にあることは想像に易い。それでも、生涯で一度は触れてみたい古典がある。アル中ハイマーな知識では、いきなり読んでも退屈するだろう。そこで、心の準備となる書を漁ってみた。

「原論」は、紀元前3世紀頃に成立したと言われるギリシャ語で書かれた数学書である。そして、9世紀にはアラビア語に、12世紀にはアラビア語からラテン語に翻訳されたという。
言語の優位性を眺めれば、その時代の文化や学問の勢力を読み取ることができる。8世紀頃、数学はイスラム世界を中心に発展し、ルネサンス期には科学論文はラテン語で書かれた。18世紀頃、文化の中心がパリへ移ると王侯たちはフランス語を学び、あのフリードリヒ大王までもフランスかぶれになった。20世紀以降、留学先はイギリスやアメリカが中心となり英語が世界語となった。よって、母国語の優位性を主張したければ、その言語圏で文化や学問を世界の最高水準に高めればよかろう。尚、ユークリッドの名は英語読みで、ギリシャ語ではエウクレイデスとなる。

「原論」は全13巻で構成される。だが、数々の写本が残されるものの原本は現存しないらしい。現在出版される各国語訳は、デンマークのハイベアが1880年代に出版したギリシャ語校訂版に基づくという。これは、19世紀初頭、フランスのペイラールが発見したヴァチカン図書館所蔵の9世紀の写本を基にして、他の写本を参考にしながら作られたものだという。そして、数々の修正を繰り返しながら今日に至る。
本書には、その第V巻までの概要が紹介される。このあたりが初等数学として一番多く読まれる箇所であろう。三角形や平行線、あるいは円や多角形の考察は、幾何学の基礎として数学入門者の間でも人気が高い。最初の6巻だけの簡略版も多く出回っているようだし。
ところで、ユークリッドは実在したのだろうか?集団説もあるが、今ではあまり顧みられることはないようだ。プトレマイオス朝の時代、アレクサンドリアで活動したという説はよく耳にする。ちなみに、「数学には王のための道はありません」と答えたという逸話もあるとか。ユークリッドに言及している最初の数学者はアポロニウスだという。
それにしても、古代ギリシアで、なぜ厳密性を問うような文献が誕生したのだろうか?霊感や占星術の盛んな時代にもかかわらず。ピュタゴラス教団でさえ宗教結社とされるのに。当時、ソフィストたちが、政治的、社会的影響力があったのは間違いなかろう。弁論術や処世術を教えて喰っている自称教育家たちである。ソクラテスは彼らを詭弁家として思いっきり批判したとされる。彼らの存在が、逆に主観性を極力排除すべし!という認識を急激に育てたのかもしれない。現在ですら、論理性に主観性が結びつくと、しばしば議論が迷走するのだから。主観性の強すぎた哲学が論理性を取り入れながら変化し、更に純粋な客観性としての数学が分離していく時代だったのかもしれない。

科学では、命題を検証や証明によって記述し、その命題の連鎖によって定理を積み重ねていく伝統がある。逆に言えば、一つの命題が否定された途端に脆くも崩れるという危険性を孕んでいる。客観性を強調するために、純粋な証明以外のメタ的見解を排除しようと努力してきた。まさに「原論」の示す形式である。
しかし、本書は意外な面を紹介してくれる。線や円など図形の名前のつけ方に一貫性がまるでないこと。命題参照で命題番号を付けずに代名詞で扱っていること。そして、暗黙的な表現が多く、一部の識者の共通認識を前提として書かれている節があるというのだ。数学の文献として整えられたのは、ずっと後になってからのことらしい。
また、図版では特殊なケースを扱っていて、一般化の配慮がまったくなされていないという。三角形を扱うのに二等辺三角形や直角三角形は特殊なケースだが、見映えがいいのも確かである。だが、紹介される写本の図版は現在の見慣れた図版とは大きく違い、わざわざ難しくしているようにも見える。実に奇妙だ。記述をパピルスや岩に残すことができたとしても印刷術のない時代、知識を伝えるには主に言明を手段にしていたことが推察されるという。代名詞を多用するのも、図版よりも言明を重視した結果ではないかと。この時代、まだ言明と文献の区別があまりなかったのかもしれない。そのために説明不足も生じる。同時に、最小限の命題とともに最小限の物言いで研究者たちの想像力を掻き立ててきたとも言えそうだけど。論理学では、余計な解釈や余計な形容を用いないという鉄則がある。アル中ハイマーの最も苦手とするところだ。
カント曰く、「多くの書物は、これほど明晰にしようとしなかったら、もっとずっと明晰になったろうに。」

1. 定義、そして公準と公理
原論には序文がなく、唐突に点や線の定義から始まるという。こんな具合に。
「点は部分のないものであり、また線は幅のない長さであり、また線の端は点である。直線とはその上の諸点に対して等しく置かれている線である。...」
その前の時代でも、アリストテレスの著書「自然学」のように、序文で前提や立場などが語られる慣習があったらしいが、唐突に始まるのは珍しいようだ。ちなみに、「自然学」は当時の物理学書のようなもの。
では、なぜ原論は唐突に始まるのか?実は、もっと前の紀元前5世紀、「原論」なるものがキオスのヒポクラテスによって編集されたという。尚、医学のヒポクラテスとは別人。それも完全に失われているので、ユークリッドのものが最古ということになるそうな。通説ではユークリッドはプラトンやアリストテレスの影響を受けたことになっているが、「原論」は哲学的議論を避けるようにできているという。論証スタイルも、アリストテレスの哲学論法とはまったく違うそうな。自明な事象を淡々と羅列する形式は、哲学の入り込む余地などないと宣言しているのか?そして、哲学なんぞに頼らなくても、最低限の公準や公理だけで宇宙は説明できるとでも言っているのか?
最初の点や線の定義は20数個からなり、次に証明なしで承認を要求するという。それぞれ「要請」「共通概念」とし、今日では「公準」「公理」と呼ばれるものである。いわば自明というわけだ。
ところで、有名な5つの公準のうち、第五公準はだけが長文でややこしいのはどういうわけか?いわゆる平行線公準である。ここに、非ユークリッド空間の可能性を示唆していたと想像するのは、考え過ぎだろうか?非ユークリッド空間が証明されたからといって、ユークリッドを蔑む気にはなれない。その本質的意義は論法にあるからだ。宇宙を説明する時、自明だが証明できないものがあるという前提は、天地を覆す発想である。これぞ、人類の最高の知的財産ではなかろうか。客観性と同じくらい直観の偉大さを示しているわけだが、ある意味宗教的ですらある。だから批判にも曝されるのだけど。科学と宗教の違いは紙一重ということであろうか。少なくとも、神の存在と死後の世界を具体的に提示するよりは、はるかに進んだ思考である。

2. 論理スタイル
定義、要請、共通概念の次に命題がくる。命題は伝統的に定理と問題に分けられるという。なんらかの性質を証明するのが定理である。なんらかの条件を満たす対象を得るのが問題で、図形ならば作図法を、整数論ならば数を求める手続きを示す。命題は六つの部分に分けられるのが慣例だという。それは、言明、提示、特定、設定、証明、結論。まず、命題を一般的に「言明」し、点や図形などを導入して「提示」する。次に、命題に即して少し言い換えて「特定」する。そして、具体的な作図手順を「設定」する。最後に、「証明」して「結論」を述べる。...といった具合。
おもしろいのは、命題の最後の最後に「これがなされるべきことであった」と締めくくられるという。それが、定理だったら「これが証明されるべきことであった」となる。そのラテン語文は、前者が Quod Erat Faciendum. 後者が、Quod Erat Demonstrandum. 略して Q.E.F. や Q.E.D. となる。哲学書でもお馴染みのフレーズだ。
ところで、古代、あらゆる運動や変化を否定したエレア派という学派があったそうな。ユークリッドは点や線から生じる物理現象を説明していることから、エレア派への対抗意識があったという意見もある。それを強く主張したのがアルパッド・サボーという人だそうな。エレア派の始祖パルメニデスの言葉に、「あるものはある、あらぬものはあらぬ」というのがあるという。あるというのは存在を意味し、存在することと存在しないことは違うこととして、存在から存在しない状態に変化することは矛盾すると考えるそうな。その解釈が拡張されると、物体の変化や運動の存在すら否定される。その対抗意識で、なにかと批判や文句を言う奴の顔を思い浮かべながら書くと、無味乾燥的な書になるのかもしれない。すなわち客観性に訴えることになろう。「原論」は、それを実践した結果なのかもしれない。

3. 幾何学的代数
第II巻には、ちょっと変わった歴史があって、20世紀に激しい論争が巻き起こったという。歴史的には、アポロニウスの「円錐曲線論」の研究で、「原論」の第II巻が本質的に代数であると主張したあたりから始まり、20世紀にはノイゲバウアーの「幾何学の衣をまとった代数」という解釈が通説になったという。
この論争で注目すべきは、命題5と命題6だという。
今、2つの線分 a, b で囲まれる長方形を r(a, b) と表し、線分aで囲まれる正方形を q(a) と表す。そして、面積公式から、r(a, b) = ab, q(a) = a^2 と書ける。

「命題5: 直線ABが点Gで二等分され、別のAB上に点Dが取られているとき、AD, DBに囲まれる長方形 r(AD, DB) に2つの分点G, D間の直線GD上の正方形 q(GD) を加えたものは、全体の半分上の正方形 q(BG) に等しい。」

この命題は、r(AD, DB) + q(GD) = q(BG) が成り立つと言っている。
ここで、AG = GB = a, GD = b とすると、次の展開式に対応する。

 (a + b)(a - b) + b^2 = a^2

実は、命題6も同じ展開式に対応する。命題5との違いは、点Dの位置で、命題5が線分AB上にあるのに対して、命題6では線分ABの延長上にあること。
そして、r(AD, DB) + q(GB) = q(GD) となり、展開式では次のようになる。

 (b + a)(b - a) + a^2 = b^2

つまり、命題5と命題6は代数的解釈では同じというわけだ。では、なぜ重複する命題が存在するのか?幾何学的に配置が違うことに意味があるのか?これが論争の焦点である。
従来の定説では、2数の和と積から求める連立方程式の解法に結びつけるものだったという。x + y = p, xy = Q の連立方程式が命題5に対応し、x - y = p, xy = Q の連立方程式が命題6に対応する。
作図問題が代数学と結びつくことは近代数学ではよくある話だが、はたしてユークリッドの時代にそこまで意図されていたのか?和や積が代数と結びつく幾何学的問題は、紀元前10世紀のバビロニア数学に遡るという。そして、バビロニア数学がギリシアに伝わり、「原論」に影響を与えたという説があるそうな。
なぜ代数学を幾何学で表したのかというと、ギリシア人は無理数というものを持たなかったので、平方根を表すのに幾何学的な手段を用いざるをえなかったという。ギリシア数学では、非共測量の発見後も無理数という形を用いなかったそうな。「原論」では、やたらと比や比例という概念を用いているらしい。幾何学的に言えば相似である。しかし、バビロニアの方程式の解法が「原論」に影響したという証拠はないらしい。
いずれにせよ、第II巻の命題が後述にどのように利用されるかを見ていけばよかろう。だが、あまり利用されていないというから困ったもんだ。強いて言えば、円錐曲線の理論で使われるぐらいだという。ちなみに、アルキメデスの業績のかなりの部分は、円錐曲線とその回転体に関する面積と体積の決定だという。ユークリッド自身も「円錐曲線原論」なる著作があったと言われているとか。では、第II巻の命題は、円錐曲線の理論のための補助定理だったかというと、そう単純でもなさそうだ。
本書は、「原論」で後述される「方べきの定理」で幾何学的な意義の可能性を説明してくれる。方べきの定理では、似たような定理でも巧妙に配置を変えることによって様々な形をとることが見て取れる。要するに、議論の対象とする点を円の外に置くか、円の内に置くかの違いで量的関係も変わってくるということのようだ。

4. 正五角形の分析
第III巻では三角形や多角形と内接、外接する円の問題が扱われ、続いて第IV巻では正五角形に関する命題が検討される。正五角形に関する命題は、「原論」の中でも屈指の成果だという。その本質的な作図は第IV巻の命題10にあり、それまで展開された多くの理論や技法が集中的に利用されるという。第I巻から第IV巻までの山場というわけか。尚、正五角形を円に内接させる作図は、続く命題11で行われる。
ギリシア数学では、作図すべき図形が描けてしまったと想定して、そこから何が成り立つかを探求する技法が使われたという。その技法は、「アナリュシス(分解)」と呼ばれるそうな。analysis の語源か。だが、当時の文献で解析手順を記したものは珍しいという。命題10でも、解析がなされたと推測されている程度のものらしい。
本書は、この命題の逆順を追っていくと、三角形の作図は黄金分割に帰着するという。その重要な概念は、比例と相似である。正五角形の作図には、三角形の相似と辺の比例がつきまとう。だが、これを巧みに回避しているらしい。命題10の議論は、比例と相似という言葉を回避することに大半が占められるという。
また、よく知られる「比例の内項の積は外項の積に等しい」という定理に相当するのは、第VI巻の命題17に現れるという。ただ、原論には線分の積という概念はなく、代わりに長方形や正方形の面積が使われているようだ。
更に、第IV巻では、命題16で正十五角形の作図法が記される。プロクロスは、この命題を天文学に関係すると指摘したという。正十五角形の一辺に対する中心角24度は、天文学で重要な黄金傾斜にほぼ等しい。ただ、命題16はその表現や形式から後世の追加であることがほぼ確実で、プロクロス以前の追加と考えられているそうな。

5. 比例と非共測量(無理量)
相似関係は初等的な問題であるが、比というものを非共測量と絡めると、これを言明するのは意外に難しいかもしれない。正方形の辺をs、その対角線をdとした時、その比である d/s = √2 となるのは、三平方の定理で簡単に導ける。しかし、無理数だ。ピュタゴラスの「万物は数である」という信仰が根強くあれば、数学の危機を感じたことだろう。近代数学で言えば、不完全性定理の発見と似たような状況にあったのかもしれない。数自体が明確に表現できないとなれば、比較によって相対的に記述するしかない。これが、比や比例の意義であろうか。となれば、相対的な認識しか持てない人間にとって、比較するという行為は本質的なもの、あるいは本能的なものかもしれない。
ところで、「原論」の比例の定義はヘンテコだ。ガリレオもかなり不満を持っていたという。

「第V巻、定義5: (4つの)量が、第一が第二に、第三が第四に対して、同じ比にあるといわれるのは、第一と第三の等多倍が、第二と第四の等多倍とを比較して、それらが何倍であっても、各々が各々に対して、同時に超過するか、同時に等しいか、同時に不足するときである。」

なんじゃこりゃ?4個の量において常に大小関係が一定で、しかも等多倍であるときに比例するということだけど。「原論」の比例の定義は難解とされ、16世紀になって正しく解釈されるようになったという。だからといって、この定義が非共測量の比例までも扱える一般性を具えた見事な記述だと賞賛する者はいないだろう。

6. ユークリッドの他の著書
ユークリッドの著作と思われるものに、こんなものがあるそうな。
「デドメナ」は、解析という問題探求の方法の基礎定理を提供した。
「オプティカ」は、今日の応用数学と呼べるもので、視覚すなわち物の見え方を幾何学的作図によって探求した。
「カトプトリカ」は、鏡による反射を扱った。
「ファイノメナ」は、天文現象を星が地球を中心とする球面の上にあるとして議論した。
「カノンの分割」は、音程や協和音を数の比で分析した。

2011-12-11

"フラクタル" 高安秀樹 著

前記事の山口昌哉氏の入門書でフラクタルな世界に魅せられた。そこでもう一冊。本書は1986年版と、ちと古いが、一歩踏み込んだ数学的な解釈がなされる。また、コッホ曲線やレビのダスト、あるいはローレンツ系などプログラムの具体例も多く紹介される。ただ、コードがN88-Basicというのが時代を感じる。

現象を細かく調べれば調べるほど、かえって実体を見失い理解が遠のく場合が往々にある。距離を置きながら大雑把に眺めてこそ、自然の美しさとその意味を素直に読み取ることもできよう。フラクタルとはそうした世界ではなかろうか。フラクタルの根源である非整数次元は、実は100年前から知られていたそうな。脚光を浴びるようになったのは、コンピュータによる可視化によって、複雑なフラクタル図形を感覚的に捉えることができるようになったからである。当時、フラクタル次元に明確な定義がなく、非整数次元を総称して呼んでいたところがあったらしい。本書は、フラクタル次元の様々なアプローチを紹介してくれる。
ところで、次元が非整数とは何を意味するのか?通常の図形ならば特徴的な長さや幅といった物理量がある。球ならば半径、人間の形ならば身長といった具合に属性なるものがある。幾何学で一般的に扱う対象は、このような属性を持った図形であろう。その特徴は、線や面が滑らかで連続的、すなわち微分可能ということである。だが、フラクタルは対極的で、特徴的な長さを持たない図形である。その重要な性質は、自己相似性である。一部を砕いていみると全体と同じような形をしているわけだ。フラクタルの語源は、ラテン語の「fractus」で、壊れて不規則に小さな破片になった状態という意味があるらしい。
フラクタルは、滑らかさを否定し連続性が保てないので、いたるところで微分が定義できない。現象を分析しようとする時、微分が否定されては解析学的に絶望に見える。そこで、自己相似性という単純な規則性によって近似するような、まったく違った発想が試みられる。ここでは、特徴的な長さを持った基本図形から粗視化の度合いを変えながらアプローチする方法、測度の関係から積分的にアプローチする方法、相関関数から統計量として捉える方法、分布関数から統計的にアプローチする方法、スペクトルからアプローチする方法が紹介される。自己循環にも陥りそうな自己相似性は、コンピュータが得意とする再帰的処理が威力を発揮しそうな予感がする。ここで注目したい概念は、「フラクタル次元」,「くりこみ群」,「安定分布」である。

本書は、フラクタルに馴染んでいくと、フラクタルもどきに惑わされると注意している。「通称フラクタル病」というものだそうな。複雑系を眺めれば、どんなものでも自己相似性に思えてくるものらしい。例えば、中華料理などの表面に浮かぶ油が大小様々な大きさになる様子は、その直径を調べてみると、べき分布ではなく指数分布に近いことが分かるという。人口分布も、べき分布でなく指数分布だという。都市社会学では、都市人口密度の法則というものがあって、大都市への人口集中が非常に強く、都市の中心から距離rにおける人口密度は、exp(-r/r0) に比例するという。カビの生え方も、指数分布だそうな。これらの例は、名古屋大学フラクタル研究会が調査したものらしい。そして、いまだデータ不足のために決着のつかないものが、蟻の軌跡、地磁気の反転、DNA配列などがあるという。古い情報なので、もう少し解明されているかもしれないが。ただ、べき分布に近づくということは、飽和過程においてロングテール現象のような傾向があるのは確かなようだ。
一方で、フラクタルを拡張して、どんな複雑系も、フラクタル的に当て嵌めて解決しようという試みもあるという。フラクタル次元を位相次元で補うような、トポロジー的な思考なども紹介してくれる。その意味では、フラクタルと複雑系の境界線も曖昧なのかもしれない。
ところで、全体が部分の相似であるという世界観は、はるか昔からあった。国家や民族といった集団を、まるで個人の性質のごとく一緒くたに語ることがよくある。日本人は論理的思考に弱いといった具合に。また、社会構造、権力構造、精神構造が、トップダウン的なピラミッド構造を見せるのも相似性と言えよう。宇宙空間も、原子核を取り巻く電子軌道から、太陽系や銀河系などの形状的な相似性を想像する。部分から全体を把握しようとしたり、全体から部分を推定しようとする考え方は、経験的思考であり、人間社会にある種の合理性を与えてきた。自己相似的思考は、一種の抽象化理論と言ってもいいだろう。解析学は客観的思考を強調するが、フラクタルは主観的感覚を重んじるといった感じであろうか。

1. フラクタル次元
通常の次元は整数で扱い、次元が増えれば自由度を増す。これが力学の基本である。線は1次元、面は2次元、空間は3次元と捉える経験的次元がある。
ところが、1890年、二次元であるはずの正方形上の任意の点を、たった一つの実数によって表されることが証明された。その代表例がペアノ曲線である。これが自己相似形で、いたるところで微分不可能であることは一目瞭然である。これを曲線と呼んでいいのか?という抵抗感もあるけど。一つの実数で表現できるということは、n次元空間を一次元とみなすことが可能というわけだ。
この次元の矛盾を解決するために、相似性次元という概念が生まれた。線分、正方形、立方体の各辺を二等分すると、線分は2個、正方形は4個、立方体は8個に分断される。それぞれ、2^1, 2^2, 2^3 で表され、その指数が経験的次元と一致する。これが相似性次元というものか。一般的には、こういうことらしい。
「ある図形が、全体を 1/a に縮小した相似図形 a^D 個によって構成されているとき、この指数Dが次元の意味をもつ。」
そして、ペアノ曲線の相似次元は、二次元(2^2)となり、正方形の次元と一致する。ある図形の全体を 1/a に縮小した相似形が b個によって成り立つ場合、相似性次元は以下のようになるという。

 D= log b / log a

例えば、コッホ曲線は、全体を 1/3 にした相似形4個によって全体が構成されているので、こうなる。

 D = log4 / log3 = 1.2618...

一次元と二次元の間に次元が存在するとは奇妙な話だが、一次元よりは複雑で二次元ほどには自由度がないと捉えれば、それなりに合理性がありそうだ。ただ、このままの定義では、適用範囲が限られている。厳密な相似性を有する規則的なフラクタル図形だけにしか、定義できないからである。そこで、ランダムな図形まで含めたものが用意されている。その代表がハウスドルフ次元だという。他にも、コルモゴロフによって導入された容量次元というものもあるらしい。

2. 悪魔の階段
カントール集合は、フラクタルの紹介で必ず顔を出すものだそうな。その応用範囲も広い。まず、線分 [0, 1] を3等分し、真中の区間 [1/3, 2/3] を消去する。残った部分をそれぞれ3等分して、真中の区間を消去するという操作を無限回繰り返し、極限に残った点がカントール集合である。このフラクタル次元は、こうなるという。

 D = log2 / log3 = 0.6309...

この密度分布を表す関数は、いたるところで微分が0になるような階段状になっていて、「悪魔の階段」と呼ばれるそうな。

3. くりこみ群
くりこみ群の目的は、観測における粗視化の度合いを変えたときの物理量の変化を定量的にとらえることである。あるスケールで粗視化した時の物理量を p とし、そのスケールの2倍で粗視化した物理量を p' とすると、変換関数 f において、次の関係が成り立つだろう。

 p' = f(p)

これを、更に2倍の粗視化の度合いを変えていけば、次のようになる。

 p'' = f(p') = f・f(p)

ここで、f は逆変換をもたないという。つまり、粗視化した状態を与えても一意的に元の状態に戻らないわけだが、このような性質の変換を数学では「半群」と呼ぶという。そして、物理学では粗視化による変換を「くりこみ」と呼ぶという。よって、f の変換を「くりこみ半群」と呼ぶのが正確だという。
「フラクタルとは、粗視化をしても変化しないようなもののことであるから、くりこみ群の変換 f に対して不変なものがフラクタルであるといってもよい。」
くりこみ群を用いれば、フラクタル次元や臨界指数を比較的簡単に求められるという。あくまでも近似だろうけど。

4. 安定分布
レビによって考案された「安定分布」という概念があるそうな。それは、次のような和に対する分布の不変性を意味する。X, X1, X2, ..., Xn を共通な分布Rをもつ互いに独立な確率変数とした時、その和が次式になるような定数 c, r が存在する場合、分布Rは安定であるという。

  X1 + X2 + ... Xn = cX + r

多くの場合、ある分布に従う確率変数の和は元と異なる確率変数となりそうだが、適当な一次変換によって元と同じ分布になるようなものが安定分布ということのようだ。このような分布でよく知られているのがガウス分布だという。ガウス分布の和もまたガウス分布というわけか。これは、統計学的に解釈した相似性の例ということができそうだ。

2011-12-04

"カオスとフラクタル" 山口昌哉 著

図書館を散歩していると、ある本に嵌ってしまう。本書はブルーバックス版(1986年)。尚、ちくま学芸文庫からも発刊(2010/12)されていることを後で知った。なるほど、復刊するにふさわしい入門書である。

カオスという言葉が文献に登場したのは、紀元前700年頃ヘシオドスの「神統記」にまで遡る。一方、数学界にこの言葉が登場したのはずーっと後のことで、1975年リーとヨークの定理が最初だという。その頃、ブノワ・マンデルブロが、フラクタルという言葉を持ち出す。当時、カオスの方は、決定論的プロセスと非決定論的プロセスの境界がなくなるとして研究者たちが群がったが、フラクタルの方は、あまり反響がなかったそうな。フラクタルに注目され始めたのは70年代末、コンピュータグラフィック技術の進化によってである。
カオスは、複雑系を確率論的にしか捉えられない不規則な世界である。関数もすっきりとした連立方程式から導かれるのではなく、波動的あるいは集合論的な関数によって導こうとする。対してフラクタルは、単純な基本図形から自己相似形を繰り返していくと、極めて不規則な、いや不規則そうに見える図形を形成するという摩訶不思議な世界である。どちらも混沌に向かってそうに見えるが、フラクタルは数学的に計算できるのが、その違いである。本書は、この二つは別々のものではなく、実はカオスのプロセスを逆に観察するとフラクタルが見えてくるという。その共通概念は非線形である。
ところで、線形という言葉の定義も難しい。線形やリニアとは、グラフで描けば直線になるもの、すなわち一次関数と習ったものだが、縦軸の目盛を対数にとれば対数関数や指数関数も直線になる。目盛を任意の関数にとれば、どんな曲線も直線になるだろう。線形とは、原因と結果が何らかの形で連続性を示す予測可能な関係とでも言おうか。
しかし、線形を求めたところで、あらゆる物理現象は非線形に見舞われる。世間では未来を予測するために法則というものを考えるが、実際には初期条件や境界条件なるものを前提しなければならない。電子工学でリニア素子と呼んだところで、限られた範囲の周波数特性において線形性を見せるだけだ。そう、非線形な現象の中から線形に見えるところだけを都合よく用いているに過ぎない。したがって、非線形な市場経済では、市場動向の予測可能な範囲で参加すればいいだけのこと。人生も非線形的で、成長著しい10代からやがて老化して飽和していく。なによりも生まれて死ぬという特異点がある。おまけに、その二大特異点で連続性が保たれるのか?と問えば、宗教しか答えてくれない。神は、人間が特異点に出会う度に想定外だと言い訳する態度を、滑稽に眺めているに違いない。

微分とは、物理現象を解析する上で、その瞬間をスナップ写真のように映しだす便利な道具である。微分方程式とは、未知の関数とその導関数との間に成り立つ関係である。ただ大きな問題は、微分方程式の多くが解けないことである。だから、ε-δ論法なんて近似的な思考を持ち出して、せっかくの数学愛好家を落ちこぼれにしやがる...と愚痴る。
近似と言えば、ニュートン時代からの古典的な思考に差分方程式がある。連続性を映しだすには、差分区間を無限小に近づけることになり、極めて微分の思考と似ている。
ところが、だ!本書は、その微小dtが差分Δtになった途端に奇妙な現象が起こるという。すなわち、限りなく小さい区間を、大雑把に小さい区間にすると、たちまち非線形性が現れるというのだ。ニュートン力学では物理現象を連続性で捉えるが、差分的思考では離散的に捉えて近似する。要するに近似とは、人間の認識能力を誤魔化す巧みな方法論なのだ。
本書は、カオスを引き起こす原因は離散力学系にあるとしている。電子工学では、滑らかで連続的なアナログ波形に対して、デジタル波形となると、たちまちオーバーシュートやアンダーシュートが起こる。いわゆるギブス現象というやつで、急激な変化点では発散する。この現象は、三角関数で連続的に微分できるにもかかわらず、フーリエ変換ですんなり証明できてしまう。となると、連続性よりも離散性の方に真理があるのか?と思えてくる。電子スピンはどういうわけか、離散的な軌道を描きやがるし。連続性を前提にした微分とは、永遠に近づけない真理への無駄な努力ということか?人間認識の本質が近似にあるとすれば、誤魔化しのきく人間ほど幸せになれるということか?いや、救いは離散系におけるランダム性に求めて、そこに真の純粋性があるに違いない。そう、精神分裂的な気まぐれこそ純粋哲学というわけだ。

1. ランダムとカオス
連続であっても非線形性で分かりやすいのは折れ線グラフであろう。滑らかな曲線だってサンプル数を減らせば折れ線グラフになる。コンピュータグラフィックでは、画素をドット単位で離散的に表示する。そして、最小サンプル数で描くと基本的な形が三角形ということになろう。フラクタル図形の基本は三角形の自己相似性にありそうだ。
また、ランダム性の最も単純な現象は、コイン投げのような確率であろう。その現象は、区間[0, 1]で三角形のようなグラフを描く。これが離散力学系の基本的な現象であろう。
グラフが直線ということは、微分不可能を意味する。次元が下げられない上に上げられない現象の正体とは?カオスの正体とは、微分不可能な領域にあるのかもしれない。
さて、ランダムもカオスに含まれるのであろうが、その違いとは何か?ランダムは事象が平等に現れるのに対して、カオスは事象がすべて現れるとは限らない。ランダム性は確率論的決定論と言えるのかもしれない。だが、実験すると極めてカオス的な現象を示す。おもしろいのは、決定論的な方法で非決定論的な結果が得られるということだ。そうなると、決定論と非決定論の境界も曖昧になっていく。
本書は、カオスはある区間に閉じ込められた時に生じるもので、もし区間が解放されれば、カオスは絶対に起こらないという。カオスが生じるということは、宇宙空間が閉じていることの証しなのか?エントロピーの正体は閉じた宇宙にあるのか?
「嵐の前の静けさ...という言葉があるが、静けさの時間が予言できれば、嵐も予言できるわけである。」

2. ロジスティック方程式
個体群生態学では、ベルハルストが考案したロジスティック方程式というものがあるらしい。生態の増殖モデルとして考案された微分方程式である。変化率を人口Nの関数になると考え、環境収容能力をK、増加率をrとすると、次式になるという。

 dN/dt = f(N) = rN (K-N)/K

その解は、初期値をN0とすると、こんな感じらしい。

 N(t) = K N0 exp(rt) / ( N0 exp(rt) + K - N0 )

ここでは、最初増加率が低く比例的に変化するものが、突如指数関数的に増加し、そして頭打ちになる例を紹介してくれる。数学的には簡単でも、その意義となると極端に理解が難しい。ゼロから存在が生じることは説明できないし、そもそも環境に依存する数値が客観的に得られるのか?という疑問がある。この方程式は、なんとなく数学と社会学の境界線、もっと言うなら客観性と主観性の境界線を暗示しているように映る。
ちなみに、ロバート・メイの離散的な数値実験では、パラメータrが3以下の場合、初期値が0と1との間のどんな値でも、1 - 1/a に収束し、予測可能になるという。だが、rが3.57...以上になると、初期値の微小な差で大きな差が生じて、たちまち予測できなくなるという。これが、カオスの所以ということらしい。

3. ローレンツアトラクタ
ストレンジアトラクタとは、「奇妙な引きつけるもの」いや「奇妙に終焉するもの」と言った方がいいだろうか。結局、どこかの状態に落ち着くことはよくある。カオスに対して逆行するような現象である。
本書は、二次元におけるカオスの数理からホモクリニックな点を紹介してくれる。カオスの抽象化は幾何学的にはトポロジーに通ずるものがありそうだ。
二次元の力学系であればまだ数値解析ができそうだが、三次元となるとたちまち複雑系へと迷いこむ。ローレンツの乱流モデルがそれで、あの奇妙な引力圏を描くやつだ。1963年、地球物理学者ローレンツは、三つの未知関数で流体運動を示したという。X(t)は対流の強さに比例、Y(t)は対流で上下する流れの温度差に比例、Z(t)は上下方向の温度分布が線形性から乖離する量、といった具合に。

 dX/dt = -σX + σY, dY/dt = -XZ + rX - Y, dZ/dt = XY - bZ

σは流体の拡散係数と熱伝導係数の比(プラントル数)。rとbは容器の形や流体の性質に関するパラメータ。本書は、ローレンツが示した連立微分方程式が三つの未知関数から成り立つことが重要であって、二つ以下の連続な力学系ではカオスは起こらないという。これは、三体問題と何か関係があるのだろうか?
ちなみに、ジャパニーズアトラクタというものもあるそうな。1961年、京都大学の上田睆亮教授によって発見された。上田教授の話によると、当初アナログコンピュータの故障かと思ったそうな。それは、二次元力学系のダフィングの方程式を写像した時に起こる現象である。ダフィングの方程式は次のようなもので、解は初期値の連続関数になるという。

 dx/dt = y, dy/dt = -ky - x^3 + B cosτ

連続力学系を離散力学系に写像した時に、たちまちカオス現象が生じるということらしい。

4. ファイゲンバウムの分岐ダイアグラム
物理学者ファイゲンバウムは、現事象の差分と次事象の差分の比に注目したという。

 (αn+1 - αn) / (αn+2 - αn+1)

そして、この比の極限を計算すると、次のようになるという。

 lim (αn+1 - αn) / (αn+2 - αn+1) = δ = 4.6602...

これがファイゲンバウム定数というやつか。分岐に関する事象では、普遍的な定数δによる法則性があるという。そして、その図形は「くまで型」になるという。こうなると、カオスにも法則性があると信じたくなるが、ほんまかいな?

5. カオスからフラクタルへ
ここで、おもろいパラドックス紹介してくれる。
「二等辺三角形の二辺の長さの和と底辺の長さは等しい???」
その証明は...二等辺三角形ABCでABの中点をB0、BCの中点をB1、ACの中点をC0として、底辺ACを二つの二等辺三角形AB0C0とC0B1Cに分ける。すると、AB = AB0 + B0C0, BC = CB1 + B1C0 となる。それぞれの三角形は相似で、これを繰り返すと分けられた三角形はジグザグな折れ線グラフを示す。そして、折れ線幅がだんだん小さくなり、やがて底辺の直線に近づいていく。なんと AB + BC = AC になるではないか。確かに、線分とは点の集まりであり、三角形も極小に近づけば点になるのだけど...
ところで、海岸線や国境線が正確に計測できないことは、広く知られている。例えば、スペインとポルトガルの国境線や、オランダとベルギーの国境線の長さは相互の国で公表値が違う。マンデルブロは、海岸線や、樹木の形、川の形などをシミュレートするためにフラクタルという概念を提案し、フラクタル次元なるものを提示した。その名前の由来は、フラクション = 分散という言葉だという。それは、普通の図形の次元は、1や2や3などの自然数であるが、コッホ曲線のように整数ではないところからきているそうな。ちなみに、コッホ曲線は、位相次元が1で、フラクタル次元は、log4/log3 = 1.36....となる。普通の次元は位相次元で示されるが、フラクタル次元が位相次元より高いものをフラクタルと呼んでいる。その性質は、全体はそれを縮小した部分から成る自己相似集合で形成される。ある部分の図形が全体の縮小された像になっていて、原型の入れ子構造となっているわけだ。
複雑な自己相似集合の例では、ジュリア集合とマンデンブロ集合を紹介してくれる。複素平面上で、以下の漸化式において、Znが無限大に発散しないような初期値Z0を持つような集合らしい。

 Zn+1 = Zn^2 + μ

その軌道は、μの値によって収束が決まる。マンデンブロ集合は、更にZ0を原点0にとって、nが無限大になってもZnが無限大にならないようなμの集合だという。その違いは、μを固定するか、初期値Z0を固定するかの観点の違いであろうか。

6. カオスの定義とは?
九鬼周造の著書「偶然性の問題」では、「必然とは、存在がそれ自身に根拠を持つ場合であり、そうでない存在を偶然」と呼んだという。この書には、他の学問は必然性のみを論じているが、形而上学のみが「偶然」に対して学問的に迫ることができると記されるそうな。形而上学を持ち出せば、学問は精神的方法論となり、それこそカオスの定義はメチャクチャになりそう。人間精神とは、自ら自己相似形によってメチャクチャにしているのか?
けして確率論も量子論も偶然そのものを研究しているわけではない。フラクタルとは、超経験的な直観的方法論にも見えてくる。これも決定論ということであろうか。
「カオスの研究は、偶然性そのものの研究といってはならないが、ある種の偶然性が必然性と近づく場面を、必然性の側から眺めているというべきではないだろうか。」

2011-11-27

"On Lisp" Paul Graham 著

前書きには「既にLispに親しんでいることを前提としている」とある。「けして泥酔した初心者は手を出さないでください!」と聞こえてくるが、これも怖いもの見たさというものか。慣れない言語を読んでいると不思議な感覚に見舞われる。それは、片言の外国語を喋る時の感覚に似ていることだ。文法を考えずに、とりあえず知っている単語を並べてみる。これぞリスト型言語の極意というものか。プログラミング言語を学習するのに、構文を意識せずに読んでいるのも珍しい。これぞ構文のない言語と言われる所以か。
まずは、立ち読みから始める。釘付けになったのは、後方で紹介される実装例で、継続、マルチプロセス、非決定性アルゴリズ、そしてオブジェクト指向言語を装うCLOSである。しかもマクロで実装してやがる。驚くべきは、この古典言語がこれらの機能を具えられるほどの拡張性が既にあったということだ。これは、Lispを度外視してもじっくり読んでみたい。ついに衝動には勝てず、買ってしまうのであった。

本書の特徴は、半分以上がマクロ機能に割かれることである。これはプログラミング言語の書籍では珍しいのではないか。Lispはマクロ機能が強力だと聞くが、なるほど、なかなかの感動ものだ。関数型言語なのでもちろん関数についても書かれているが、あくまでも基本という位置づけでしかない。
「あるプログラミング言語のエッセンスを一文で伝えるのは難しいが、John Foderaroの言葉はかなりそれに近い。: Lispはプログラム可能なプログラミング言語である。」
独自の言語をLispで書いて、その言語でプログラムする。まさに「On Lisp!」というわけか。この本の不思議なところは、コードがたくさん埋め込まれているわりには、抽象的に眺められることである。ユーザ定義のマクロや関数が、あたかも組み込み構文や組み込み関数であるかのように映る。逆に言えば、ネーミングのセンスが悪ければ、たちまち読みづらいプログラムになる。それは、どんなプログラミング言語でも同じだけど...
Lispが強力なのは、様々な機能が集合体となっているからだという。動的メモリの割り当て、ガベージコレクション、実行時型指定、オブジェクトとしての関数、リストを生成する組み込みパーサ、リスト表現を受け付けるコンパイラ、インタラティブな環境などなど...しかし、これらの機能は切り売りされる。近年のプログラミング言語はLispの特徴を多く取り入れている。

マクロと言えば...アセンブラ言語から馴染んできたアル中ハイマーな古代人は強力な武器として崇めていた。もう20年ぐらい前になろうか、おいらは小規模なマイコン用プログラムを書いていた。16KBから32KB程度のもので、リアルタイムOSを導入するには大袈裟な規模だ。当時は「組込み系」なんて言葉も使っていなかった。この世界でもC言語が台頭しつつあったが、コンパイル効率が悪いために冗長度が大きく、メモリ資源に制約のある小規模システムでは致命的となる。構文解析や最適化の癖に合わせてコーディングルールを決めたりしたものだ...
アセンブラ言語の経験があれば、関数とマクロの実装の違いはすぐにイメージできるだろう。関数の実装は、変数の退避などが割り込み処理と似ていて結構面倒だ。CPUが持つ汎用レジスタに役割の規則を作ったりと、なにかと神経を使う。引数はC言語ユーザが嫌うポインタで渡す方が楽だったりする。その点、マクロは単純に展開されるだけなので、関数呼び出しのオーバヘッドがない。だが、呼ばれるたびに展開され、メモリを消費するので頻繁には使えない。また、余計な姿を隠蔽するのが得意なだけに、変数の束縛範囲まで曖昧にしてしまう。ただ、関数を呼び出すためのメッセージ役を与えると癖になる。要するに、マクロの主な役割は翻訳としての機能であった。
この点、Lispは呼び出し側から見てマクロと関数を区別しない。これだけでも強力な要因となりうる。おまけに、マクロ内の変数名が重複しないように、ローカル変数の生成機能(with-gensyms)まである。マクロでは変数名でいつも悩まされるので、うれしい機能だ。
更に、アセンブラ言語レベルでオブジェクト指向っぽいこともやっていた。オブジェクト指向なんて言葉も知らない時代だ。クラスのような雛形を関数で実装するとインスタンスになってしまうので、マクロの方が相性がいい。それは、本書で紹介されるCLOSでも味わえる。変数のアクセスは、マクロメッセージを経由し、set/get系で抽象化できる。カプセル化の概念も知らずに自然に変数を隠蔽していたような気がする。上位階層から眺めると、マクロメッセージが並んだ独自の言語に見える。まさに「On アセンブラ!」というわけだ。
しかし、アセンブラ言語はCPUのシリーズよって方言があるのが厄介である。そして、時代はC言語系へと流れていった。それでも、プリミティブな部分だけ言語に依存させ、マクロで隠蔽するやり方を好むのは変わらない。ちなみに、その頃からの弊害か?いまだに継承の概念は実装のイメージがしずらく、好きになれないけど。
...アル中ハイマーのマクロのイメージとは、こんなもんだ。しかーし、Lispのマクロ機能はそんな比ではない。頭は既にKernel Panic !!!

1. ボトムアップデザイン
どんなプログラミング言語を使ってもボトムアップで記述することはできる。ただ、Lispはそれをこなせる最も自然な器で、開発当初から拡張可能なように設計されてきたという。言語の大半は関数の集合体であるが、それらはユーザ定義のものと区別しない。関数もまたデータと区別されず、Lisp全体がリスト型データ構造となっている。
「ユーザがLispコードを生成するLisp関数を書けるということだ。」
ところで、人間が思考する上で言語の役割は大きい。思考を明確にしたければ、自己を操る言語で書き下ろしてみることだ。分かっているつもりでも、実際に記述してみると、案外分かっていなかったことに気づかされる。自然言語には、思考を整理し客観的な視点を与える役割がある。それは、プログラミング言語でも原理は同じであろう。実装できないものを仕様に盛り込んでも空論に終わる。ならば、プロトタイプを実際に書いてみる方が手っ取り早い。ウォーターフォール・モデルのような思考の一方向性が行き詰まりやすいことは、多くの設計者が知っている。デザインは書いているうちに進化していく。計画で最も重要なのは柔軟性ということになろうか。
本書は、Lispを柔軟性に最適な言語としながら、同時にLispユーザが堕落する可能性を指摘している。それは、言語とアプリの相性に敏感になり過ぎて、他の言語では柔軟性が得られないと思い込んでしまうことだ。なるほど、言語を宗教的に崇めると、逆に思考の柔軟性が奪われるというわけか。人類が絶対的な価値観に到達できないからには、万能で完璧な言語を編み出すことはできないだろう。誰もが英語かぶれになれば、人間社会の思考は英語的になる。言語は手段に過ぎないが、精神と結びつくとこれほど強力な武器もない。よって、個人の肌に合った言語を模索するしかあるまい。

2. 関数型プログラミング
関数型プログラミングが抽象化の可能性を大きくするのは、関数型を返り値とすることができ、関数型を引数に渡せるという特徴があるからであろうか。だから、無理やり一行に収められる。暗号文っぽくなるけど。関数がデータオブジェクトになりうるからには、オブジェクトはそれを呼び出す方法も提供される。Lispでは、それをapply関数が担うようだ。定義した関数をオブジェクトに対応させるために通常 #'オペレートを使うという。

 > (apply #'(lambda (x y) (+ x y)) '(1 2))

apply関数は、引数にリストを渡している。これが気に入らなければ、funcallを使えばいい。
 > (funcall #'+ 1 2)

「関数プログラミングとは、副作用ではなく、値を返すことで動作するプログラムを書くことだ。」
関数の基本的な思想は、副作用を期待するのではなく、返り値のためにあると考えるという。そして、引数に変更を加える関数を「破壊的」と呼び、意識的に区別される。普通のプログラミング言語では返り値は基本的に一つであろう。多値を返す場合はポインタで参照することになる。これが副作用を使う理由になる。破壊的にしたくなければ、ポインタを入力用と出力用で分けるといった面倒なことをやる。
一方、Lispはリスト型データ構造をしているので、もともと返り値に多値が想定されている。しかも、破壊的思想を避ける方向にあるという。尚、「多値」という言葉が使われるが、ここでは集合体のようなデータ構造を意味し、論理学的な多値と意味が違うので注意されたし。
また、関数型プログラミングは命令型プログラミングの裏返しだという。
「関数型プログラムでは、それが欲しがるものを求める。命令型プログラムでは、何をすべきかの指示を求める。」
自分で目的を考えるか、指示されないと動けないとの違いか?まるで現代社会を皮肉っているような。ただ、Lispにだって命令型のように書くことができる。それが幸か不幸かは別にして。
関数型では、一般的に初期値を与えない変数を書く習慣がないという。それだけでも危険度は違う。命令型では、初期値のない変数を書くのは普通に行われる。初期値を与えるように努力したところで、抜けてもエラーが起こるわけでもない。だが、Lispでは問題が起こるという。関数型で最初にトラブることは、命令型では最後にトラブると指摘している。関数の呼び出しは、その呼び出し自身が支配するオブジェクトを完全に書き換えることができるという。
「関数呼び出しは、返り値として受け取るオブジェクトを支配するが、引数として渡されるオブジェクトを支配しない。」
これがLispの慣習だという。ここでは副作用を持つ関数を作ってはならないと言っているのではない。そういう習慣がないというだけで、必要ならば意識して作るということだ。破壊的な関数がトラブルの元になりやすいのも事実で、破壊的にしたければ、setqなどで確実に明示すればいい。

3. マクロ
「マクロ定義とは実質的にLispコードを生成する関数だ - つまりプログラムを書くプログラムだ。」
Lispコードがコンパイルされる時、パーサがソースを読んで出力をコンパイラに送る。パーサの出力は、Lispのオブジェクトのリストから成るという。
驚くのは次だ!なんとマクロはパーサとコンパイラの間の中間形式を操作できるというのだ。コンパイラが読む情報を書き換えられるということは、コンパイラを書き換えられるのと同じではないか。マクロを展開するプログラム自身がマクロであってもいいわけだ。Lispの正体とはマクロ言語なのか?なんとも自己矛盾に陥りそうな再帰的仕組みにも映る。だから、再帰的アルゴリズムと相性がいいのか?多くのプログラミング言語でマクロ機能は搭載されるが、これはマクロの概念を超越していそうだ。実際、Lispのマクロは式を返すし、関数のように振舞う。
構造化プログラミングの推進者は、マクロを避ける傾向にあるという。それは、マクロがどこででも使われることと、その不可視性にあろうか。そういえば、C言語を導入した頃、マクロよりも構文を強く意識するようになり、まず関数で実装することを考えるような気がする。実際、ハウツウ本の例題が関数の実装で溢れている。関数とマクロの使い方が違うとなれば、分けて管理したくもなる。
だが、その区別がなくなりメモリ消費などの制約から解放されるとなれば、話は変わる。とはいえ、マクロにだって欠点が少なからずある。気になるのは、単に展開される仕組みなだけに、再帰的処理では自己矛盾を引き起こすことと、変数の束縛である。関数はレキシカルな領域に独自の世界を作るが、マクロは展開されるだけなので呼び出し側の環境を破壊する恐れがある。本書は、マクロを使って再帰的処理の書き方も紹介してくれるが、そこまでしなくても...変数の束縛では、letやprogなどの特殊形式を用いれば、恐れるほどではない。

4. 継続
継続とは、動作中のプログラムを凍結すること。Lispには、プログラムの状態を保持し、後に再開できる能力があるという。デバッグのための拡張機能が、この古き言語に既にあったというのか。
Schemeが、Common Lispと大きく異なる点の一つに、継続を明示的にサポートする機能があるそうな。Schemeでは、継続は関数と同格のファーストクラスオブジェクトで、クロージャの一般化と解釈できるという。ここでいうクロージャとは、関数とそれが生成された時点で見えていたレキシカル変数へのポインタをまとめたもの。
もしかして、継続の実装はガベージコレクションと同格なのか?などと想像してしまう。具体的には、call-with-current-continueation という組み込みオペレータで継続にアクセスできるらしい。

 (call-with-current-continueation
   (lambda (cc)
  ...))

関数と同格だから、どこにでも埋め込めそう。パフォーマンスも落ちるんだろうなぁ...

5. 非決定性アルゴリズム
日常生活における非決定性とは、ごく自然体である。ほとんど目的もなく気まぐれで行動しているのだから。これぞ人工知能の世界か。尚、Lisp開発者のマッカーシー先生は、「人口知能」という言葉の提唱者でも広く知られる。1980年代、AIブームが起こった。その代表的言語といえば、Prologであろうか。大学のゼミでも専攻している奴らがいた。もっともソフトグループと称しながら、ソフトボールに励んでいたようだが...
本書は、埋め込み言語としてPrologの実装例が紹介される。しかし、プログラムというものは目的意識から生じるものだ。非決定性という不確実性にどう立ち向かうのか?そのアルゴリズムは極めて単純で、その基本機能は、選択と失敗、そして未来計算で抽象化される。具体的には、chooseとfail、あるいはcutというオペレータの実装だ。そして、失敗と判断された経験の蓄積情報のデータ構造が鍵を握る。その処理は、蓄積情報が繰り返し検索され、パターンマッチングとその再帰的処理が根幹となることが想像できる。まさにLispの得意技か。データのツリー構造がパターンマッチングと適合することも味合わせてくれる。だが、経験が多く蓄積されるほど、判断に要する処理時間も長くなり、実用性から遠ざかるだろう。そこで、未来計算をいかに合理的に行うかが問題となる。経路検索を合理化するならば、情報はある程度まとめたい。プログラム的にはメモリを解放したい。では、どのタイミングで情報を捨てるのか?これは確率的な問題であり、用途に応じて決定されることになろう。つまり、cutとは「直感」の実装なのか?人間の思考なんて二分岐の繰り返しであって、その要素は、選択と後悔、そして未来への期待ぐらいなものか。

6. CLOS (Common Lisp Object System)
Common Lispには、オブジェクト指向プログラムを書くためのオペレータが揃っているという。それが、CLOSだ。もともとLispには、オブジェクトの属性でカプセル化の性質があり、ポリモーフィズムも、親から属性とメソッドを継承する性質も備わっているという。なのでLispをオブジェクト指向言語だと説く風潮があるそうな。その時代に名前がなかっただけのことか?
CLOSは、素のLispにオブジェクト指向の流れを組み込んで、形を整えたものだという。ただ、多重継承となると厄介なようだ。オブジェクト指向でも多重継承は混乱の元となる。
本書は、オブジェクト指向言語Lispを強調するために、わざわざCLOSを使わずにオブジェクト指向の実装例を披露してくれる。だが、酔っ払いは素直にCLOSに目を奪われる。
クラスの定義にdefclass、インスタンス生成にmake-instanceを使う。インスタンス変数やメソッドに相当するものにスロットがあるが、CLOSでは、スロットとメソッドを区別するようだ。defclassでスロットをセットで宣言し、メソッド定義にはdefmethodを用いる。なるほど、まったく違和感がない。

 -- GNU CLISP 2.48 での実行例 --
 :accessor は、スロットへのアクセスメソッド
 :initform は、初期値の指定
 :initarg は、引数シンボルの指定

 [1]> (defclass circle ()
        ((radius :accessor circle-radius :initform 1 :initarg :radius)
          (center :accessor circle-center :initform '(1 . 1) :initarg :center)))
 [2]> (defmethod area ((c circle))
        (* pi (expt (circle-radius c) 2)))
 [3]> (defmethod move ((c circle) dx dy)
        (incf (car (circle-center c)) dx)
        (incf (cdr (circle-center c)) dy)
        (circle-center c))
 [4]> (setf ins_circle (make-instance 'circle :radius 2 :center '(2 . 2)))
 [5]> (area ins_circle)
  12.566370614359172954L0
 [6]> (move ins_circle 2 3)
  (4 . 5)

==== ちょっと気になる技をメモしておく ====
1. 複数の返り値を受け取る方法
multiple-value-bind を使うと、複数の返り値を受け取ることができるという。

 > (multiple-value-bind (int frac) (truncate 26.21875) (list int frac))
 (26 0.21875)

2. コンパイルの過激なテクニック
Lispの関数は、個々でもファイル単位でもコンパイルできるという。必要に応じて関数を個別にコンパイルできるというのだ。λ式ですら。こんな過激な行為はやらないだろうけど、ちょっと感動してしまう。

 > (compile 'bar '(lambda (x) (+ x 2)))

3. ダイナミックスコープ
Lispの特徴として、ちょっと気になるのにダイナミックスコープがある。それは、前記事に「初めての人のためのLISP」でも取り上げた。だが、本書の印象はちょっと違う。
Lispコミュニティでは、ダイナミックスコープを廃止する傾向にあるようだ。Common Lispでは、普通はレキシカルスコープになるらしい。クロージャを実現するには、関数と変数束縛がセットになっている必要がある。Common Lispでもクロージャが浸透していると言ってくれる。これは安心させてくる。前記事は、古典的な流れを紹介していたのかもしれない。
また、マクロで弱点になる変数捕捉の対策として、with-gensymsという便利なマクロを紹介してくれる。その実装まで記されるが、既に組み込まれているようだ。ただし、clispとCommon Lispでは仕様が違うみたい。
 Common Lisp : (defmacro with-gensyms (syms &body body) ...)
 clisp : (defmacro with-gensyms (prefix syms &body body) ...)

4. 末尾再帰のテクニック
再帰関数で関数呼び出しの後に行うべき作業が残っていない場合、すなわち、再帰呼び出しの値が即座に返される場合の関数を末尾再帰と呼ぶそうな。再帰関数でよくやるのが、再帰呼び出しの後、何か処理をして値を返すといったことである。しかし、Common Lispコンパイラは、末尾再帰の関数をループに変換するので、末尾再帰を使うのが望ましいという。これでパフォーマンスも向上しそうな予感がする。現在のCommon Lispコンパイラは、C言語と同等かそれ以上の速いコードが得られるそうな。

5. SchemeとCommon Lispの相違点
  1. Common Lispが、symbol-valueとsymbol-functionを区別するのに対して、Schemeは区別しない。Schemeでは、変数は関数でもオブジェクトでもいいので、#'やfuncallが必要ない。
  2. Schemeの名前空間は一つ。だから、代入オペレータが個別にdefunやsetqのように存在しなくていい。代わりに、definとset!がある。グローバル変数は、definで定義しないと、set!で値を設定できない。
  3. Schemeでは、関数はdefinで定義される。defvarだけでなくdefunの役割もある。
  4. Common Lispでは関数の引数は左から順に評価するが、Schemeでは評価順は意図的に未定義。
  5. Schemeでは、tとnil の代わりに、#tと#fがある。
  6. condやcaseでデフォルト節は、Common Lispではtを使うのに、Schemeは、elseを使う。
  7. いくつかの組み込みオペレータの名前が違う。conspは、pair?、nullは、null?、mapcar は、ほぼmapに対応。ちなみに、Lispでは判定文の末尾にpを付ける慣習があるらしいが、「初めての人のためのLISP」では、Schemeのような新参者はpの代わりに?を使うと書かれていた。
...ちょうど目の前にGuileがあるので触れてみたが、道は遠い!

6. メソッドの結合
CLOSでは、基本メソッドと補助メソッドで区別している。基本メソッドとは、普通にユーザが定義するメソッドのこと。補助メソッドには、before, after, around がある。なんとなく、awkのBEGIN ENDの構文に似ているような。

例題)
「Perhaps ... in some sense」の中に任意の文字列を埋め込む。
「Does the King believe that...」の後ろの任意の文字列を埋め込んで、yes/noで答える。
----------------------------------------------------------
#! /usr/bin/clisp

(defclass speaker nil nil)
(defmethod speak ((s speaker) string)
  (format t "~A" string))

(defclass intellectual (speaker) nil)
(defmethod speak :before ((i intellectual) string)
  (princ "Perhaps "))
(defmethod speak :after ((i intellectual) string)
  (princ " in some sense") (terpri))

(defclass courtier (speaker) nil)
(defmethod speak :around ((c courtier) string)
  (format t "Does the King believe that ~A? " string)
  (if (eq (read) 'yes)
    (if (next-method-p) (call-next-method))
    (format t "Indeed, it is a preposterous idea.~%"))
  'bow)

;(speak (make-instance 'intellectual) "life is not what it used to be")
(setf ins_intellectual (make-instance 'intellectual))
(speak ins_intellectual "life is not what it used to be")

;(speak (make-instance 'courtier) "kings will last")
(setf ins_courtier (make-instance 'courtier))
(speak ins_courtier "kings will last")
----------------------------------------------------------
まず、aroundメソッドを評価し、その中で、next-method-p と、call-next-method が評価される。続いて、beforeメソッド、基本メソッド、afterメソッドの順に評価される。関数の返り値は、aroundメソッドの返り値となる。一番外側にaroundメソッドの殻があって、その中にbeforeとafterメソッドがあって、核の部分に基本メソッドがあるような三重構造のイメージか。これを「メソッドの結合」と呼ぶそうな。なかなかおもしろい機能だ。対話式プログラムを書く時に使えそう。
また、あるクラスにおいて、すべての基本メソッドの返り値の和を求める例が紹介される。ほぉぉ...

2011-11-20

"初めての人のためのLISP[増補改訂版]" 竹内郁雄 著

先月(2011年10月)スティーブ・ジョブズが亡くなって、世間の話題をさらった感があるが、同月に言語界の巨匠が亡くなって、それなりに業界を賑わしている。C言語の開発者デニス・リッチーと、Lispの考案者ジョン・マッカーシーである。カーニハンとリッチー共著の「THE C PROGRAMMING LANGUAGE」(原書)が、本棚に懐かしく並ぶ。
さてLispだが、ずーっと前から触れてみたいと考え、ようやく今年になって少し触れてみた。ポール・グレアム氏の著書「ハッカーと画家」の影響である。そこには、Lispを学べば実際にLispプログラムを作ることがなくても良いプログラマになれると熱く語られていた。だが、いまいち踏み切れない。いかんせん他のプログラミング言語と見た目が違う。S式とかいうヘンテコな宣教師が「カッコカッコ...コッカコッカ」と呪文を唱えれば、カッコの奥からletとかいう控えめな教職者がlambdaとかいう名もない浮浪者に見返り(返り値)をねだってやがる。鬱陶しい奴らだ。今日ではプログラミング言語も多様化しているし、わざわざこの古い言語に立ち返らなくても...という意識がどこかにある。プログラマでもないし。
そんなある日、本屋を散歩していると、一つの宣伝文句に目が留まる。
「道はnilを生ず。nilはアトムを生じ、アトムはS式を生じ、S式は万物を生ず。」
これは、老子の言葉「道は一を生ず。一は二を生じ、二は三を生じ、三は万物を生ず。」をもじっている。nil(ニル)とは、煮ても焼いても食えないやつだ。それは一般的なプログラミング言語のnullに相当し、空っぽを意味する。哲学風に言えば、無形化したもの、空虚なもの、実体を失ったもの、とでも言ってやるか。つまり、無から実が生じると言っているわけだ。孫子の兵法の基本原理「虚実の理」を匂わせれば、泥酔者はイチコロよ!

人間社会が仮想化へ邁進すれば、人間の価値観までも実体から乖離していく。ものづくりの世界では、あらゆるハードウェアがソフトウェア化し、いまや何に価値が生じるかも想像できない。そして、自己の実存にすら確信が持てなくなり、何にすがって生きればいいのかも難しくなる。高度な利便性と溢れる情報量が人々を惑わせ、無形化した何かに恐怖する羽目になろうとは。精神は実体である肉体から離れていく。まるで現実逃避するかのように。いや、仮想化社会だからこそ、逆に精神の内に見出す実体的な何かが必要なのかもしれん。実際、周囲の若い技術者たちには哲学的な観点からシステム思想を考える人が増えてきた。その一方で、システム思想に適合しない流用資産を持ち込んで、開発期間が短縮できるなどという夢想を押し付けるオヤジたちにうんざりする。まさにLispは、データの本質とは何か?とデータ構造の観点から哲学的実体を問うているような気がする。

かつて、プログラマはコードの書き方にエレガントさを感じ、そこに生き甲斐を求めてきた。今日では、データ構造のエレガントさがコード効率を高める。おいらは、データ型の宣言が厳格なものを好む傾向がある。昔は、適度に厳格な仕様がなかったからだ。近年の動的言語では、型宣言がそこそこ緩やかで、ダックタイピング的な特徴があるのはありがたい。
こうして振り返ってみると、無意識にデータとコードを区別して思考している。例えば、関数の構文では、関数本体と引数を区別している。むかーし、メモリ管理方式にセグメントという概念があり、コードセグメント、データセグメント、スタックセグメントで分けていた。おまけにエクストラセグメントなんてものもあったけか。こうした時代に生きた人間には、コードとデータを分けて思考する慣習がどこかに残っているかもしれない。
しかし、だ。Lispは、もっと古い時代から存在するにもかかわらず、プログラムとデータを区別しない。Program as data !これは、いかに実装されるかを想像してみれば当たり前のことだけど。プログラムだろうがデータだろうが、メモリに格納された状態は「アドレス + データ」という単純な構造をしている。関数をcallしたところで、関数の実体が存在するポインタを参照するだけのこと。関数の中身の逐次処理は、順序付きのデータコンテナで構成されたリスト型データと捉えることができる。引数では、値そのものを格納するか、値の存在するポインタを格納するかの違いがあっても、同じくリスト型で抽象化できる。ちょっと視点を変えて、関数が返す値はデータなのだから、関数自体をデータの一種と捉えても不都合はない。データにしても、データそのものを返すquote関数の結果と捉えれば同じく抽象化できる。
そして、リスト型データを配列風にカッコで表現すれば、関数も引数と同列にカッコの中に含まれ、データの多重構造は必然的にカッコの多重記述になる。なるほど、S式はLispポインタに他ならないというわけか。カッコカッコ...コッカコッカという呪文そのものが、リスト型データの合理性を表しているということか。Lispはよく関数型言語と言われるが、その特徴はリスト型データ構造の方がはるかに本質的なのかもしれない。
...と結論づけるのは浅はかで、別の書籍を読むと、実は命令型プログラムの裏返しとして重要な意味があるらしい。それは次回扱うとして、今宵はリスト型を味わうことに主眼を置くとしよう。理屈が見えてくれば、呪文への抵抗感が薄れていく。ありがたや!ありがたや!

本書は、プログラムとデータが相互に立場を変え得ることが、フォン・ノイマン型アーキテクチャの本質だと主張する。その思考は機械語的ですらある。なるほど、Lispはハードウェアと相性が良さそうだ。実際に、機械語でどのように振る舞うか想像しながらプログラムを書く人も少なくなかろう。特に、組み込み系ではそういう傾向が強い。
余談だが、電子回路設計では、ソフトウェア化が進みハードウェア記述言語(HDL)を用いる。そして、更なるシステム設計の効率化を進め、C言語系と連携した上流設計を目指す。ただ、昔からハード屋さんがソフトウェア化を叫べば、やたらとC言語化するものだと考えがちだ。特にC++系を崇める風潮がある。動作合成ツールでは、ひたすらC言語系を用いて動作レベルを記述しようと躍起になる。おまけに、回路の知識がまったくない人に、"Hello world !"プログラムが書ければ回路設計ができると勘違いさせて、現場を混乱させる。
その一方で、システム業界では言語の多様化が進み、C言語系にこだわる事例が減っている。そもそもC言語とHDLの相性がいいのかも疑問だ。Lispの方がはるかにHDLと相性がいいのではないか、と思う今日この頃であった。

1. 動的束縛の言語
「Lispはプログラムの実行時まで呼び出すべき変数のデータ型や関数の実体が決まらない動的束縛の言語である。」
動的束縛は、解釈実行型かつ program as data であることとほぼ同義だという。コンパイラでは速度性能の観点から、プログラム形式に静的な宣言を取り込もうとする傾向がある。そうなると、Lispのような動的言語は時代遅れとされるかもしれない。だが、ハードウェア性能が向上すると、その場で解釈しながら実行できる言語がもてはやされる。そういえば、インタプリタという用語をとんと聞かなくなった。実行ニュアンスがちょっと違うかなぁ。
また、ソフトウェアが大規模化すれば、トップダウンで要求仕様をしっかり決めないとプログラムが書けないという風潮がある。しかし、ボトムアップでプロトタイプをすぐに書けるというのは大きな魅力だ。トップダウンで構成された大規模なプログラムを、アップデートすることは面倒である。近年、システムを停止しないままアップデートすることが求められ、プログラムを動的に管理する必要がある。
ところで、動的といえば、Lisp言語の歴史そのものがまさに動的であるという。ようやく、Common Lisp と Scheme の二大方言に落ち着きつつあるようだが、永久に動的であり続けるのかもしれない。ちなみに、ガベージ・コレクションを最初に実装したのが、Lisp1.5 だそうな。現在では、Java, Python, Rubyなど多くの言語システムで実装されている。いわばゴミ集めの機能だが、これを言語システムで持つ必要があるのは、動的言語の宿命であろうか。

2. S式とM式
言語の最大の目的は、意味論的な機能を果たすことであろう。自然言語の優位性は、人間の感情を取り込むところにある。一方、コンピュータでは、感情を排除し一義的に処理する能力が求められる。しかも、コンパクトに記述するとなれば、そのほとんどの機能は数学的な表現となろう。
初期のプログラムは、関数表記に近いM式(Meta Expression)で書くものとされたらしい。M式とは、S式(Symbolic Expression)を引数として扱う表記で、例えばこんな感じ。

 length[x] = [null[x] → 0; t → add1[length[cdr[x]]]]

んー、見る気がしない!
もともとS式は、データやプログラムの内部表現を書くための低レベルの表記法だったという。例えばバイナリダンプのような。やがてM式は廃れるが、カッコだらけのS式が一般受けしなかったのは言うまでもない。
「Lisp嫌いは、S式をLispのよい特徴を覆い隠す必要悪と考えているらしい。」
S式は前置記法によく適合するだけでなく、言語意味論を簡単に乗せることができるという。それは二つのデータ、すなわちリストとアトムで構成される。リストはデータのペアを表わし、アトムはその素材である数字や文字列を表す。アトムはこれ以上分解できない物質の原子のようなもので、リストはアトムのペアで構成される分子のようなものというわけ。リストの表現は、アトムを羅列してカッコでくくったもので、コンマなどの区切りはない。リストの基本は二進木構造にあり、並べられたアトムはその順番に意味を持つ。そして、S式だけが yes か no を答える。もっとも、yesは T(true)、noは nil となる。言語学的には、必要最小限の情報量を与えているということはできそうだ。人間の判断力の根幹とは、まさに素材と選択肢、つまりはアトムとリストにあるのではないか!ちと大袈裟か。

3. ちょいとリスト型を味わう!
Lispの発明者マッカーシー先生は、リストの一番目の要素を、car と呼んだそうな。そして、1個以上の要素を持つリストから car を除いた残りのリストを cdr と呼んだそうな。
carとは、Contents of the Address part of Register number の略、
cdrとは、Contents of the Decrement part of Register number の略。そんなウンチクはどうでもええ。ちなみに、car を head 、cdr を tail と呼ぶ人もいるそうな。
それでは、ちょうど目の前に、GNU CLISP 2.48があるので遊んでみよう!
car関数を評価すると...

 (car (goo choky pah))
 *** - EVAL: undefined function GOO
 The following restarts are available:
 USE-VALUE :R1 Input a value to be used instead of (FDEFINITION 'GOO).
 RETRY :R2 Retry
 STORE-VALUE :R3 Input a new value for (FDEFINITION 'GOO).
 ABORT :R4 Abort main loop

goo が評価できる関数ならば答えが返ってくるのだろうが、そうは問屋が卸さない。関数の引数が関数であってもいいのだ。
 (car '(goo choky pah))
と引用符を付けると、リスト(goo choky pah) に対するcar が評価されて、gooが返ってくる。んー、引用符の使い方に意義があるのかぁ。
引用符を用いるのは記法上の便法で、Lispがデータの皮を食ってしまうという。なんじゃそりゃ!
 (+ 1 2 3 4 5) は、 (+ '1 '2 '3 '4 '5) と書いても同じ。
 (car '(a b c)) を評価すると、aを返す。
 (cdr '(a b c)) を評価すると、(b c)を返す。
リストを作る時は、cons関数を使う。
 (cons 'x '(y z)) を評価すると、(x y z)を返す。cons関数は carや cdr の逆関数と解釈できそうだ。
アトムの判定には、atom関数を使う。
 (atom '(x y)) を評価すると、nilを返す。アトムではなくリストというわけか。
 (atom nil) を評価すると、Tを返す。nilはアトムというわけか。
また、辞書の語彙を増やすのに、set関数がある。
 (set 'A 'aho)
A と aho に引用符を付けて関数の引数と評価している。
よく見かけるのに、setq(set quote)という関数もどきがある。
 (setq A 'aho)
Aに引用符を付けずに関数の引数と評価させて、自動的にうまいことやっているわけか。尚、このような評価を特別扱いするものを、「特殊形式」と呼ぶらしい。
関数が数値や文字と同じようにアトムとして扱われるだけに、その評価も統一性がある。ただ、直観的に左側のアトムの評価が鍵を握っている。更に、第一引数に特殊な意味を持つ場合があることにも注意したい。感覚的には、他の言語では文法に注意するが、Lispではアトムの評価の順番に注意すればよさそうだ。
ちなみに、CLISPを終了する時も(exit) とカッコを付けないと終了しない。(quit)も同じ。
 (atom 'exit) を評価すると、Tを返す。コマンドもアトムというわけか。
これだけでもリスト型言語であることが味わえる。

4. 再帰的思考に威力あり!
ここで、リストの長さ(アトムの数)を求める関数を作ってみよう。

 (defun lengthc (x)
   (cond ((null x) 0)
     (t (1+ (lengthc (cdr x)))) ))

 (lengthc '(aa bb cc)) を評価すると、3を返す。

リストの長さは、空リストなら0、そうでなければcdrの長さに1を足していく。これが、Lisp風の再帰的思考だそうな。
これを通常のプログラム風に思考すると、次のようになる。
(1) カウンタ値をリセット。
(2) リストが空ならば、そのままカウンタ値を返す。
(3) xを元のx のcdrに置き換えてカウンタに1を足す。そして、(2)に戻る(loop)。
これをLispでも書けなくはない。

 (defun lengthd (x)
   (prog (count)
        (setq count 0)
  loop  (cond ((null x) (return count)))
        (setq x (cdr x))
        (setq count (1+ count))
        (go loop) ))

尚、Lispには、progという特殊形式が用意されていて、(prog(x y z)...)で、ローカル変数を宣言できる。loopから抜ける時の値は、returnで返す。
更に、do文を使えば軽快になる。

 (defun lengthe (x)
   (do ((count 0 (1+ count)))
     ((null x) count)
     (setq x (cdr x)) ))

こうして比較してみると、Lispは再帰的思考に威力を発揮することが見えてくる。しかし、昔から計算機的な思考は再帰法なんか使わずに、BasicやFortran風に goto, do, loop が主流であった。Lispの基本的な思考は再帰的であるために数学の匂いを強く感じさせ、これが敬遠される理由だったという。それだけではないだろうけど。再帰が深まるとリストの長さに比例したメモリを消費するが、従来のプログラム思考では、変数count だけの領域でいい。かつてはハードウェア資源に制約がある場合がほとんどだった。物理的な制約からも、再帰的な思考は避けられていた。そういえば、オブジェクト指向という言葉が登場したあたりからであろうか。gotoプログラム撲滅運動が始まった。単純な繰り返しならば、loopラベルで明記できるが、ラベルが乱立すれば、たちまちスパゲッティ状態になる。検証も思いっきりやりずらく、ブランチカバレッジを真面目に見ようものなら頭が痛い。ただ、人間の一般的な思考方法において、再帰的思考は馴染まないかもしれない。再帰だろうがloopだろうが、精神ってやつは自己循環論に陥りやすく、おまけに自己矛盾に悩みながら精神病を患うのは同じか。

5. lisp の核はコンパクト!
  1. nil、数、文字列は、評価するとそれ自身を返す。
  2. シンボルの評価値はその時点での環境によって決まる。
  3. シンボルの評価値は、第0要素を関数、第1要素以下を引数と見なし、左から順に評価する。ただし、次の、4. 5. を除いて。ちなみに、関数を引数リストに適用(apply)すると言うらしい。まさしく、apply関数はこれをやっている。
  4. リストの第0要素が次のものであった場合、第1要素以降をどう処理するかは、第0要素により異なる。quote, cond, setq, prog, progn, go, let, let*, if, do, do*, defun, defmacro, functionなどは、第1要素以降を闇雲に評価せず、引数の評価を各自がきめ細かくコントロールする。例えば、quoteは第1要素を評価しないでそのまま返す。
  5. リストの第0要素がマクロであった場合、第1要素以下を評価せずにマクロの本体に渡す。そして、マクロ本体が返してきた値をその場でもう一度評価する。
実は、4.の中の特殊形式にも、Common Lispではマクロとされるものがあるそうな。例えば、condやdoなど。

6. ちょいと気になるスコープルール
動的スコープが用意されているのにちょっと警戒する。これは言語仕様の根本的な問題となろう。動的スコープを野放しにすれば、他の言語派から迫害を受けるに違いない。そこで、しかるべき非局所的な変数に限るという意図があるという。letやdoは変数を束縛する機能を持っている。
確かに、システムの中で常識的な変数をグローバルに参照できる方が、効率が良い場合がある。変数を参照するだけのメッセージ関数を用意するのも面倒だ。
動的スコープの変数は、special変数と呼ばれ、非局所的に宣言して、*で囲む慣習があるそうな。例えば、*standard-input* といったもの。最初から動的スコープと分かっているやつは、宣言する必要もないらしい。静的スコープの良さは、分かりやすさを求めるというより、ミスを防ぐことを重点に置く。ミスを回避して分かりやすくなるのであれば、動的スコープもありか。実は名前空間が適度というのは非常にありがたい。ただ、適度というのがくせものだけど。いずれにせよ、自由が野放しにされるのは危険であろう。その意味で大人の言語と言えるかもしれない。
Common Lisp では、名前空間をシンボル・パッケージ、あるいは単にパッケージと呼ぶそうな。標準装備されているパッケージは、lisp, user, keyword, sysytem の4つだという。lisp にはcarやcondなど一般的に使われるシンボルが、user にはユーザ定義のシンボルが入っている。system にはLispの言語処理系が内部で使用するだけで一般公開されないシンボルが入っている。ほんで、残りがkeyword。
lisp:car に対して、ユーザが、user:car や keyword:car を作ってもいい。文脈がはっきりしていれば、パッケージ名は省略できる。ただし、keywordだけは特別扱いされ、例えば、keyword:direction は、:direction と書けるそうな。

7. prog と let
progは、4つの基本機能を統合した特殊形式だという。、
(1) ローカル変数を宣言する。
(2) goによって繰り返しや飛び越しを可能にする。
(3) 計算の途中でreturnで強制的に値を返す。
(4) 不定個の式を上から順に評価する。

(4)の機能は、progn という形式も用意されている。
 (progn 式1 式2 式3)
ただ、頻繁に複数式が用いられるので、progと書いてもprognと解釈されるのが一般的だという。
(4) だけなら、progn と書けば複数式が強調される。
(1) と(4) だけなら、letを使うとよい。変数宣言と式の逐次評価機能だけに的を絞ったのがletで、return不要で気分爽快!

8. Lispの得意な分野
Lispは、データ構造が配列や連想リストなどで構成されている場合に威力を発揮するであろう。すぐさま思い浮かべるのは、行列式などの数値演算や、画像処理などの空間処理を扱うような分野である。本書は、自然言語やプログラミング言語の言語処理、あるいはデータベースのような分野でも威力を発揮するとしている。
ちなみに、配列では、setqよりも抽象化されたsetfを使うのがよいという。Common Lispで推奨されるのは、setfだそうな。配列要素へのアクセスには、aref(array reference)が用意されている。
本書は、データ構造が伸び縮みする例題として、キューとスタックの実装を取り上げている。キュー(待ち行列)はFIFO構造、スタックはLIFO構造をしている。キューの制御例では、DeQ/EnQ、スタックの制御例では、Push/Popがお馴染みで、通信系の回路設計に携わると必ず登場する技術だ。
また、ツリー構造の例題として、Jpegなどの圧縮フォーマットで用いられるハフマン符号化を取り上げている。そういえば、むかーしFAX系の通信システムでハフマン符号の回路設計にも携わった。
...などと、Lispを初めて使うはずなのに、なにやら懐かしいものを感じる。これがデジャヴってやつか?

2011-11-13

"通信の数学的理論" Claude E. Shannon 著

情報理論の父と呼ばれるクロード・E・シャノン。コンピュータ工学や通信工学に携わる人で、この名を知らない人はモグリだろう。この業界の設計をやっているにもかかわらず、彼の書籍に触れたことがないのは面目ない!言い訳するなら、チューリングやノイマンに比べると、ちょっと地味な印象があるかなぁ...

1948年、シャノンは記念碑的論文「通信の数学的理論」を発表した。本書は、その論文にワレン・ウィーバーの解説文を付して刊行されたものである。シャノンが工学の分野に貢献したことは言うまでもないが、ウィーバーは一般的な情報としても抽象化できると指摘している。つまり、情報の本質である信憑性や意味性においても、この理論が適合できるというわけだ。確かに、シャノンが提唱する情報エントロピーの概念は、通信技術のみならず情報社会の哲学的意義にも影響を与えてきた。情報量といえば、単純にメッセージの長さで捉えがちであるが、シャノンは伝達における情報量を、選択肢の自由度あるいはあいまい度で定義した。情報量は、選択肢の数に依存するのではなく、選択肢の確率に依存するということである。いくつかの選択肢の確率が公平に近づけば、結果予測が困難となる。それは、選択する側から見れば自由度が拡がることを意味し、予測する側から見ればあいまい度が増すことを意味する。これが情報エントロピーの基本的な考え方である。
また、情報の誤りを是正するための冗長性は、伝送系の能力に依存するとした。これは、伝送系の能力を超える符号化は不可能ということを意味し、ひいては符号理論の意義を唱えていると言えよう。
情報理論は、情報伝達という観点から言語学や社会学との関わりも深い。いや、あらゆる学問において専門に特化した合理的な表記法が考案され、表現に関わるものすべて情報理論に関わると言っていい。実際、プログラムの逐次処理が分岐構造を基礎とし、あらゆるリスク管理や社会政策などが現象の確率と優先度によって構築されている。マスコミ報道や風評流布の類いが世間を惑わす原理も、基本的には誤り訂正やノイズの原理と同じである。この時、選択肢の確率は情報の信憑性と捉えることができるし、欺瞞や誤謬あるいは精神不安など、判断を歪ませるものすべてがノイズと捉えることができる。更に、伝送系の能力は解析能力に通ずるところがあり、能力を超えた情報量はむしろ有害となろう。情報は多すぎても少なすぎても混乱を招く。そして、情報理論には「知らぬが仏」の原理が働くというわけさ。

本書に示される通信システムのモデルは6つの要素で構成される。あのお馴染みのやつだ。
 「情報源 → 送信機 → 通信路 + 雑音源 → 受信機 → 受信者」
シャノンの思考には、基本的に「通信とは、本質的にデジタルである」というのがあるそうな。ここでいうデジタルとは、情報の離散的性質を意味する。コンピュータやインターネットなどで扱うデータはデジタル量であり、その周辺を取り巻く伝送路や記憶媒体には必ず誤り率を有する。この性質は自然法則として受け入れられ、今日のデジタル技術は標本化定理や符号理論によって支えられている。通信システムの保証は誤り訂正能力で決まり、通信路の限界はビットの概念を指標としている。
しかし、人間が認識する情報は、本来的に音声や映像といった連続性であり、極めてアナログ的である。人間は、現在の瞬間的現象に対して未来予測と過去の経験から認識能力を発揮する。つまり、線形性であることが望ましい。数学的に言えば、時間の関数とエネルギー分布として捉えることができる。本書は、このアナログ的な連続量を重ね合わせの原理で、関数の集合と関数のアンサンブルとして波動的に捉える。そして、原理的には連続情報も離散情報と同じ形で抽象化できると結論づけている。

1. ビットの概念と情報エントロピー
選択肢で最も単純な形は二者択一である。複数の選択肢は二択の多重化と考えればいい。二つの状態は、工学的には、回路の開閉、リレーの接点、トランジスタのオンオフなど電流が流れるか流れないかで実現でき、数学的には、0と1で符号化できる。したがって、選択動作を繰り返せば状態は2のべき乗で増加し、情報量を2を底とする対数で扱うと便利である。ジョン・W・テューキィは、2進数情報の単位として、binary digit を縮めた語「bit」を提案した。
ビットの概念では基本的にあらゆる状態が公平に扱われるが、現実には確率的に捉える必要がある。例えば、言語システムでは最初の単語に続く単語が文法的にある程度決まっている。次に続く状態の確率が高い場合は省略もできるが、逆に確率が低い場合は単語を増やしてでも明示する必要がある。これは伝送系にノイズが紛れる原理と似ていて、受信側は正確な情報を予測することになり、ノイズの確率過程を分析することになる。よく知られる確率過程には、現在の状態だけで予測できるようなマルコフ過程がある。例えば、コイン投げで表と裏の出る確率が5割で予測できるようなもの。あるいは、標本数を適当に増やすことによって予測できるようなエルゴード過程がある。例えば、世論調査のようなもの。これらには離散的な記号を続けて選ぶという原理がある。こうした確率的傾向による情報量の変化が符号理論の概念を生んだ。すなわち、情報量とは、情報の正確性やあいまい度といったエントロピー的な量であるということが言えよう。自由度が増せば、それだけ符号化も複雑になる。
実際のエントロピーとエントロピー最大値との比は、情報源の「相対エントロピー」と呼ばれるという。例えば、相対エントロピーが0.8だとすると、メッセージを構成する記号の選択に関して、情報源が80%の自由を有するということである。そして、1から相対エントロピーを引いた量が冗長度ということになる。
ちなみに、本書は英語の冗長度を約50%と推定している。ただし、8文字の文字列の統計的構造について調べたもので、実際の英語の冗長度はもう少し高いらしい。満足のいくクロスワードパズルを作るためには、言語が少なくとも50%の自由度、または相対エントロピーを有しなければならないという。自由度が少なければ、単純なパズルしか作れないからおもしろくないというわけだ。
しかし、工学と言語学では考え方に大きな違いがある。それは、情報の意味するもの、意図するものに関係なく、すべての情報に対して公平に扱うという難題に立ち向かうことになる。そして、情報の効率性から、可変長データなどのデータ構造自体にも工夫が必要となる。

2. 情報量
各状態がそれぞれ、P1, P2, ..., Pn の確率で選ばれるとすると、情報量Hは次のようになるという。

 H = -[ P1 log(P1) + P2 log(P2) + ... + Pn log(Pn) ] = -Σ(Pi log(Pi))

ここで、logの底は本質的にはなんでもいいのだろうが、デジタル量として扱うには底を2とすればいい。例えば、二つの確率(P1, P2)があるとすると、二つの確率が等しければ情報量Hは最大値となるが、二つの確率が偏れば情報量Hは小さくなる。
 H = - {1/2 log2(1/2) + 1/2 log2(1/2)} = 1
 H = - {1/4 log2(1/4) + 3/4 log2(3/4)} = 0.81128
社会的認識と照らしあわせれば、公平とは自由を意味し、選択を誘導するということは自由を迫害するということであろうか。だが、政治の世界では、平等と自由はすこぶる相性が悪い。

3. 伝送能力
通信路の容量は、記号の数ではなく情報量によって表され、それは伝達能力と言うことができる。そして、通信効率を高めるために符号理論がある。
ここで、ノイズが存在しないと仮定し、情報源からの信号をH(bit/s)、通信路の容量をC(bit/s)とすると、次の定理が導かれる。

「送信機が行う符号化法を適切なものにすることで、ほぼ C/H の平均伝送速度で通信路を通して記号を送ることができる。しかし、どんなに符号化を工夫しても、伝送速度が C/H を超えることは絶対にない。」

したがって、通信路の設計では、伝送速度の経済性と符号化時間の損失とのバランスをとること考え、C/H を指標としながら折り合いをつけることになる。更に、ノイズの存在が符号理論を複雑化させ、冗長度を増加させる。ただ、ノイズも確率として扱うことによって、情報の全体を相対エントロピーとして扱うことはできそうだ。
ここで、H(x)を情報源のエントロピーまたは情報量、H(y)を受信信号のエントロピーまたは情報量とする。そして、Hy(x)を受信信号が分かっている時の情報源の不確かさ、Hx(y)を送信信号が分かっている時の受信信号の不確かさ、とすると次式が成り立つという。

 H(x) - Hy(x) = H(y) - Hx(y)

この式で注目したいのは、情報の不確かさも重要な情報になるということである。例えば、ノイズフィルタを設計する時、ノイズ特性を強調して、その反転をフィルタ特性として用いることがある。逆の視点から眺めれば、ノイズ自体が貴重な情報源となりうるわけだ。
通信路の容量が意味するものは、有益な情報を伝送できる最大能力、あるいは最大転送速度ということになろうか。そして、符号効率は、有害な不確かさ、H(x) - C を上回る性能が求められることになる。H > C ならば符号化は不可能ということは明らかだが、これが符号理論の概念を根本的に支えている。したがって、符号能力は確率分布から計算されるエントロピーから得られ、符号の冗長性は誤り率とのトレードオフの関係にある。

4. 連続情報
これまでは記号や文字などの離散的な情報を扱ってきた。では、音楽や映像のようなエネルギーが連続的に変化するような情報については通信理論はどうなるのだろうか?拡張された理論は数学的に非常に複雑にならざるを得ないが、本質的なことは変わらないという。まず、連続情報は時間的変化をともなうので、その基本形は次のようになる。

 f(t) = sin (t + θ)

この時、正弦波か余弦波かは位相で抽象化できるのでどちらでもいい。むしろ連続で押し寄せる波と位相の関係が重要なのだ。連続情報では、この形の関数がほとんど無限に存在するという極めて複雑な事情がある。つまり、fk(t) = {f1(t), f2(t), ...} といった関数の集合体として扱わなければならないという絶望的な状況だ。よって、工学的には、周波数帯域を限定して有限体として捉え、離散基底に持ち込むのが現実的ということになろうか。この集合体の中で、位相のずれになんらかの法則性を見出すことができれば、基本関数の巡回性と見なして、ガロア理論的な思考も試せるかもしれない。複雑系をエネルギー分布として統計量で扱う思考は、社会学が風評や世論の変化を近似的に分析するのと似ている。つまり、群(群集)分析だ。
今、fk(t) (k = 1, 2, ..., n) の確率分布関数を p(x) = {P1(x), P2(x), ..., Pn(x)} とすると、連続分布のエントロピーは連続区間の積分で定義される。

 H = -∫p(x) log p(x) dx (ただし、積分区間は±無限)

この形は、離散情報と基本的に同じである。更に、連続信号の通信路の理論は、周波数帯における重ね合わせの原理で周波数スペクトラムとして扱い、通信機の平均電力Pで議論される。そして、シャノンが定義したホワイトノイズ電力をNとすると、周波数帯域幅Wでの通信路の最大容量Cを与える公式が導かれる。

 C = W log( (P + N)/N )

ここでも、logの底は本質的にはなんでもいいのだろう。この公式は、離散性から連続性に抽象度を高めたというよりは、現実的な解を示したという印象が残る。まさに、現実の世界を生きる工学という分野の醍醐味と言えよう。

2011-11-06

"ガロア理論入門" Emile Artin 著

線形代数と出会ったのは大学の初頭教育であろうか。落ちこぼれスプレーを浴びせかけられた、あの忌々しい記憶が蘇える。おまけに、この書が入門レベルというからイヤになる。
ところで、「線形」ってなんだ?学生時代から疑問を持ち続け、いまだ答えが見つからない。用語辞典をググれば、それなりの答えが氾濫するが、どれもしっくりとしない。連続体と関係がありそうなことや、写像関係が維持されそうなことは、なんとなく分かる。過去とのしがらみを持つもの、あるいは予測可能なもの、こうしたものは、すべて線形なのだろうか?そもそも人間は、過去、現在、未来の流れの中でしか認識能力を発揮できない。では逆に、非線形ってなんだ?カオスのような現象のことか?人間には予測できない、あるいは認識できない領域にあるということか?だとすると、人間の能力で、認識できる領域と認識できない領域を区別するとはどういうことか?認識能力の境界を認識する???...などと思考が自己循環を続けたままなのだ。本書はまさに自己循環論を語っているように思えてならない。

ガロア理論と言えば、体論や群論の世界である。それは代数学の延長上にあり、線形代数と集合論が結びついた世界とでも言おうか。代数学とは、その名が示す通り数を文字に置き換えて抽象化する学問である。その対象は数(かず)であり、それは自然数から始まった。だが、減算や除算を行うと、自然数の体系からはみだすという欠点を曝す。算術によって系が閉じられない現象は、数の概念を自然数、整数、有理数、実数、複素数へと拡張させてきた。そして、方程式を解きたいという欲望が、いっそう抽象度を高める。代数学は、結合法則や交換法則、あるいは単位元や逆元を持つか、といった性質を考察する方向へと舵をとるのだった。連立方程式は、変数の数だけ方程式の数が存在しなければ解けない。その係数の羅列をベクトル空間や行列式で捉えた時、多次元の概念と結びつく。こうして線形代数が構築されてきた。そこには、非可換な世界が広がる。つまり、交換法則すら成り立たないものまで抽象化したのだ。この現象が意味するものとは、そぅ、物事を掛ける(賭ける)順番、やる順番が違うと、おのずと結果も変わってくるということである。したがって、酔っ払いの目には、非可換性は非可逆性、つまりはエントロピーに通ずるものを感じる。抽象化の波はまだまだおさまらない。体や群が登場すると、ベクトル空間や集合体までも呑み込んだ。もはや数の概念を超越している。四則演算に支配される構造ならば、なんでもありだ。
本書には、拡大体、分解体、部分体、可換群(アーベル群)、巡回群、可解群など、頭痛のしそうな用語で埋め尽くされる。そして、累乗根を考察しながら円周等分多項式の既約性を証明し、方程式を解くための必要十分条件に迫る。その結果、5次以上の方程式の累乗根はない、という「アーベルの定理」が導かれる。更に、幾何学の問題「コンパスと定規による作図」に対する代数学的解釈が示される。
ここにはガロア群の正体なるものが明かされるわけだが、一度や二度読んだぐらいでは頭の中に入ってこない。ほとんどの定理を鵜呑みする羽目になり、酒飲みの域に達っするには程遠い...

物事の本質を解析しようとすれば、それを構成する基本成分に分解してみようと試みるだろう。自然数では素因数分解し、方程式では既約多項式に因数分解する。そこで問題になるのが、どこまで純粋な要素に分解できるか?どこまで既約となりうるか?である。ちょうど物理学が、どこまで素粒子なのか?を問うかのように...
例えば、この方程式は、実数系ではこれ以上因数分解できない。
 f(x) = x^2 + 1
だが、複素数系であれば、更に因数分解できる。
 f(x) = (x + i)(x - i)
つまり、扱う系によって既約の定義も変わってくるわけだ。そして、四則演算の可能な系における最も抽象度の高い既約とは何か?が問われることになる。その抽象レベルで語った時、はじめて方程式を解くための必要十分条件が見えてくる。しかし、体論や群論を扱う才能豊かな人たちは、そんな定義は暗黙のうちに議論を進めやがる。数学者たちには、共通の抽象認識といったものが見えるのだろうか?
ところで、四則演算を習ったのは小学校であった。第五の演算とも言われるモジュロ演算を学んだのは、それよりずっと先で高校だったか?大学だったか?割った余りという観点から除算の一部と言えなくもないが、その本質はむしろ巡回性にあるだろう。日常を支配する暦は永遠に一週間を繰り返す。人間は10進数で物事を考えながら金の計算に執心し、商品の値段が桁上がりした途端に目くじらを立てる。コンピュータは2進数で四則演算を抽象化し、数字列をシフトするだけで乗算や除算をこなす。これらすべて巡回性で説明できるのだ。ちなみに、コンピュータ技術者は16進数で年齢を誤魔化すらしいが、モジュロ演算が人類の永遠の夢を叶えるだろう。
さらに、モジュロ演算は、暗号アルゴリズムや符号理論などで大活躍している。解析学で登場するフーリエ変換も、数学の直交性を利用した巡回性の成分で分解する。いずれにせよ、巡回範囲は、それぞれの世界で合理的に、あるいは都合よく設定されているに過ぎない。
では、巡回性を抽象化するとどうなるのか?本書では、自己同型群が巡回群になるという議論が盛んに行われる。人間社会で四則演算が馴染むというのは特異現象であって、宇宙法則では巡回演算の方がはるかに自然的なのかもしれない。もしかして、ガロア理論は抽象化の果てに自己循環論があると主張しているのか?

1. 体
体とは、ひとことで言えば、乗法と加法の二つの演算が定義されている集合である。これだけなら単純だが、その概念は意外とイメージしづらい。本書は、初心者に「複素数体の部分集合で、四則で閉じたものをモデルにして読みはじめてもよい」と助言してくれる。ということで、複素数系のベクトル空間を思い浮かべてみよう。
実数系も体の一つと言えそうだが、異質な点が二つあるという。それは、乗法の可換性を仮定しないことと、有限個の要素からなる場合もあるということである。非可換性については行列式でイメージできる。すなわち、乗法において交換法則が成り立たないということだ。有限個の要素というのがイメージしずらいが、先へ進むと見えてくる。線形従属や線形独立によって決定される次元(行列の階数)との関係を意識する必要があるが、やがてモジュロ演算のような巡回性を想定することになる。この有限体というあたりにガロア体の正体が隠されていそうだ。
そして、体とは、正確にはこういうことらしい。

「体とは、まず加法についてのアーベル群をなし、次に零を除いた残りが乗法について群をなし、しかも2つの群演算が分配法則によって結びつけられている集合である。」

アーベル群とは、可換群のこと。ちなみに、乗法が可換であるような体を「可換体」と呼び、可換性が成り立たない場合を「斜体」と呼ぶそうな。アーベルは可換群だけを想定したようだが、ガロアは非可換群もあると考えたようだ。

2. 拡大体と分解体
体Eの部分集合Kが、Eで定義された加法と乗法で体をなす時、EをKの「拡大体」と呼び K ⊂ E で表す。また、拡大体の次数を (E/K) で表す。そして、三つの体において K ⊂ B ⊂ E ならば、(E/K) = (B/K)(E/B) が成り立つという。Bを「中間体」と呼ぶ。
更に、K ⊂ E の時、Kの代数的なEの要素αの既約多項式 f(x) を定義して観察すると、おもしろい性質がある。

「(K(α)/K) = deg f(x) = nであり、K(α)はK上の 1, α, α^2, ..., α^(n-1) によって生成される」
ただし、degは多項式の次数を表す。

ここには、拡大体や部分体と多項式との重要な関係があるというわけか。つまり、体における要素の関係を考察するには、多項式、特に同型写像を考察すればいいということらしい。また、K内の多項式 f(x) の根をすべてKに付加した体を、f(x) の「分解体」と呼んでいる。要素が増えるのに分解体なの?既に拡大体と分解体の言葉の綾で混乱している。...挫折の予感か?

3. 群の指標
本書は、体の定義は明示されるのに、群となると途端に難しくなる。それも定義ではなく指標として示される。

「体Eから体E'の中への相異なるn個の同型写像 σ1, σ2, ..., σn があり、Eの部分体Kの要素 a に対してはつねに σ1(a) = σ2(a) = ... = σn(a) であるとき、不等式(E/K) ≧ n がなりたつ」

特に、Kのすべての要素を不変にするEの自己同型写像の全体が群になるという。これが群の指標ということらしい。
ここで、「不変」という言葉が気になる。恒等写像を仮定すると、Eの要素 a がそのまま a に対応するのだから、自己同型写像になるのは自然だろう。
σi(a) = σ1(a) = a (ただし、i = 0, 1, ..., n) となるところから、不変という名が付けられたという。おまけに、恒等写像でもないのに、Eの部分体となる σ1, σ2, ..., σn の要素の集合を「不変体」と呼んでいる。ちょっと無理がないか?
更に、乗法群における自己同型写像の条件が示される。
例えば、乗法群G、体Kとすると、GからKへの写像σが、Gの任意の要素α, βに対して以下を満たすとしている。

 σ(αβ) = σ(α)σ(β) (ただし、Gの任意の要素aに対して、σ(a) ≠ 0)

自己同型写像が群であるというのは分かるような気がする。だが、それで体に対して抽象度は上がっているのか?それは、次の正規拡大体で薄っすらと見えてくる。...そんな気がするだけかも。

4. 正規拡大体
群の指標を不変体と絡ませて進化させる。

「σ1, σ2, ..., σn が体Eの自己同型写像の群Gをつくるとき、Kをそれに関する不変体とすれば (E/K) = n である。」

体Kの拡大体Eがあり、KがEの自己同型写像をつくるような有限群Gの不変体になっている時、「正規拡大体」と呼んでいる。有限群GはKの自己同型群ということか。ガロア理論の基本定理とは、「正規拡大体の中間体と自己同型群の部分群との間に一対一の対応がある」ということらしい。体の拡大を群に結びつけるという意味では、群の方が抽象度が高そうだが、これって自己循環に陥っていないか?
また、EがKの正規拡大体であるための条件は、EがK内のある分離多項式の分解体になっていることだという。自己同型写像はその根の対応によって定まるという。
ここで示される例題は分かりやすい。

Kを有理数体とし、Eを多項式 x^4 - 2 の分解体とする。
この多項式は有理数体では解を持たないが、複素数体においては四つの解を持つ。
 4√2, -4√2, i4√2, -i4√2
ただ、分解体をつくる時は、これらの根を用いる必要はないという。
まず、x^4 - 2 は、Kにおいて既約であるので、次数4から次のようになる。
 (K(4√2) / K) = 4
次に、K(4√2) は実数体であり、これを中間体として用いる。
多項式 x^2 + 1 は、K(4√2) において既約であるので、同じく次数2から次のようになる。
 (E / K(4√2)) = 2
よって、こうなる。
 (E / K) = (K(4√2) / K)(E / K(4√2)) = 8

分離多項式の分解体ということでEは正規拡大体であり、8個の自己同型写像を持つことが分かるというわけだ。ここには、K上の多項式の解が拡大体Eの中に見つかれば、すべての解が拡大体に含まれるという思考がある。すなわち、方程式の解を見つけるためには、正規拡大体において自己同型写像があるかどうかを考察すればよさそうだ。...勝手な解釈だけど。

5. 有限体と巡回群
有限次元では、分離拡大体は単純拡大体になるという。そして、中間体が有限個であることが単純拡大体であるための必要十分条件だという。単純拡大体とは、なんのことはない、1つの要素を付加して得られる拡大体のこと。
有限体Kにおける多項式 f が重根をもつための必要十分条件は、その分解体Eにおいて多項式 f とその導関数 f' とが共通根を持つことだという。この条件は、f と f' が有限体Kにおいて、1以上の次数を持つ共通因数をもつことと同値だという。そりゃ、もとが有限体であれば、その拡大体も中間体も有限体であろうし、そうでなければ同型写像とはならないだろう。ただ、おもしろいことに、有限体の正規拡大体である自己同型群は巡回群になるというのだ。
「体の乗法群の任意の有限部分群Sは巡回群である。」
そこまで単純化できるとは、にわかに信じがたい。この定理は、アーベル群の二つの性質がもとになっているという。
一つは、「位数 c が最大になる要素Cが存在すれば、任意の要素の位数は c の約数である」ということ。位数とは元の個数。
もう一つは、「有限生成のアーベル群の基底定理」である。
有限生成のアーベル群とは、部分群 G1, G2, ..., Gk の直積という極めて単純な構造をしている。なるほど、有限部分群は巡回部分群の直積ということになりそうだ。...確信はないけど。

6. 1の累乗根と円周等分多項式
今、任意の体K、その拡大体の要素εを多項式 x^n - 1 の根とする。
「1の累乗根」とは、x^n - 1 = 0 の解のことで、次数n個の解を持つことになる。ちなみに、自然数体において、n乗するまで解が得られない場合、1のn乗根はεのn乗根となり、特に「1の原始累乗根」と呼ぶそうな。まさしく原始的というわけか。
しかし、複素数体においては、次のように解が得られる。
 ε = exp(2πi/n) = cos(2π/n) + isin(2π/n)
これは、{1, ε, ε^2, ..., ε^(n-1)} の有限巡回群である。
円周等分多項式とは、1の累乗根に関する多項式で、ここでは、Φn(x)とする。d が n の約数とすると、x^d - 1 は、x^n - 1 の約数である。よって、1のd乗根は1のn乗根の中に含まれる。そして、しばしば次の形で表されるという。
 x^n - 1 = ΠΦd(x)
つまり、多項式 x^n - 1 は、有理数体において円周等分多項式の積として既約分解されるということらしい。特に、標数nが素数pのとき、1の累乗根の個数は「オイラーのφ関数」で与えられるという。すなわち、円周多項式Φn(x)は、オイラーの関数Φ(n)の次数を持つということになる。そして、次の結果を得るという。
 (E/K) ≦ Φ(n)
位数 p-1 の巡回群になるというわけか。
...ここは、オイラーのΦ関数の知識がないと読みづらいところか、とりあえず鵜呑みにしておこう。だが、もうヤバい!脳は飽和状態へと達し、ネーター等式、クンマー体と流しながら、鵜呑み量(酒飲み量)が増えていく。

7. 方程式の可解性とガロア群
方程式を代数的に解くということは、累乗根を得るということである。ここでやっと、方程式におけるガロア理論の自己同型群の役割が明らかになる。

「f(x)が累乗根で解けるために必要十分な条件は、そのガロア群Gが可解なことである。」

可解群とは...
「群Gの部分群の減少列、G = G0 ⊃ G1 ⊃ G2 ⊃ ... ⊃ Gs = 1 が存在して、Giは、Gi-1の正規部分群の有限列で、i = 1, 2, ..., s に対して商群 Gi-1/Gi がアーベル群である」

そして、素数の累乗 p^n を位数に持つ群は、すべて可解であるという。
ここで、体Kにおいて、Kiを体の増加列、最終の体がFであるとする。
 K = K0 ⊂ K1 ⊂ K2 ⊂ ... ⊂ Ks = F
Kの拡大体Fが累乗根による拡大体であるとは、i = 1, 2, ..., s に対して、Ki = Ki-1i) であり、多項式 αが、x^ni - ai の形の Ki-1 内の根であることだという。
すなわち、Ki-1 上で Kが正規拡大体で、その自己同型群がアーベル群であれば解けるということのようだ。
更に、f(x) をK内の多項式で重根を持たないとし、Eを f(x) の分解体とする。
 f(x) = (x - α1)(x - α2)...(x - αn)
α1, α2, ..., αn は、Eの生成要素。
K上のEの自己同型群をGとすると、Gの要素σは、α1, α2, ..., αn で定まる。
だが、σは、α1, α2, ..., αn の並べ替えに写像し、Gはn個の要素の置換群になると考えてよいという。この時の群Gが「ガロア群」と呼ばれるものらしい。そして、次の定理が導かれる。

「K上n次の一般多項式のガロア群は、対称群Snである。Kが標数0で n ≧ 5ならば、n次の一般方程式は累乗根で解けない。」

素数次の既約方程式のガロア群Gが可解ならばGは線形であり、更に、任意の線形群は可解ということのようだ。...んー、置換群になるまでの仮定が、にわかに信じがたい。雰囲気だけだなぁ...

8. コンパスと定規による作図問題に対する代数的解釈
ユークリッド幾何学の作図問題が議論される。それは、「正多角形が作図できるための条件」と「角が三等分できるための条件」と「デロス島の問題」である。コンパスと定規によって作図可能ということは、有限回の操作で直線や円弧に分解できるということである。言い換えれば、ベクトルにおけるスカラー(ベクトル空間におけるノルム)と、円周等分多項式で分解できるということである。さすがにここまでガロア群を議論すれば、作図の対象は必ず有理数体でなければならないので、その限界を予感させてくれる。
例えば、半径1の円に内接する正n角形を作図する場合。
体Kは有理数体Qで、ε = cos(2π/n) + isin(2π/n) を解くのと同じである。つまり、正規拡大体である E = Q(ε) の次数を調べればいいということになる。そして、作図可能な正多角形の条件が素数を絡めて示されるのだが。...んー!ここまできてもやっぱり鵜呑みかぁ。
同じように、角の三等分とデロス島の問題も作図は不可能ということが導かれる。デロス島の問題とは、「アポロ神は、それまでの立方体の祭壇を、立方体状のままで倍の量にせよと要求された。」これは、立方体の一辺の長さを1として、3√2 を作図しなければならない。つまり、拡大体 F = Q(3√2) において解くことになる。だが、x^3 - 2 は有限体Qで既約であるから (F/K) = 3 であり、そのような作図は不可能となる。...おぉー!やっと鵜呑みから酒飲みの領域を見つけた。