特 集

現 代 代 数 学 の 深 化 と 広 が り

計算機代数学と数式処理システム
東京理科大学 理学部第一部 応用数学科 准教授

なべしま

鍋島

かつすけ

克輔

計算機代数学と数式処理システム

１．はじめに1 人の人間が数学のすべての分野をカバーすること

1 はじめには不可能であることから，数学の理論をブラックボッ

数学系の学科に所属する多くの学生が経験すること
東京理科大学 理学部第一部
であるが，高等学校までの数学が得意で大学に入学し応用数たら，大学の抽象的な数学に面食らい『何をやってい計算機代数学と数式処理システム
クスとして利用することができるソフトウェアが望まにして思えば，これは無理もないことであり，不変式
1 人の人間が数学のすべての分野をカバーすることは不可能であることから，数学の理論をブラックボるのだろうか？』となる．筆者自身もそうなった．今れている．そのような数学ソフトウェアは一般に数式論 で 有 名 な ド イ ツ の 数 学 者 ゴ ル タ ン（Paul Gordanとができるソフトウェアが望まれている．そのような数学ソフトウェアは一般に数式処理システムといわ東京理科大学 理学部第一部 応用数学科 准教授 鍋島）で す ら，抽 象 的 な ヒ ル ベ ル ト（David（1837―1912）
処理システムといわれており．数学アルゴリズムの寄
ズムの寄せ集めである．
Hilbert（1862―1943））の数学を『ヒルベルトの理論はせ集めである．
数学で『計算』と言うと数値計算を想像する人が多いと思われるが，数式処理システムと言われるソフ

数学ではない神学である』と言っている．ゴルタンの1数学で『計算』と言うと数値計算を想像する人が多はじめに 計算を内蔵している数学ソフトウェアのことである．数値計算のみの場合は数値計算ソフトウェアと言わ方程式 2x2 + 7x + 2 = 0 の解を求めよ』という問題があったとする．このとき，数値計算と記号計算の解
ような数学者ですらそのように感じているので面食らいと思われるが，数式処理システムと言われるソフト
1 人の人間が数学のすべての分野をカバーすることは不可能であることから，数学の理論をブラックボックスとして利用すってもしょうがない．
ウェアは基本的に記号計算を内蔵している数学ソフト
数値計算の解: x = −0.313859338, −3.186140661とができるソフトウェアが望まれている．そのような数学ソフトウェアは一般に数式処理システムといわれており．数学アル
19 世紀までの数学研究のスタイルは『計算』から
ウェアのことである．数値計算のみの場合は数値計算√
ズムの寄せ集めである．
−7 ± 2 33
記号計算の解: x=定理や理論を導き出している．名立たる数学者の名前
ソフトウェアと言う．例えば，『２次方程式
2𝑥𝑥 +7𝑥𝑥
数学で『計算』と言うと数値計算を想像する人が多いと思われるが，数式処理システムと言われるソフトウェアは基本的に4+2=0の解を求めよ』という問題があったとする．
を冠した定理の裏には膨大な計算が実は隠されている．
計算を内蔵している数学ソフトウェアのことである．数値計算のみの場合は数値計算ソフトウェアと言われている．例えば，『数値計算の解は，近似値であり誤差を含む．現実世界では許容誤差がありすごく小さい誤差を含んでも建√2（具体的に）計算できる数学を扱っているので，彼らはこのとき，数値計算と記号計算の解は異なり次となる．
= 0 の解を求めよ』という問題があったとする．このとき，数値計算と記号計算の解は異なり次となる．
方程式 2x + 7x + 2 りにおいては問題ない．記号計算の解は，誤差の無い解であり，33 は，『2 乗すればルートの中にある数√
2 連立方程式
数学を構成的に扱っている．実際に手に取って『計算33 を記ウェア内では認識させており数値としては扱われてない．高等学校までの数学を知っていれば−3.186140661
数値計算の解: x = −0.313859338,
数値計算の解：√2と言う武器』により数学を“捏ね繰り回していた”よと置くと，
a = 33 となるのと同じである．まさしく， 33 は内部で記号として扱われている．高等学校√
大学 1 年の講義『線形代−7 ± 33うである．このような数学を本稿では抽象的数学に対人が厳密な数学の理論を学んでいる．その理論に誤差は許されおらず，そのときの証明や計算には記号計
記号計算の解:x=
記号計算の解：けるようになっていると
4
して構成的数学と呼ぶようにする．この構成的数学こる．数式処理システムは記号計算を用いた数学アルゴリズムの集合体と言える．
数値計算の解は，近似値であり誤差を含む．現実世界では許容誤差がありすごく小さい誤差を含んでも建築や家具などのモノ√
数値計算の解は，近似値であり誤差を含む．現実世界
そが長年為されていた数学のスタイルであるが，19
20 世紀に発達した計
著者は計算機代数と言われる数学の一分野の研究を行っている．計算機代数とは，『2 乗すればルートの中にある数 33 になるもの』とソりにおいては問題ない．記号計算の解は，誤差の無い解であり， 33 は，√
構成的代数が融合した研究分野で，代数算法の設計，解析，実装から応用まで行う分野である．
では許容誤差というものがありすごく小さい誤差を含
世紀末から抽象的数学が花開き，それ以降，現代数学
ウェア内では認識させており数値としては扱われてない．高等学校までの数学を知っていれば 33 を記号を a を用いて a =√数学系の学科に所属する多くの学生が経験することであるが，高等学校までの数学が得意で大学に入学
んでも建築や家具などのモノづくりにおいては問題なは抽象的数学となった．計算機のない時代には，天才と置くと，a2 = 33 となるのと同じである．まさしく， 33 は内部で記号として扱われている．高等学校ならびに大学では多を考える．数式処理シス
数学に面食らい『何をやっているのだろうか？』となる．著者自身もそうなった．今にして思えば，これはい．記号計算の解は，誤差の無い解であり，√33
は，でない限り，昔ながらの計算による研究には限度が訪人が厳密な数学の理論を学んでいる．その理論に誤差は許されおらず，そのときの証明や計算には記号計算が頻繁に使用され
51(Paul Gordan (1837–1912)) ですら，抽象的なヒルベルト(Davの不変式論で有名なドイツの数学者ゴルタン
9 , z = 3 となる．Solve『2る．数式処理システムは記号計算を用いた数学アルゴリズムの集合体と言える．
乗すればルートの中にある数
33 になるもの』とソれるのは言うに及ばず，また，問題が複雑になるとな
引くとそれぞれの結果にはの数学を『ヒルベルトの理論は数学ではない神学である』と言っている．ゴルタンでのような数学者です
フトウェア内では認識させており，数値としては扱わ
おさらなことである．時が経つにつれ，抽象的数学と20 世紀に発達した計算機科学と，昔から著者は計算機代数と言われる数学の一分野の研究を行っている．計算機代数とは，1 個だけにすることができるので面食らってもしょうがない．
れていない．高等学校までの数学を知っていれば√33いう武器を手にした人類は，抽象的数学を使った数学
構成的代数が融合した研究分野で，代数算法の設計，解析，実装から応用まで行う分野である．
は 1 個だけとなっている
19 世紀までの数学研究のスタイルは『計算』から定理や理論を導き出している．名立たる数学者の名前を，記号 𝑎𝑎 を 用 い て 𝑎𝑎= √33 と 置 く と，𝑎𝑎2=33 と な研究をすることは必然であり，構成的数学は時代と共数学系の学科に所属する多くの学生が経験することであるが，高等学校までの数学が得意で大学に入学したら，大学の抽象
なわち，変数消去が連立方大な計算が実は隠されている．(具体的に) 計算できる数学を扱っているので，彼らは数学を構成的に扱っ
数学に面食らい『何をやっているのだろうか？』となる．著者自身もそうなった．今にして思えば，これは無理もないことであるのと同じである．まさしく，√33
は内部で記号としに廃れて行ったと思われる．（高等学校までの数学は構ことにより，吐き出し法はて『計算と言う武器』により数学を “捏ね繰り回していた” ようである．このような数学を本稿では抽象(Paul
Gordan(1837–1912))
ですら，抽象的なヒルベルト (David
不変式論で有名なドイツの数学者ゴルタン
成的な数学であるので，教育の場には残っている．
） Hikbert (1862–19て扱われている．高等学校ならびに大学では，多くの学と呼ぶようにする．この構成的数学こそが長年為されていた数学のスタイルであるが，19 世紀末からの数学を『ヒルベルトの理論は数学ではない神学である』と言っている．ゴルタンでのような数学者ですら，そのように感じ
k1 (x20 世紀になり抽象的数学からの理論の集積は，グ人が厳密な数学の理論を学んでいる．その理論に誤差れ以降は現代数学は抽象的数学となっている．計算機のない時代には，天才でない限り，昔ながらの計算るので面食らってもしょうがない．
レブナー基底理論のようなアルゴリズムの存在する数は許されておらず，また，証明や計算には記号計算がれるのは言うに及ばず，また，問題が複雑になるとなおさらなことである．時が経つにつれ，抽象的数学の形で表すことのできる
19
世紀までの数学研究のスタイルは『計算』から定理や理論を導き出している．名立たる数学者の名前を冠した定理の裏に学に還元され，計算機の発達と共にその理論は計算機頻繁に使用されている．数式処理システムは記号計算
類は，抽象的数学を使った数学研究をすることは必然であり，構成的数学は時代と共に廃れて行ったと思が得られ，x の値が求まる
大な計算が実は隠されている．(具体的に) 計算できる数学を扱っているので，彼らは数学を構成的に扱っている．実際に手にと結びつくようになった．それこそが計算機代数学とを用いた数学アルゴリズムの集合体と言える．
)の数学は構成的な数学であるので，教育の場には残っている．
ここで，大事なことはて『計算と言う武器』により数学を “捏ね繰り回していた” ようである．このような数学を本稿では抽象的数学に対して構成いう新しい数学の研究分野である．実は，計算機代数
筆者は計算機代数と言われる数学の一分野の研究を
20 世紀になり抽象的数学からの理論の集積は，グレブナー基底理論のようなアルゴリズムの存在するも問題なく新たな式が得ら学と呼ぶようにする．この構成的数学こそが長年為されていた数学のスタイルであるが，19 世紀末から抽象的数学が花開き
学は昔ながらの構成的数学（代数学）の現代版なのであ行っている．計算機代数とは，20世紀に発達した計の発達と共にその理論は計算機と結びつくようなった．それこそが計算機代数学という新しい数学の研究去をするには 1 次式で十れ以降は現代数学は抽象的数学となっている．計算機のない時代には，天才でない限り，昔ながらの計算による研究には限度(
代数学)の現代版なのである[2,
3]．
機代数学は昔ながらの構成的数学
る．
算機科学と，昔からある構成的代数が融合した研究分
次に，もう少し複雑な連れるのは言うに及ばず，また，問題が複雑になるとなおさらなことである．時が経つにつれ，抽象的数学という武器を手にし法を習う．
野で，代数算法の設計，解析，実装から応用まで行う(高等学校
類は，抽象的数学を使った数学研究をすることは必然であり，構成的数学は時代と共に廃れて行ったと思われる．
構成的代数 + 計算機 → 計算機代数分野である．
の数学は構成的な数学であるので，教育の場には残っている．)
定理 1 (ラグランジュの未
この計算機代数学が目に見える形で存在するものが数式処理システム（商用ソフトウェアとして，Wlf
20 世紀になり抽象的数学からの理論の集積は，グレブナー基底理論のようなアルゴリズムの存在する数学に還元され，計たしながら動くときに，関特集 現代代数学の深化と広がり
16の発達と共にその理論は計算機と結びつくようなった．それこそが計算機代数学という新しい数学の研究分野である．実は，Mathematica や，Maplesoft Inc. が開発している Maple の 2 つは世界的に有名）である．現在の数式処w が存在する．
はもちろん最先端の数学の研究にも耐えられるレベルになっている．
(代数学) の現代版なのである [2, 3]．
機代数学は昔ながらの構成的数学
歴史的に『計算機に数学をさせる方法』や『計算機に論理処理をさせる方法』は自然言語処理や人工知1 個だけにすることができれば解が得られる．実際，吐き出し法で得られる最後の式
x が消える．すなわち，今ある式自体にスカラー倍もしくは加減の引くとそれぞれの結果には変数
は 1 個だけとなっている．1 つの式に複数の変数が存在すると解を求めることは難し
1 個だけにすることができれば解が得られる．実際，吐き出し法で得られる最後の式の組は{x = 792

なわち，変数消去が連立方程式を解く際の鍵である．そのため，連立方程式を解くとは 1 個だけとなっている．1 つの式に複数の変数が存在すると解を求めることは難しいが，1 個な連立方程式

ことにより，吐き出し法は “解きやすい式 (=1 変数の式)” を探し出している．上のなわち，変数消去が連立方程式を解く際の鍵である．そのため，連立方程式を解くということは，大学ことにより，吐き出し法は
1 年の講義『線形代数学』では連立
1 次方程式の解法として吐き出し法を習う．連立
1 次方程式で“解きやすい式(=1 変数の式)” を探し出している．上の連立
1 次方程式
この計算機代数学が目に見える形となったものが数式
k1 (x − 2y + z) + k2 (x + y − z − 1) + k3 (2x − y + 3z − 2) = 0
1 次方程式としてけるようになっていると思われる．例えば，連立
Inc. が処理システム（商用ソフトウェアとして，Wolfram
k1 (x − 2y + z) + k2 (x + y −z − 1) + k3 (2x − y + 3z − 2) = 0(k1 , k2 , k3 は開発している Mathematica や，Maplesoft Inc. が開発していの形で表すことのできる 1 変数の式を見つけること自体が問題を解くことである．実

x
−
2y
+
z
=
0

（ただし，k ,k ,k はスカラー）が得られ，の値が求まる．
る Maple の 2 つは世界的に有名）である．現在の数式処の形で表すことのできる
1 x変数の式を見つけること自体が問題を解くことである．実際，
k1 = 29 , k2
x + y − z = 11 2 3
k1 , k2 , k3
が値であることである．もちろん，式変形の際にここで，大事なことはが得られ，x の値が求まる．
の形で表すことのできる
理システムは，大学数学はもちろん最先端の数学の研
2x − y1+変数の式を見つけること
3z = 22も問題なく新たな式が得られるが，それらの式は変数消去には基本的には役に立たな
k3 体が値であることである．もちろん，式変形の際において
ここで，大事なことは k1 , k2 , 自が 問 題 を 解 く こ と で あ る．実 際，1= ， k1 , k2 , k
究にも耐えられるレベルになっている．
を考える．数式処理システム
Mathematica5には方程式の解を出すコマンドとしてSolveが存在する．こ
9
2
連立方程式
7
1
去をするには 1 次式で十分だからである．
も問題なく新たな式が得られるが，それらの式は変数消去には基本的には役に立たない．なぜならが得られ，xの値
2= ，3= ，の と き，x=
歴史的に，『計算機に数学をさせる方法』や『計算
5
1
,
z
=
となる．
Solve
の内部では，吐き出し法が使われている(と予想される
).
第
2
式から第
1 式を引
9
9
9
9
3
1 年の講義『微分積分学』
次に，もう少し複雑な連立方程式を考えてみよう．大学
1 次式で十分だからである．
去をするには
大学
1
年の講義『線形代数学』では連立1次方程式の解法として吐き出し法を習う．連立
1
次方程式で
が求まる．
機に論理処理をさせる方法』は自然言語処理や人工知
数学科 准教授 鍋島克輔
引くとそれぞれの結果には変数 x が消える．すなわち，今ある式自体にスカラー倍もしくは加減の操作を法を習う．
1 年の講義『微分積分学』で，次のラグラ
次に，もう少し複雑な連立方程式を考えてみよう．大学
1 次方程式としてけるようになっていると思われる．例えば，連立
ここで，大事なことは
k1,k2,k3 が値であることであ {x = 7 } とな
能の分野と深い関係がある．これらの技法を用いれば1 個だけにすることができれば解が得られる．実際，吐き出し法で得られる最後の式の組は
9

法を習う．
（人間が補助につけば）90％,k を領域,k に x,y,z
る．もちろん，式変形の際において
k y)
ラグランジュの未定乗数法). 関数 f (x, y), g(x,D で定義された
C
定理 11 (つの式に複数の変数が存在すると解を求めることは難しいが，個だけとなっている．
1 個なら解をは 1以上の大学入試問題は，証 x − 2y + z = 0 1 2 3
1
= y),
f (x,
が
(a,zb)=で極値をとるとする．
(a, b) が g(x
たしながら動くときに，関数
明問題を含め計算機で解くことができるようである．
の多項式を代入しても問題なく新たな式が得られるが，). 関数 fz(x,g(x,定理 1 (ラグランジュの未定乗数法
なわち，変数消去が連立方程式を解く際の鍵である．そのため，連立方程式を解くということは，式のスxy)+y)y を領域−
1D で定義された C 級関数とする

w が存在する．
z=
f (x,
y) が
(a, b) で極値をとるとする．
(a, b) が g(x,1 y)= 0 の特異たしながら動くときに，関数“解きやすい式(=1
変数の式)”
次方程式の場
ことにより，吐き出し法は
これは，今，流行りの機械学習ではなく，まさしく論
それらの式は基本的には役に立たない．なぜなら，元2xを探し出している．上の連立− y + 3z = 2
ボックスとして利用するこ
w が存在する．

理的かつダイレクトに問題を解いているのであり，機の式が 1 次式なので変数消去をするには1 次式で十われており．数学アルゴリ
島克輔
を考える．数式処理システムには方程式の解を出すコマンドとしてが存在する．こk1 (x − 2yMathematica+ z) + k2 (x +y − z − 1) + k3 (2x − y +
3z f−x (a,2) =k2 , k=b) 0+Solve
wgx(k
(a,
0
1 , b)
3 はスカ
械学習に頼らない厳密的な手法を実現させている．
分だからである． 
5
1
,
z
=
となる．
Solve
の内部では，吐き出し法が使われている(と予想される
).
第
2
式から第
1
fy (a,
93b) b)=+0wgy (a, b) 2 = 0式を引
x (a,
 fx (a, b) + wg
の形で表すことのできる
1
変数の式を見つけること自体が問題を解くことである．実際，
k1 = , k2 = 5 ,
本稿では，科学フォーラムの性質上，専門的になら
次に，もう少し複雑な連立方程式を考えてみよう．

フトウェアは基本的に記号引くとそれぞれの結果には変数 x が消える．すなわち，今ある式自体にスカラー倍もしくは加減の操作を
fy (a, b) + wgy (a, b) = 0 g(a, b) 9 = 0 9
x の値が求まる．
ず読者がイメージしやすい，『連立方程式の解法』と大学 1 年の講義『微分積分学』で，次のラグランジ
われている．例えば，『２次
1が得られ，
個だけにすることができれば解が得られる．実際，吐き出し法で得られる最後の式の組は{x = 79 } とな
ただし，
f
,
g
は
f
と
g
の
x
での偏微分を表し，
fyg(a,, gy b)は f=と0g の y での偏微分を表
xk xが値であることである．もちろん，式変形の際において
k
,
k
,
k
k 2 , k3 に x
ここで，大事なことは解は異なり次となる．
2 3『集合制約問題を代数的に解く方法』について例を交ュ（Lagrange）の未定乗数法を習う．
11 ,個なら解をは 1 個だけとなっている．11 つの式に複数の変数が存在すると解を求めることは難しいが，
するこ
ただし，
f
,
g
は
f
と
g
の
x
での偏微分を表し，
f
,
g
は
f
と
g
の
y
での偏微分を表す．
x xy yも問題なく新たな式が得られるが，それらの式は変数消去には基本的には役に立たない．なぜなら，元のこれは，条件付き極値問題を解く際に大活躍する定理であるが，この定理は存在性
えて解説する．
なわち，変数消去が連立方程式を解く際の鍵である．そのため，連立方程式を解くということは，式のス
ルゴリ
1 次式で十分だからである．
去をするにはf (x, y)程式を解くのか？」は述べていない．例えば，『条件 x2 + y 2 = 10 のもとで，“解きやすい式(=1 変数の式)” を探し出している．上の連立
1 次方程式の場
ことにより，吐き出し法は
これは，条件付き極値問題を解く際に大活躍する定理であるが，この定理は存在性は言っている定理（ラグランジュの未定乗数法）
2 2 2
1
次に，もう少し複雑な連立方程式を考えてみよう．大学
1
2 年の講義『微分積分学』で，次のラグランジ
3wを未定乗数とし，
g
=
x
+
y
−
10
とすると，ラグランジュの未定問題において，
x + y D=で定義された10 のもとで，Cf (x,y) = 3x + 9x2 y程式を解くのか？」は述べていない．例えば，『条件を領域関数 f(x,y),g(x,y)
級関数
２．連立方程式に記号k1 (x − 2y + z) + k2 (x + y −(k1 , k2 , k3 はスカラ
法を習う．
2 z −21) + k3 (2x − y + 3z − 2) = 0
g = x +が条件
y − 10g(x,y)=0とすると，ラグランジュの未定乗数法より次問題において，w を未定乗数とし，とする．x,yを満たしながら動くと『２次
建築や家具などのモノづく+ 2xw 2= 0
 6x + 4y
大学 1 年の講義『線形代数学』では連立
1 次方程
z=f(x,y)が (a,b)の形で表すことのできる
1 変数の式を見つけること自体が問題を解くことである．実際，
k1 = 9 , k2 = 59x,,k).きに，関数関数 f (x, y),g(x, y)を領域
D で極値をとるとする．
で定義されたC 1 級関数とする．
定理 1 (ラグランジュの未定乗数法．33 になるもの』とソフト
4x
+
12y
+
2yw
=0

6x
+
4y
+
2xw
=
0

√

が得られ，
x の値が求まる．
y) がが(a,g(x,y)=0b) で極値をとるとする．
(a,= 0 の特異点でなたしながら動くときに，関数式の解法として吐き出し法を習う．連立
1 次方程式z = f (x,(a,b)の特異点でない場合には，次を満 b) が 2g(x, y)
記号を a を用いて
a = 334x + 12y + 2yw x= 0+ y 2 − 10 = 0

k
,
k
,
k
が値であることである．もちろん，式変形の際において
k1 , k2 , k3 に x
ここで，大事なことは
wが存在する．
1 2 3
であれば，理系の学生は解けるようになっていると思たす w が存在する．
校ならびに大学では多くの代数学』では連立 1 次方程式の解法として吐き出し法を習う．連立
1 次方程式であれば，理系の学生は解x2 + y 2 − 10 = 0
これは非線な連立方程式である．連立1次方程式と比べれば非線形な連立方程式のも問題なく新たな式が得られるが，それらの式は変数消去には基本的には役に立たない．なぜなら，元のわれる．例えば，連立1次方程式として計算が頻繁に使用されてい1 次方程式としてと思われる．例えば，連立できないと思われる（上の問題は工夫すれば解けるが，更に次数が大きいものは方針
w x (a, b) = 0
これは非線な連立方程式である．連立
1 次方程式と比べれば非線形な連立方程式の難易度は相当
 fx (a, b) + wg
1
次式で十分だからである．
去をするには
くこと』を考えれば，大学 1 年生の微分積分の教科書にラグランジュの未定乗数法を+ wg
fy (a,1b)年の講義『微分積分学』で，次のラグランジ
w y (a, b) = 0

+できないと思われる（上の問題は工夫すれば解けるが，更に次数が大きいものは方針すらわからな
z=0
ノづく
次に，もう少し複雑な連立方程式を考えてみよう．大学
 x − 2y
計算機科学と，昔からある
が重要である』と考えれば微分積分の教科書に載せてもいいかなと思われる．
g(a, b) = 0
1 年生の微分積分の教科書にラグランジュの未定乗数法を載せることはx 法を習う．
+ y −くこと』を考えれば，大学
z=1
ソフト

√

さて，この連立方程式の解を求めるため，数式処理システム Mathematica の Sol− y +が重要である』と考えれば微分積分の教科書に載せてもいいかなと思われる．
3z f=
2
2x ただし，33
x , gx は f と g の x での偏微分を表し，fy , gy は f と g の y での偏微分を表す．
1
学したら，大学の抽象的な
ただし，f
fと
gのx
ラグランジュの未定乗数法). 関数
f (x, y),x,gg(x,を領域
Dについての偏導関数をで定義された級関数とする．
x,定理 1 (さて，この連立方程式の解を求めるため，数式処理システム
x はy)解として次を与える．
Mathematica Cの Solveを用いると，
多くの
7
√
√
√
√
ステム
Mathematicaには方程式の解を出すコマンドとしてSolveが存在する．これを用いると
x
=
,
y
=
は無理もないことであり，
9z = f (x,表し，fy) が (a,b)y はで極値をとるとする．
b) がたしながら動くときに，関数
これは，条件付き極値問題を解く際に大活躍する定理であるが，この定理は存在性は言っているが「具を考える．数式処理システム
Mathematica には方程fとy についての偏導関数を表す．
y,g(x,gy,のw)={(∓2 (a,2, ±2, g(x,−2),y)(∓= 02,の特異点でな∓2 2, −7)解として次を与える．
れてい√ f (x,√y) = 3x3 + 9x2 y + 6y 3の内部では，吐き出し法が使われている(と予想される). 第 2 式から第 1 式を引き，第3x式から第2 √ 2 √1 式を
vid
Hikbert (1862–1943))wが存在する．
+
y
=
10
のもとで，
程式を解くのか？」は述べていない．例えば，『条件式の解を出すコマンドとして Solve が存在する．こ(x, y, w) = {(∓2 2,?± 2, −2), (∓ 2, ∓2 2, −7) (複合同順)
どのように計算しているのであろうか
x が消える．すなわち，今ある式自体にスカラー倍もしくは加減の操作を行い，
1 つの式に変数がには変数
5
1 w を未定乗数とし，7 問題において，すら，そのように感じていg =これは，条件付き極値問題を解く際に大活躍する定x2 + y 2 −10とすると，ラグランジュの未定乗数法より次の連立
,y=
,z= と
な る．Solve
れを用いると x=
らある
7
9
9
3
連立方程式を解く鍵は上述したように変数消去である．
3 つの式は非線形であるのどのように計算しているのであろうか?
きれば解が得られる．実際，吐き出し法で得られる最後の式の組は{x = 9 } となり，各式に存在する変数f x (a, b) + wgx (a, b) = 0
理であるが，この定理では，存在性は言っているがの内部では，吐き出し法が使われている（と予想されやすい式) を探す必要がある．
連立方程式を解く鍵は上述したように変数消去である．
3 yつの式は非線形であるので，次で表さる．
1 つの式に複数の変数が存在すると解を求めることは難しいが，1 個なら解を求めることができる．す(a, b) ==0 0

6xb)
++
4ywg
+
2xw
前を冠した定理の裏には膨
fy (a,る）．第 2 式から第 1 式を引き，第 3 式から第 1 式を「具体的にどのように連立方程式を解くのか？」は述象的な)を探す必要がある．
やすい式
方程式を解く際の鍵である．そのため，連立方程式を解くということは，式のスカラー倍や加減を繰返すg(a,4x + 12y + 2yw2b) =2=0 0っている．実際に手に取っy, w)(6x4y+ 2xw)+ k (x, y, w)(4x + 12y + 2yw) + k
あり，
引くとそれぞれの結果の式には変数 x が消える．すべてkい1 (x,な い．例
 え+ば，2 『条
2 件 x +y2 =0 の も と で，次方程式の場合， f , g は x
は “解きやすい式 (=1 変数の式)” を探し出している．上の連立
+
y
−
10
=0
象的数学に対して構成的数
ただし，fx , gx は f と g の xk1での偏微分を表し，
f
と
g
の
y
での偏微分を表す．
y y2 + k (x,3+ 4y +3+9x
2xw)y, w)(4x + 12y +』という問2yw) + k3 (x, y, w)(x2 +943))
1 (x, y, w)(6x2 の極値を求めよ．
y+6y（
f x,y)=3x
なわち，今ある式自体にスカラー倍もしくは加減の操
ら抽象的数学が花開き，そこれは非線な連立方程式である．連立 1 次方程式と比べれば非線形な連立方程式の難易度は相当高く，じていx − 2y + z) +作を行い，1k2 (x + y − zつの式に変数が− 1) + k3 (2x− 1y 個だけにすることがで+ 3z − 2) = 0(k1 , k2 , k3 はスカラー)
これは，条件付き極値問題を解く際に大活躍する定理であるが，この定理は存在性は言っているが「具題において，wを未定乗数とし g=x2+y2−10 とする算による研究には限度が訪できないと思われる（上の問題は工夫すれば解けるが，更に次数が大きいものは方針すらわからないであ22のもとで，f (x, y) = 3x3 + 9x2 y + 6y 3
『条件
きれば解が得られる．1程式を解くのか？」は述べていない．例えば，つの式に複数の変数が介在す 2 と，ラグランジュの未定乗数法より次の連立方程式が
1 x + y = 10
学という武器を手にした人
1 変数の式を見つけること自体が問題を解くことである．実際，
k1年生の微分積分の教科書にラグランジュの未定乗数法を載せることは適さな= 9 , k2 = 592, k3 =のとき，x − 79 = 0
1
くこと』を考えれば，大学
9
2には膨w を未定乗数とし，g 得られる．
= x + y − 10 とすると，ラグランジュの未定乗数法より次の連立問題において，ると解を求めることは難しいが，1個であれば解を求(高等学校まで思われる．
る．
が重要である』と考えれば微分積分の教科書に載せてもいいかなと思われる．
に取っめることができる．すなわち，変数消去が連立方程式k , k , k に x, y, z の多項式を代入してk1 , k2 , k3 が値であることである．もちろん，式変形の際において
Mathematica
さて，この連立方程式の解を求めるため，数式処理システム
1 2 3

w = 0 の Solve を用いると，Mat
成的数
 6x + 4y + 2xw
を解く際の鍵である．そのため，連立方程式を解くとる数学に還元され，計算機
1
次式なので変数消られるが，それらの式は変数消去には基本的には役に立たない．なぜなら，元の式が解として次を与える．
き，そ√ 4x√ + 12y + 2yw√w =√0いうことは，式のスカラー倍や加減を繰返すことによ (x, y, w) = {(∓2 
究分野である．実は，計算十分だからである．
2−2),2(∓ 2, ∓2 2, −7)2,±2,(複合同順)
x + y − 10 = 0
度が訪
変数の式）を探し出しているり，“解きやすい式”（1
1 年の講義『微分積分学』で，次のラグランジュ(Lagrange) の未定乗数
連立方程式を考えてみよう．大学した人
どのように計算しているのであろうか? 1 次方程式と比べれば非線形な連立方程式の難易度は相当高く，
これは非線な連立方程式である．連立
これは非線形な連立方程式である．連立 1 次方程ことになる．上の連立 1 次方程式の場合，
校まで連立方程式を解く鍵は上述したように変数消去である．3 つの式は非線形であるので，次で表される式
できないと思われる（上の問題は工夫すれば解けるが，更に次数が大きいものは方針すらわからないであ式と比べれば非線形な連立方程式の難易度は相当高く，) を探す必要がある．
やすい式
未定乗数法). 関数 f (x, y), g(x, y) を領域
D で定義された
C 1 級関数とする．
x, y が条件 g(x, y) = 0 を満
1 年生の微分積分の教科書にラグランジュの未定乗数法を載せることは適さなくこと』を考えれば，大学
fram
Inc.
が開発している計算機(a, b) が g(x, y) = 0 の特異点でない場合には，次を満たす
関数 z = f (x, y) が (a, b) で極値をとるとする．
が重要である』と考えれば微分積分の教科書に載せてもいいかなと思われる．
科学フォーラム
2024（4）
k1 (x, y, w)(6x + 4y + 2xw) + k2 (x, y,理大w)(4x
+ 12y + 2yw)
+ k3 (x, y,17w)(x2 + y 2 −処理システムは，大学数学，計算
さて，この連立方程式の解を求めるため，数式処理システム Mathematica の Solve を用いると，Matム

解として次を与える．

知能の分野と深い関係があ fx (a, b) + wgx (a, b) = 0


√
√
√
√
(x, y, w) = {(∓2 2, ± 2, −2), (∓ 2, ∓2 2, −7)(複合同順)

k1 (x − 2y + z) + k2 (x + y − z − 1) + k3 (2x − y + 3z − 2) = 0(k1 , k2 , k3 はスカラー)が求まる．
で表すことのできる
1 変数の式を見つけること自体が問題を解くことである．実際，k1 = 29 , k2 = 59 , k3 = 19 のとき，x − 79 = 0−
z − 1)k1+− y + 3z − 2) = 0(k1 , k2 , k3 はスカラー), kk23,(2xk3 が値であることである．もちろん，式変形の際において
k , k , k に x, y, z の多項式を代入してことはられ，x の値が求まる．
のできる
1 変数の式を見つけること自体が問題を解くことである．実際，
k1 1= 29 , k32 = 59 , k3 = 19 のとき，x − 79 = 0
1 次式なので変数消式が得られるが，それらの式は変数消去には基本的には役に立たない．なぜなら，元の式がk1 , k2 , k3 が値であることである．もちろん，式変形の際において
こで，大事なことは値が求まる．
こと自体が問題を解くことである．実際，
k1 = 29 , k2 = 59 , k3 = 19 のとき，x − 79 = 0 k1 , k2 , k3 に x, y, z の多項式を代入して式で十分だからである．
1 次式なので変数消
題なく新たな式が得られるが，それらの式は変数消去には基本的には役に立たない．なぜなら，元の式がなことは k1 , k2 , k3 が値であることである．もちろん，式変形の際において k1 , k2 , k3 に x, y, z の多項式を代入してる．この値を他の式に代入することにより
x,y,w の
1 年の講義『微分積分学』で，次のラグランジュ(Lagrange) の未定乗数
複雑な連立方程式を考えてみよう．大学
1
次式で十分だからである．
するには
1 次式なので変数消な式が得られるが，それらの式は変数消去には基本的には役に立たない．なぜなら，元の式がことである．もちろん，式変形の際において
k1 , k2 , k3 に x, y, z の多項式を代入して値も求められる．
1 年の講義『微分積分学』で，次のラグランジュ(Lagrange) の未定乗数に，もう少し複雑な連立方程式を考えてみよう．大学
次式で十分だからである．
1 次式なので変数消は変数消去には基本的には役に立たない．なぜなら，元の式が連立方程式を解く際に重要となるのは，グレブナー
習う．
1 年の講義『微分積分学』で，次のラグランジュ(Lagrange)
し複雑な連立方程式を考えてみよう．大学
ジュの未定乗数法). 関数 f (x, y), g(x, y) を領域
D で定義された C 1 級関数とする．x, y が条件
g(x, y)の未定乗数= 0 を満基底であり，グレブナー基底を求めるアルゴリズムは
1z 年の講義『微分積分学』で，次のラグランジュ(Lagrange)
の未定乗数
よう．大学
=
f
(x,
y)
が
(a,
b)
で極値をとるとする．
(a,
b)
が
g(x,
y)
=
0
の特異点でない場合には，次を満たす
きに，関数1 (ラグランジュの未定乗数法). 関数 f (x, y), g(x, y) を領域 D で定義された C 1 級関数とする．x, y が条件 g(x, y) = 0 を満存在すると共に多くの数式処理システムに実装されて
z =ff(x,(x,y),y) g(x,が (a,で極値をとるとする．
が g(x, y) = 0 x,の特異点でない場合には，次を満たす
ながら動くときに，関数ンジュの未定乗数法). 関数y)b)を領域
D で定義された (a,C 1 b)
級関数とする．
y が条件 g(x, y) = 0 を満いる．実際，このグレブナー基底が存在するからこそ

1
存在する．
z = fD(x,で定義されたy) が (a, b) で極値をとるとする．
が g(x,y) y)==
0 の特異点でない場合には，次を満たすときに，関数, y), g(x, y) を領域
C 級関数とする．x,(a,
y b)
が条件
g(x,
0 を満

計算機代数学の分野は大きく発展している．
 fx (a, b) + wgx (a, b) = 0b) で極値をとるとする．(a, b) が g(x,y) =の特異点でない場合には，次を満たす
b) 0+
wgfy (a,b) = 0fy (a,
x (a, b) + wgx (a, b) = 0


b)
0
b)b)+=wg
fg(a,

+ wg
= y0(a, b) = 0 ３．ブール代数と集合制約問題
y (a,
x (a,
 fx (a, b)
g の y での偏微分を表す．
fとg の x での偏微分を表し，f , gyfは
f b)と+wgy (a, b) = g(a,0 b) = 0y (a, fx (a, b) + wgx (a, b) = 0 y
集合制約問題を連立方程式と見做し代数的に解く方
wg= 0 の出力y (a,し，fx ,fgyx(a,はb)f +と【図】Mathematica
gのx b)での偏微分を表し，
fy , gy g(a,は f b)と g=の0y での偏微分を表す．
き極値問題を解く際に大活躍する定理であるが，この定理は存在性は言っているが「具体的にどのように連立方
g(a, b) 『条件= 0 fxy 2, g+y yは2 =はf と g の x での偏微分を表し，
fとの y での偏微分を表す．
10gのもとで，f (x, y) = 3x3 +法について紹介する．
9x2 y + 6y 3 の極値を求めよ．
』という」は述べていない．例えば，
れは，条件付き極値問題を解く際に大活躍する定理であるが，この定理は存在性は言っているが「具体的にどのように連立方
22（上の問
専門家以外は解くことができないと思われる
まず，必要な記号と定義を導入する．単位元
1を，fy , g y は f と g の
y での偏微分を表す．
を未定乗数とし，g=x + y − 10 とすると，ラグランジュの未定乗数法より次の連立方程式が得られる．
』というを解くのか？」は述べていない．例えば，『条件 x2 + y 2 = 10 のもとで，f (x, y) = 3x3 + 9x2 y + 6y 3 の極値を求めよ．
付き極値問題を解く際に大活躍する定理であるが，この定理は存在性は言っているが「具体的にどのように連立方
題は工夫すれば解けるが，更に次数が大きいものは方針すら持ち，加法と乗法が定義され（かつその演算に閉じている）
w を未定乗数とし，
g =xx2 2++yy22−=1010とすると，ラグランジュの未定乗数法より次の連立方程式が得られる．
において，のもとで，f (x, y) = 3x3 + 9x2 y + 6y 3 の極値を求めよ．
』という？」は述べていない．例えば，『条件する定理であるが，この定理は存在性は言っているが「具体的にどのように連立方

6x
+
4y
+
2xw
=
0
わからないであろう）『解くこと』を考えような集合 𝔹𝔹 の任意の元 a が a2=a を満たすとき 𝔹𝔹22 ．したがって，
2
2
3
2
3
w
を未定乗数とし，
g = x + fy (x,−y)
10=とすると，ラグランジュの未定乗数法より次の連立方程式が得られる．
x + y = 10 のもとで，+ 9x
y + 6y= の極値を求めよ．
』という
条件

4x3x
+ 12y
+ 2yw
れば，大学 1 年生の微分積分の教科書にラグランジ
6x + 4y0+ 2xw = 0 をブール環という．𝔽𝔽2={0,1} とし，任意の a,b∈𝔽𝔽2 に2− 10 とすると，ラグランジュの未定乗数法より次の連立方程式が得られる．
 x2 + y 2 − 10 = 0
ュの未定乗数法を載せることは適さないと思われるが，+ 12y=+0 2yw = 0 対し，加法を 1+1=0,1+0=0+1=1,0+0=0 と定義し，

+4x
2xw
 6x + 4y
立方程式である．連立
x2 +=y 20− 10 = 0 乗法を 1 · 1=1,1 ∙ 0=0 ∙ 1=0,0 ∙ 0=0 と定義すると，𝔽𝔽2
4x + 12y + 2yw『存在性が重要である』と考えれば微分積分の教科書

4y + 2xw1 次方程式と比べれば非線形な連立方程式の難易度は相当高く，専門家以外は解くことが=0
 6x +る（上の問題は工夫すれば解けるが，更に次数が大きいものは方針すらわからないであろう）．したがって，『解x2 + y 2 − 10 = 0はブール環となる．次に，(𝔽𝔽2)3 を考える．(aに載せてもいいかなと思われる．
4x + 12y+ 2yw = 01,a2,a3),
れは非線な連立方程式である．連立
1 次方程式と比べれば非線形な連立方程式の難易度は相当高く，専門家以外は解くことが


3
2
2
1
年生の微分積分の教科書にラグランジュの未定乗数法を載せることは適さないと思われるが，
『
存在性
ば，大学
y − この連立方程式の解を求めるため，
10 1 =
0x +さて，(a1,a2,a3)+(b『解(b1,b2,b3)∈(𝔽𝔽2) に対し，加法を．したがって，数式処理シないと思われる（上の問題は工夫すれば解けるが，更に次数が大きいものは方針すらわからないであろう）
1,b2,b3)連立方程式である．連立次方程式と比べれば非線形な連立方程式の難易度は相当高く，専門家以外は解くことが考えれば微分積分の教科書に載せてもいいかなと思われる．
) ·存在性(b1,b2,b3)=(a1+b1,a2+b2,a3+b．したがって，
ステム Mathematicaの Solve を用いると，Mathemat1 年生の微分積分の教科書にラグランジュの未定乗数法を載せることは適さないと思われるが，と』を考えれば，大学れる（上の問題は工夫すれば解けるが，更に次数が大きいものは方針すらわからないであろう）
3)，乗法を (a『解1,a2,a3『
程式と比べれば非線形な連立方程式の難易度は相当高く，専門家以外は解くことがMathematicaのSolveを用いると，
Mathematica
は図
1
のように
方程式の解を求めるため，数式処理システム
3
要である』と考えれば微分積分の教科書に載せてもいいかなと思われる．
1 年生の微分積分の教科書にラグランジュの未定乗数法を載せることは適さないと思われるが，『存在性 2) もまたブ
れば，大学
ica は【図】のように解として次を与える．（複合同順）=(a『解けるが，更に次数が大きいものは方針すらわからないであろう）．したがって，
1 ∙ b1,a2 ∙ b2,a3 ∙ b3) と定義すると，(𝔽𝔽る．
MathematicaのSolveを用いると，
Mathematica
は図 1 のようにて，この連立方程式の解を求めるため，数式処理システムと考えれば微分積分の教科書に載せてもいいかなと思われる．
√√√√
教科書にラグランジュの未定乗数法を載せることは適さないと思われるが，『存在性
ール環となる．
w
2,
±
2,
−2),
(∓
2,
∓2
2,
−7)
(
複合同順
)
(x,
y,
w)
=
{(∓2
して次を与える．
Mathematica の Solve を用いると，Mathematica
は図 1 のように立方程式の解を求めるため，数式処理システム
載せてもいいかなと思われる．
𝔹𝔹 と表し，任意のブール環をa,b∈𝔹𝔹 に対し，ブー
√
√
√
√
2,
∓2
2,
−7)
(
複合同順
)
(x,
y,
w)
=
{(∓2
2,
±
2,
−2),
(∓
える．
ているのであろうか?
MathematicaのSolveを用いると，
Mathematica
は図
1
のように
式処理システム
どのように計算しているのであろうか？
ル 演 算 子∨,∧,¬ を a∨b=a+b+a ∙ b,a∧b=a ∙
√
√
√
√
2,
∓2
2,
−7)
(
複合同順
)
(x,
y,
w)
=
{(∓2
2,
±
2,
−2),
(∓
く鍵は上述したように変数消去である．
3
つの式は非線形であるので，次で表される式の中から簡単な式(解き
連立方程式を解く鍵は上述したように変数消去であb,¬a=1+aと定義すると，(𝔹𝔹,∨,∧,¬)
はブール代ように計算しているのであろうか
√ ?
√
√
√
必要がある．
2,
∓2
2,
−7)
(
複合同順
)
∓2
2,
±
2,
−2),
(∓
立方程式を解く鍵は上述したように変数消去である．
3 つの式は非線形であるので，次で表される式の中から簡単な式(解きる．3 つの式は非線形であるので，次で表される式の数 と な り，逆 に，+, · を a+b=(¬a∧b)∨(a∧¬b)
しているのであろうか?

)kを探す必要がある．
い式
2
解く鍵は上述したように変数消去である．
3 つの式は非線形であるので，次で表される式の中から簡単な式(解き
中から解きやすい式を探す必要がある．
と a2· b=a∧bと定義すると，(𝔹𝔹,+,· ) はブール環と1 (x, y, w)(6x + 4y + 2xw) + k2 (x, y, w)(4x + 12y + 2yw) + k3 (x, y, w)(x + y − 10)
す必要がある．
去である．3 つの式は非線形であるので，次で表される式の中から簡単な式(解きなる．ブール代数は，『集合』や『論理』を代数的にk1 (x, y, w
w)(6x + 4y + 2xw)
w + k2 (x, y, w)(4x + 12y + 2yw) + k3 (x, y, w)(x2 + y 2 − 10)取り扱う際に有効であることが知られている．（ここk1 (x, y, w)(6x + 4y + 2xw) + k2 (x, y, w)(4x+ 12y + 2yw)
w + k3 (x, y, w)(x2 + y 2 − 10)ww) + k2 (x, y, w)(4x + 12y + 2yw) + k3 (x, y, w
w)(x2 + y 2 − 10)

では，要素でない 1 は集合全体を表し，0 は空集合を表す．）

す な わ ち，集 合 A,B に お い て 演 算∪,∩ を A∪

連 立 一 次 方 程 式 と の 違 い は，1(x,y,w),2(x,y,w),

B=A+B+A · B, A∩B=A · B と定義するとブール

3(x,y,w) は x,y,w の 3 変数多項式となることである．

代 数 と な る．例 え ば，{a,b,c,d} を 要 素 と し，集 合

解きやすい形の式の集合（定義する必要があるが難し

A={a,b,d},B={b,c,d} とする．ここで，P({a,b,c,d})

い定義はここでは述べない）のことをグレブナー基底とを {a,b,c,d} の冪集合（部分集合の集合）とすると，いう．グレブナー基底という多項式の集合には変数消P({a,b,c,d}) は (𝔽𝔽2)4 と見なすことができる．これは，去された多項式が含まれており，その式を解くことに第 1 成分が 1 なら a を持ち，0 なら a を持たないこより解を得ることができる．これが，連立方程式の解とを表し，第 2 成分が 1 なら b を持ち 0 なら b を持法の概要である．

たない，第 3 成分が 1 なら c を持ち 0 なら c を持た

さて，上の問題に関するグレブナー基底を Mathe-

ない，第 4 成分が 1 なら d を持ち 0 なら d を持たな

matica で求めると図の最後の出力となる（コマンドはいことを表す．このとき，A=(1,1,0,1),B=(0,1,1,1)

GroebnerBasis）．変 数 w の み の 式 w +9w+14 が 含と書くことができるので，A∩B は A · B=(1,1,0,1)

2

まれている．これは，w +9w+14=0 を意味し，これ· (0,1,1,1)=(0,1,0,1) と 計 算 す れ ば A∩B={b,d} がを解くことによって，w=−2,−7 を得ることができ

得 ら れ，A∪B は，A+B+A · B=(1,1,0,1)+(0,1,1,

2

18

特集

現代代数学の深化と広がり

1)+(0,1,0,1)=(1,1,1,1) と す れ ば A∪B={a,b,c,d}m a +w e +m a ∙ w e +{ s 1 , s 2 , s 3 , s 4 } , { s 1 , s 2 } ∙が得られる．重要なことは，代数的計算によって集合we+{s1,s2},{s3,s4} · ma+{s3,s4},ma ∙ we,b ∙ we+b,c ∙の演算は計算できることである．

w e +c , { s 1 } · a , { s 2 } · d , { s 3 } · c , { s 4 } · d , { s 1 } ·,xn からな

ブール環 𝔹𝔹 を係数とする n 変数 x1,x2,る多項式の集合を 𝔹𝔹[x1,x2,x2,,xn] と書き，x =x1,x =
2
1

2
2

h n +{ s 1 } , { s 2 } · h s +{ s 2 } , { s 3 } · h r +{ s 3 } , { s 4 } ·h+{s4},a · hr+a,b · hs+b,c · h+c,d · hn+d.

,x =xn となる条件をその多項式の集合に加えた

これを連立方程式と見做すことにより，集合制約問,xn) と書くようにする．本稿では，題を解く．連立方程式を解く鍵は変数消去であったの,xn) をブール多項式環と呼ぶ．すなわち，で，𝔹𝔹(ma,we,hn,hs,h,hr,a,b,c,d) 上のグレブナー

2n

集合を 𝔹𝔹(x1,x2,
𝔹𝔹(x1,x2,

数 学 の 記 号 で 書 く と 剰 余 環 𝔹𝔹[x1,x2,22

x −x2,,xn]/〈x −x1,21,x −xn〉がブール多項式環である．このと2nき，任意の f∈𝔹𝔹(x1,x2,,xn) に対して，f =f となることが確かめられるので，𝔹𝔹(x1,x2,2,xn) はブール環である．
具体的な集合制約問題として次の簡単な問題をブール多項式上で考え問題を解く．

基底（正確にはブーリアン・グレブナー基底）が役に立つ．
上の連立方程式のグレブナー基底を数式処理システム
Risa/Asir で計算すると次を出力する．
［1*ma+［s3,s4］,1*we+［s1,s2］,1*hn+（［s1,s2,s4］+1）*d+［s1］［s1］,*hs*b+［s1］*b,［s2］*hs+［s2］［s4］,*hk+［s4］（,［s1,s3］+1）*hr*a+（［s1,s3］+1）*a,［s3］*hr+［s3］［s1］,*a,（［s1,s2］+1）*b,（［s4］+1）*c,［s1,s2,s4］*d+［s1］］問題：ある高等学校の体育祭で 2 年生の出場する種

ここで，［s1,s2,s4］*d+［s1］
は {s1,s2,s4}∩d={s1} を意

脚である．2 年 A 組の 40 人のうち s1,s2,s3,s4 さんの

（
［s4］
+1）
*c は {s1,s2,s3}∩で d={s1} を 得 る．ま た，

目は，学級対抗リレー，障害物競走，騎馬戦，二人三4 人の種目がまだ決まっていない．生徒の性別は s1,s2

味しており，a,b,c,d はシングルトンということなのc=∅を意味しているので，c={s4} または空集合となは女，s3,s4 は男で，各生徒の要望は以下である．

る が，c は 空 集 合 で は な い の で，c={s4} と な る．

s1 の希望：二人三脚，s1 の不得意種目：リレー，（［s1,s2］+1）*b は，{s3,s4}∩b=∅を意味しているのs2 の希望：障害物競走，s2 の不得意種目：二人三脚，

で，b の可能性として，{s1},{s2},{s1,s2},∅となるが，s3 の希望：騎馬戦，s3 の不得意種目：騎馬戦，シングルトンということと d={s1} がわかっているの

s4 の希望：学級対抗リレー，s4 の不得意：二人三脚，

で，b={s2} である．残りは，a={s3} となる．

種目については次の条件がある．

もとの連立方程式では解の様相が分からないので加〇障害物競走は女のみ，

法と乗法を使い，グレブナー基底という形の多項式の〇騎馬戦は男のみ，集合に変形したことで“情報が読み取りやすい”状況〇リレーと二人三脚は男女が出場可能，となった．この処理を可能とするのが数式処理システ

以上の条件で，種目の振り分けはどのようになるか？

ムの強みである．また，代数的な視点から集合制約問
題を考えているので，集合制約問題の代数構造につい

まず，問題を整理するため記号を設定する．a をリてもそのグレブナー基底から読み取ることができる．

レー，b を障害物競走，c を騎馬戦，d を二人三脚の集合とする．また，we を女の集合，ma を男の集合，

世界的なパズルとして知られている数独は集合制約

hr を a を希望している生徒の集合，hs を b を希望し問題である．上記の手法を用いることにより問題を解ている生徒の集合，h を c を希望している生徒の集くことができる．また，代数的構造を解析することに合，hn を d を希望している生徒の集合とする．

より数独の難易度を数学的に定義できることが知られ問題を集合表記の式で書くと次となる．

ている．

ma∪we={s 1,s 2,s 3,s 4},s 1,s 2∈we,s 3,s 4∈ma,ma∩

現在の数式処理システムには，本稿で取り上げたこ

a,s 2∉d,s 3∉c,s 4∉d,s 1∈と以外に偏微分方程式，スキーム，コホモロジーなど

hn,s2∈hs,s3∈h,s4∈hr,a⊂hr,b⊂hs,c⊂h,d⊂hn．

数学に馴染みのものから物理学や電磁気学などたくさ

次 に，𝔹𝔹=P({s1,s2,s3,s4}) と し 𝔹𝔹(ma,we,hn,hs,h,んの計算機代数学を利用した処理ツールが存在する．

we=∅,b⊂we,c⊂ma,s 1

hr,a,b,c,d) のブール多項式環上の多項式として集合鍋島研究室では，『計算機に高度な数学をさせる』この関係式を表すと次となる．（ただし，=0 の記述は省とを目指し，代数的算法の設計，解析，実装から応用

略している．）

までの研究を行っている．
理大

科学フォーラム

2024（4）19