第4話
『グレブナー基底で地図を塗る』
大人は何もしないし、何もしてくれない。
いつものようにオレは、コンビニの駐車場に座って炭酸を飲んでいた。
午前に降っていた雨のせいで、コンクリートには水たまりが少しできていたが、幸いにも縁石は濡れていなかった。
「ぎゃはははははは!!!」
遠くでヤツらの笑い声が聞こえた。
汚く下品な声に、頬の絆創膏が微かにしびれる。
オレは、急いでランドセルからハサミを取り出し、後ろのポケットにしまった。
「お?Kちゃんじゃん!また買い食いしてんの?」
ヤツらの一人がオレに気づき声をかける。
Kとは、ヤツらがつけたオレのあだ名で、『下の名前のイニシャル』と『キモい』をかけたものだ。
「あ?あ?あ?相変わらずキモいやつだなあ!なあ、タジマー!」
トリマキがいつもの威嚇行動をしてくる。
タジマは黙って、オレをじっと見ている。
大きなゴロッとした眼球は動かない。
オレは、今からタジマを殺す。
前から決めていたことだった。
油断したところを、ハサミで急所を一突き。
一発で終わらす。
「今日は、ナニ買ったんだよ」
タジマが一言、そう呟いた。
大丈夫。気づかれていはいない。
気づかれてはいけない。
「た、炭酸だよ」
震える足を抑えながら、オレはなるべく自然に答えた。
大丈夫。これは、ただのケンカだ。
大人たちの言う、ただの子供のケンカだ。
たまたまケンカが起きて、たまたま授業で使ったオレのハサミが、たまたまタジマに刺さり、たまたまタジマが死んでしまう。
そう、ただのケンカだ。
「また、炭酸か。他にはナニ買ったんだよ」
タジマがトリマキにビニール袋を漁らせる。
まだだ。タジマはまだ立っている。
タジマが座りオレに近づいた瞬間がチャンスだ。
「あ?なんだこれ?カニカマ?」
トリマキはビニール袋に気を取られている。
まだだ。まだ。
駐車場の大人たちは、いつも通り、誰もこっちを気にしていない。
「ちょっと、貸してみろよ」
タジマが、トリマキの横に、座った。
オレの目の前にタジマがいる。
縁石に座っている分、オレの方が少し高い位置にいる。
やった。やった。
この位置なら、うまく刺せる。
オレは、ポケットのハサミに手をかけた。
手汗で滑らないように、ぎゅっとグリップを握る。
瞬間、タジマがフッっと鼻で笑った。
「ああ、これは、コイツの妹は、×××だから」
オレは、ハサミを振りかぶった。
***
x^4-1=0
y^4-1=0
(x+y)(x^2+y^2)=0
「これが、東京と千葉を異なる色で塗り分ける、連立方程式だ。」
妹は、春季限定いちごタルトをほとんど食べ終えていた。
このまま調子に乗って、「夏季限定トロピカルパフェ」など頼まなければいいのだが。
こちとら、小市民なので、お金はそんなに持っていないのだ。
「ええと、x^4-1=0, y^4-1=0 って東京と千葉には、4色のうちのどれかが塗られているってこと、だよね?」
妹が、式の意味について、俺に確認する。
ほっぺたについているクリームを指摘してから、俺は解説を始めた。
「ああ、その通りだ。そして、3番目の式が、『xとy は違う値』ということを意味するものだった。つまり、これら3つの多項式をまとめた連立方程式を考えると、次の主張が成り立つ。」
連立方程式
x^4-1=0
y^4-1=0
(x+y)(x^2+y^2)=0
の解が存在する。
⇔
東京と千葉は、4色で塗り分けられる。
「すなわち、『連立方程式の解が存在する』かを調べれば、『4色で塗り分けられる』かが判定できるんだ。」
「?解が存在しないってどういうこと?」
聞きなれない言葉に、妹は少し動揺する。
「え、ああ。今まで、学校では、解が存在する連立方程式ばかり解いてきたと思うけど、一般には、解が存在するとは限らないんだ。」
「例えば?」
「えーと、例えば、」
x+y=1
x+y=0
「とか、そうかな。試しにこの連立方程式を解いてみて。」
「うん。うんと、上の式から、下の式を引くと……左辺は、」
(x+y)-(x+y)=0
「となって、右辺は、」
1-0=1
「だから、ってことは、」
0=1
「あれ!?1=0!?」
「その通り。」
「これって正しいの?」
「環奈の連立方程式の解き方は、正しかったけど、0=1 は明らかに間違いだ。」
「だよね。」
「この 0=1 は、たとえxとyにどんな値を代入しても常に間違っているよね。」
「うん。xとy、関係ないもんね。」
「つまり、元々の連立方程式を成り立たせるような、xとyはそもそも存在しなかったってことなんだ。」
連立方程式
x+y=1
x+y=0
を満たす x, y は存在しない
「このように、すべての連立方程式が解を持つとは限らないんだ。」
「なるほにょ。」
タルトの最後の一欠片を食べた妹が、もぐもぐしながら納得する。
しまった。どうせなら、一口もらうんだった。
「四色の話に戻そう。連立方程式」
x^4-1=0
y^4-1=0
(x+y)(x^2+y^2)=0
「に解が存在すれば、東京と千葉は4色で塗り分けられる。では、この連立方程式に解は存在すると思う?」
「えーと、存在するんじゃないの?」
「具体的には?」
「え、うーんと、x=1 と……… y=-1 とか?」
「ほう。実際に示してみて。」
1^4-1=1-1=0
(-1)^4-1=1-1=0
(1+(-1))(1^2+(-1)^2)=0*(1+1)=0
「x=1とy=-1を連立方程式の多項式に代入すると、確かに全部0になっているよね?これでいい?」
「なんか計算が速くなってきたな。」
「えへへ。」
妹は、右手で頭を軽く撫でるように掻く。
今まで気づかなかったが、右手の甲に大きな絆創膏が貼ってある。
どこかで怪我でもしたのだろうか。
「x=1とy=-1が連立方程式の解ってわかったわけだけど、ここで多項式の本来の意味を考えてみよう。」
「本来の意味?」
「ああ。x=1は『東京は赤』、y=-1は『千葉が青』って意味だったね。これが連立方程式の解ってことは、」
『東京を赤、千葉を青に塗れば、東京と千葉は塗り分けられる』
「ということが分かるんだ。」
「ん?なんか当たり前じゃない?」
「そうだね。今は、一番簡単な場合をやっているから、わざわざ連立方程式で難しくしているように思える。しかし、地図がもっと複雑な場合、この方法は有効になり得る。」
「ほう?」
「東京、千葉、神奈川を考えてみよう。」
東京 千葉
神奈川
「神奈川には変数 z を対応させる。すると、この地図を4色で塗りわけるための連立方程式は、」
x^4-1=0
y^4-1=0
z^4-1=0
(x+y)(x^2+y^2)=0
(x+z)(x^2+z^2)=0
「というようになる。新しい多項式 z^4-1 は神奈川は4色のうちどれか、そして、(x+z)(x^2+z^2) は東京と神奈川は違う色であることを意味している。」
「あれ?(y+z)(y^2+z^2)っていうのはないの?」
「え、ああ。今、千葉 y と神奈川 z は隣あってないだろ?だから、別に千葉と神奈川は同じ色でもいいから、(y+z)(y^2+z^2) は必要ないんだ。」
「そっか。」
「では、この連立方程式には、解が存在するかな?」
「うへ!?………………存在する?」
「その通り。試しに、」
x=1、y=z=-1
「を代入してごらん。」
「わかった。」
1^4-1=0
(-1)^4-1=0
(-1)^4-1=0
(1+(-1))(1^2+(-1)^2)=0
(1+(-1))(1^2+(-1)^2)=0
「あ!ほんとに全部0になってるね!お兄ちゃんっ!」
「ああそうだな。これは、x=1、y=-1、z=-1 が連立方程式の解ってことだが、地図ではどんな意味だか考えてみてくれ。」
「ふーむと、1が赤で、-1が青だったから、」
東京=赤
千葉=青
神奈川=青
「ってこと?」
「そう!これは、」
「ということで、これってさっき塗ったよな。」
「あ、そだね!」
「今度は、逆に考えてみよう。東京、千葉、神奈川は、赤、黄色、青を使っても塗り分けられた。つまり、」
「ということだった。」
「黄色は、千葉の落花生の色だもんね。」
千葉というと落花生の黄色をイメージしがちだが、ちなみにチーバくんの色は赤である。
チーバくんとは、横から見ると千葉の形をした犬のマスコットキャラクターだ。
犬型生命体バトルキメランテスとは関係はない。あびゃー。
「塗り分けられるということは、逆に、色に対応する値 x,y,zは連立方程式を満たすということだ。赤は1、青は -1、黄色は虚数 i に対応していたから、x=1、y=i、z=-1 ということになる。」
「うん。」
「実際、これを連立方程式に代入してみると、」
1^4-1=0
i^4-1=(-1)^2-1=0
(-1)^4-1=0
(1+i)(1^2+i^2)=(1+i)(1+(-1))=(1+i)*0=0
(1+(-1))(1^2+(-1)^2)=0
「確かに、すべて0になって、x=1、y=i、z=-1は解になっている。」
「おおー!」
「これで、連立方程式と地図の対応がだいたい分かってくれたかな?」
「うん!結局、連立方程式を解けば、地図を塗り分けられるってことが分かるってことだよね?」
「その通り。…………さて。」
「ん?」
俺は、水を一口含み、喉の調子を整える。
いよいよ、奴の登場だ。
「これから、地図の都道府県が増えていけば、当然、多項式も増えていく。それを手計算で解いていくのは大変だ。」
「グレブナー基底だよね?」
「そこで、連立方程式を機械的に解いていく手法が必要となる。」
「だから、グレブナー基底だよね?」
「まだ何のことだか分からないかもしれないが、実は、それは、この前 Mathematica で計算したものなんだ。」
「グロエブネー・バシス?」
「………忘れたくない基底。忘れたくなかった基底。忘れちゃダメな基底。そう、その基底の名は!」
「おーい。」
「「グレブナー基底!!」」
「いや、お兄ちゃん?なんかエンディングっぽくしても、全然かっこよくないよ?そもそも、もうグレブナー基底だって分かってたし。」
「うん。じゃあ、グレブナー基底を計算していこうか。」
こっちとしては、前前前世から、このネタを温めていたのだが、全全全然ダメだったようだ。
気を取り直して話を進める。
「Mathematica で計算するには、」
GroebnerBasis
「という関数を使えばよかった。これに、さっきの多項式を入力すると、」
GroebnerBasis[{x^4-1,y^4-1,z^4-1,(x+y)(x^2+y^2),(x+z)(x^2+z^2)}]
「となる。さらに、変数を消す順番{x,y,z}を追加して、」
GroebnerBasis[{x^4-1,y^4-1,z^4-1,(x+y)(x^2+y^2),(x+z)(x^2+z^2)},{x,y,z}]
「これで、完成だ。」
かっこよくないよ。今になって、妹の言葉が胸に突き刺さる。
気にしないように、平常心のフリをしていたが、やはり妹にそんな言葉を言われてしまうのは、兄として辛い。
「ねえ、早く計算してみてよ!」
妹が、ハートブレイクしている俺に、催促をする。
そうだ、俺には、グレブナー基底さんがいるんだ。
グレブナー基底さんは、いつでも俺の味方だ。
そう言い聞かせ、俺はEnterを押した。
{z^4-1, y^4-1, x^2*y + x*y^2 + y^3 - x^2*z - x*z^2 - z^3,
x^3 + x^2*z + x*z^2 + z^3}
「これが、さっきの多項式たちのグレブナー基底だ。」
「へ!?さっきより、複雑になってない!?」
「ぱっと見、そう見えるかもな。前から、順番に考えてみよう。」
z^4-1
y^4-1
「前の2つこの式が出てきているね。グレブナー基底の他の式と違って、これらの式は、1つ変数以外に、他の変数が出てこない。これは、色の制約がなく、自由ってことなんだ。」
「自由?」
「そう。1, -1, i, -i のどの値を代入しても、z^4-1 は0になっただろ?グレブナー基底にこれが出てくる、つまり、連立方程式を z について解いた形が z^4-1 ということは、すなわち、z は何色でもいいってことだ。」
「んん?よくわかんない。」
「地図で考えてみよう。z は神奈川だったな。実は、神奈川に、赤、青、黄色、緑のうち、どの色を塗っても4色で塗り分けられるんだ。試しに、神奈川を赤にしてみよう。」
東京 千葉
「次に、千葉についても、同じように、y^4-1 という式が出てきているから、千葉は、何色でもいい。例えば、千葉を緑に塗る。」
東京
「最後に、東京の色を決めるけど、東京は、何色でもいいってわけにはいけない。グレブナー基底に出てくる x についての多項式は、」
x^2*y + x*y^2 + y^3 - x^2*z - x*z^2 - z^3,
x^3 + x^2*z + x*z^2 + z^3
「の2つで、両方とも y と z が絡んでいる。つまり、yとzの値によって、xの値が決まるんだ。」
「なるほど?」
「じゃあ、xの値を決めてみよう。上の2つ式に、神奈川=赤の z=1 と、千葉=緑の y=-i を代入する。」
x^2*y + x*y^2 + y^3 - x^2*z - x*z^2 - z^3=-i*x^2-x+i-x^2-x-1=-(1+i)x^2-2x+i-1
x^3 + x^2*z + x*z^2 + z^3=x^3+x^2+x+1=(x+1)(x^2+1)
「うわー。全然わかんないよ。」
「複素数 i が係数に出てきて、あまり見たことのない形かもしれない。でも、今から、やることは、y=-iとz=1を代入して出てきた2つ式、」
-(1+i)x^2-2x+i-1=0
(x+1)(x^2+1)=0
「の両方を満たす x を探すことだ。」
「すごく難しくない?」
「こういう時は、簡単な方から見るんだ。下の式をみよう。」
(x+1)(x^2+1)=0
「これは、因数分解されているから、満たすxはすぐわかる。」
x=-1, i, -i
「が (x+1)(x^2+1)=0の解だ。」
「そうだね。」
「このうち、上の式 -(1+i)x^2-2x+i-1=0 も満たす式を探す。x=-1, i, -i をそれぞれ代入してみると、」
x=-1 → -(1+i)x^2-2x+i-1=-(1+i)(-1)^2-2(-1)+i-1=-(1+i)+2+i-1=0
x=i → -(1+i)x^2-2x+i-1=-(1+i)(i)^2-2(i)+i-1=(1+i)-2i+i-1=0
x=-i → -(1+i)x^2-2x+i-1=-(1+i)(-i)^2-2(-i)+i-1=(1+i)+2i+i-1=4i
「という風になって、上の方程式も満たすのは、-1 と i だけということが分かる。したがって、」
-(1+i)x^2-2x+i-1=0
(x+1)(x^2+1)=0
「を満たす x の値は、」
x=-1, i
「となるんだ。」
「ほ、ほへー。」
「どうかな?」
「や、やっぱり、まだ難しいかな…」
「難しいと感じる時は、『意味』を考えてみよう。x=-1は東京が青、x=i は東京が黄色だったね。ここで、神奈川は赤、千葉は、緑に塗っていたから、」
と
「ということになる。確かに、これは、4色で、それぞれ隣合うものが違う色で塗り分けられていることになる。今は、神奈川の色を赤と決めたから、こうなったけど、別の色から始めても、同じようにグレブナー基底に出てきた多項式に代入していけば、x の値、つまり東京に塗るべき色が分かるんだ。」
「すごい……!」
「そう、実は、連立方程式を解けば、4色で塗り分けられるかどうかも分かるのと、同時に、その塗り分け方のパターンも全て分かるんだ。」
「は、ははー!」
妹は、驚いてくれているようだが、やはり、まだ計算が複雑なようで、本当の意味で楽しめていないようだ。
しかし、彼が登場すれば、事態は一変するだろう。
「このように、連立方程式の解を具体的に求めることで、4色で塗れるかどうかを判定してきた。
「うん。そうだよね。」
「でも、今やったように、いちいち具体的な解まで求めていくのは面倒くさい。」
「確かにめんどう。」
「でも、実は、実際に解を出さなくても、グレブナー基底の『見た目』だけで、解が存在するかどうか、つまり、4色で塗り分けられるかどうかが分かるんだ。」
「え、どゆこと?」
「それが、」
現代数学の父とも呼ばれる、神のごとく偉大な数学者。
数学をやっている者で、彼の名を知らない人はいないだろう。
「ヒルベルトの零点定理だ。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます