Slide 1

Slide 1 text

Θ͔ͬͨͭ΋ΓʹͳΔ Gröbnerجఈ ੴҪ େւ 13೥5݄4೔౔༵೔

Slide 2

Slide 2 text

ࣗݾ঺հ ੴҪେւʢa.k.a. @mr_konnʣ Twitter: @mr_konn Blog: http:/ /blog.konn-san.com/ Web: http:/ /konn-san.com/ Haskell lover ૣҴాେֶ਺ֶՊ࢛೥ ຊ౰͸ϩδοΫͷਓؒͷഺ͕ࠓ೥͸ԑ͋ͬͯ୅ ਺زԿʢಛʹ Gröbner جఈʣ ͷݚڀࣨʹ computational-algebra ͷ࡞ऀ 13೥5݄4೔౔༵೔

Slide 3

Slide 3 text

Table of Contents Gröbner جఈͷ؆୯ͳಋೖ Gröbner جఈͷܭࢉ๏ Buchberger ΞϧΰϦζϜ ࠷దԽख๏ɿsyzygy, sugar strategy Haskell ͷܕϨϕϧϓϩάϥϛϯάͷݱࡏ 13೥5݄4೔౔༵೔

Slide 4

Slide 4 text

Table of Contents Gröbner جఈͷ؆୯ͳಋೖ Gröbner جఈͷܭࢉ๏ Buchberger ΞϧΰϦζϜ ࠷దԽख๏ɿsyzygy, sugar strategy Haskell ͷܕϨϕϧϓϩάϥϛϯάͷݱࡏ 13೥5݄4೔౔༵೔

Slide 5

Slide 5 text

Gröbner جఈ ͷ؆୯ͳಋೖ 13೥5݄4೔౔༵೔

Slide 6

Slide 6 text

Gröbner جఈͷԠ༻ ߴ࣍࿈ཱํఔࣜͷจࣈফڈ ॳ౳زԿͷࣗಈূ໌ ౷ܭʹ΋Կ͔Ԡ༻͕͋ΔΒ͍͠ ϩϘςΟΫε ܭࢉػ୅਺ɺ୅਺زԿֶ 13೥5݄4೔౔༵೔

Slide 7

Slide 7 text

Gröbner جఈ 13೥5݄4೔౔༵೔

Slide 8

Slide 8 text

Gröbner جఈ “άϨϒφʔ͖͍ͯ” ͱಡΉ 13೥5݄4೔౔༵೔

Slide 9

Slide 9 text

Gröbner جఈ “άϨϒφʔ͖͍ͯ” ͱಡΉ 1960s: ኍதฏ༞ɺB. Buchberger Β͕ಠཱʹൃݟ 13೥5݄4೔౔༵೔

Slide 10

Slide 10 text

Gröbner جఈ “άϨϒφʔ͖͍ͯ” ͱಡΉ 1960s: ኍதฏ༞ɺB. Buchberger Β͕ಠཱʹൃݟ Gröbner ͸ Buchberger ͷࢣঊͷ໊લ 13೥5݄4೔౔༵೔

Slide 11

Slide 11 text

Gröbner جఈ “άϨϒφʔ͖͍ͯ” ͱಡΉ 1960s: ኍதฏ༞ɺB. Buchberger Β͕ಠཱʹൃݟ Gröbner ͸ Buchberger ͷࢣঊͷ໊લ ኍத͸ಛҟ఺ղফͷͨΊʹߟ͑ͨ 13೥5݄4೔౔༵೔

Slide 12

Slide 12 text

Gröbner جఈ “άϨϒφʔ͖͍ͯ” ͱಡΉ 1960s: ኍதฏ༞ɺB. Buchberger Β͕ಠཱʹൃݟ Gröbner ͸ Buchberger ͷࢣঊͷ໊લ ኍத͸ಛҟ఺ղফͷͨΊʹߟ͑ͨ ٕज़ͷਐาͰܭࢉग़དྷΔΑ͏ʹͳΓԠ༻͕ग़Δ 13೥5݄4೔౔༵೔

Slide 13

Slide 13 text

Gröbner جఈ “άϨϒφʔ͖͍ͯ” ͱಡΉ 1960s: ኍதฏ༞ɺB. Buchberger Β͕ಠཱʹൃݟ Gröbner ͸ Buchberger ͷࢣঊͷ໊લ ኍத͸ಛҟ఺ղফͷͨΊʹߟ͑ͨ ٕज़ͷਐาͰܭࢉग़དྷΔΑ͏ʹͳΓԠ༻͕ग़Δ ମ্ଟ߲ࣜ؀ͷΠσΞϧͷੑ࣭ͷΑ͍ੜ੒ݩ 13೥5݄4೔౔༵೔

Slide 14

Slide 14 text

ମ্ଟ߲ࣜ؀ͷΠσΞϧ ͷੑ࣭ͷΑ͍ੜ੒ݩ 13೥5݄4೔౔༵೔

Slide 15

Slide 15 text

ʁʁʁ 13೥5݄4೔౔༵೔

Slide 16

Slide 16 text

ମ্ଟ߲ࣜ؀ͷΠσΞϧ ͷੑ࣭ͷΑ͍ੜ੒ݩ 13೥5݄4೔౔༵೔

Slide 17

Slide 17 text

ମ্ଟ߲ࣜ؀ͷΠσΞϧ ͷੑ࣭ͷΑ͍ੜ੒ݩ 13೥5݄4೔౔༵೔

Slide 18

Slide 18 text

ମ ͍ͨʢ≠͔ΒͩʣͱಡΉ ଍͠ࢉɺҾ͖ࢉɺֻ͚ࢉɺׂΓࢉʢ0Ҏ֎ʣ͕ग़͖ΔΑ ͏ͳߏ଄ ྫɿ༗ཧ਺ମ ℚ ͱ͔ෳૉ਺ମ ℂ ͱ͔ ྫɿ੔਺શମ ℤ ͸ମͰͳ͍ʢ1/2͸੔਺͡Όͳ͍ʣ ҎԼͰ͸খจࣈͷ k ͰମΛද͢ 13೥5݄4೔౔༵೔

Slide 19

Slide 19 text

ମ্ଟ߲ࣜ؀ͷΠσΞϧ ͷੑ࣭ͷΑ͍ੜ੒ݩ 13೥5݄4೔౔༵೔

Slide 20

Slide 20 text

ମ্ͷଟ߲ࣜ؀ k[X1 , …, Xn ] = {k Λ܎਺ͱ͢Δ n-ม਺ଟ߲ࣜશମ} ม਺ͷ਺͕ࣗ໌ͳ࣌͸ k[] = k[X1 , …, Xn ] ͱॻ͘ ࣗવʹ଍͠ࢉɺҾ͖ࢉɺֻ͚ࢉ͕ఆٛͰ͖Δʢׂ Γࢉ͸ग़དྷΔͱ͸ݶΒͳ͍ʣ ྫɿX1 2 + 2 X1 X2  + X2 2 ∈ k[X1 , X2 ], y2 − x ∈ k[x, y] 13೥5݄4೔౔༵೔

Slide 21

Slide 21 text

ମ্ଟ߲ࣜ؀ͷΠσΞϧ ͷੑ࣭ͷΑ͍ੜ੒ݩ 13೥5݄4೔౔༵೔

Slide 22

Slide 22 text

ΠσΞϧ ؀ R ͷ෦෼ू߹ I ͕ ΠσΞϧ Ͱ͋Δͱ͸ 1. ೚ҙͷ x, y ∈ I ʹ͍ͭͯ x − y ∈ I 2.೚ҙͷ c ∈ R, x ∈ I ʹ͍ͭͯ cx ∈ I ഒ਺֓೦ͷ҃ΔछͷҰൠԽʹͳ͍ͬͯΔ ΠσΞϧ I ʹଐ͢Δ ⇔ I ͷݩͰׂΕΔ a ͕ b ͷഒ਺ ⇔ ⟨a⟩ ⊆ ⟨b⟩ ఆٛ 13೥5݄4೔౔༵೔

Slide 23

Slide 23 text

ͳͥΠσΞϧʁ 13೥5݄4೔౔༵೔

Slide 24

Slide 24 text

ͳͥΠσΞϧʁ ΠσΞϧ͸زԿతʹ͸ͦͷྵ఺ͷ੒͢ਤܗͱରԠ͢Δ ʢਖ਼֬ʹ͸ࠜجΠσΞϧ͕ରԠʣ 13೥5݄4೔౔༵೔

Slide 25

Slide 25 text

ͳͥΠσΞϧʁ ΠσΞϧ͸زԿతʹ͸ͦͷྵ఺ͷ੒͢ਤܗͱରԠ͢Δ ʢਖ਼֬ʹ͸ࠜجΠσΞϧ͕ରԠʣ ⟨y − x2⟩ɿ์෺ઢ 13೥5݄4೔౔༵೔

Slide 26

Slide 26 text

ͳͥΠσΞϧʁ ΠσΞϧ͸زԿతʹ͸ͦͷྵ఺ͷ੒͢ਤܗͱରԠ͢Δ ʢਖ਼֬ʹ͸ࠜجΠσΞϧ͕ରԠʣ ⟨y − x2⟩ɿ์෺ઢ ⟨y2 + x2 − 1, y + 2x − 1⟩ɿԁͱ௚ઢͷަ఺ 13೥5݄4೔౔༵೔

Slide 27

Slide 27 text

ͳͥΠσΞϧʁ ΠσΞϧ͸زԿతʹ͸ͦͷྵ఺ͷ੒͢ਤܗͱରԠ͢Δ ʢਖ਼֬ʹ͸ࠜجΠσΞϧ͕ରԠʣ ⟨y − x2⟩ɿ์෺ઢ ⟨y2 + x2 − 1, y + 2x − 1⟩ɿԁͱ௚ઢͷަ఺ ަ఺ 㱻 ࿈ཱํఔࣜͷղ 13೥5݄4೔౔༵೔

Slide 28

Slide 28 text

ͳͥΠσΞϧʁ ΠσΞϧ͸زԿతʹ͸ͦͷྵ఺ͷ੒͢ਤܗͱରԠ͢Δ ʢਖ਼֬ʹ͸ࠜجΠσΞϧ͕ରԠʣ ⟨y − x2⟩ɿ์෺ઢ ⟨y2 + x2 − 1, y + 2x − 1⟩ɿԁͱ௚ઢͷަ఺ ަ఺ 㱻 ࿈ཱํఔࣜͷղ ΠσΞϧ͸࿈ཱ͞Εͨؔ܎ࣜͱ΋ݟΔ͜ͱ͕ग़དྷΔ 13೥5݄4೔౔༵೔

Slide 29

Slide 29 text

ͳͥΠσΞϧʁ ΠσΞϧ͸زԿతʹ͸ͦͷྵ఺ͷ੒͢ਤܗͱରԠ͢Δ ʢਖ਼֬ʹ͸ࠜجΠσΞϧ͕ରԠʣ ⟨y − x2⟩ɿ์෺ઢ ⟨y2 + x2 − 1, y + 2x − 1⟩ɿԁͱ௚ઢͷަ఺ ަ఺ 㱻 ࿈ཱํఔࣜͷղ ΠσΞϧ͸࿈ཱ͞Εͨؔ܎ࣜͱ΋ݟΔ͜ͱ͕ग़དྷΔ Gröbner جఈΛ࢖͏ͱ৭Μͳਤܗɾ࿈ཱํఔࣜʹ ؔ͢Δܭࢉ͕؆୯ʹग़དྷΔΑ͏ʹͳΔ 13೥5݄4೔౔༵೔

Slide 30

Slide 30 text

ମ্ଟ߲ࣜ؀ͷΠσΞϧ ͷੑ࣭ͷΑ͍ੜ੒ݩ 13೥5݄4೔౔༵೔

Slide 31

Slide 31 text

ੜ੒ݩ ্ͷ ⟨f1 ,…, fr ⟩ ͸͖ͬ͞ͷΠσΞϧͷఆٛΛຬͨ͢ɻ ٯʹɺମ্ଟ߲ࣜ؀ͷΠσΞϧ͸ɺద౰ͳ f1 ,…, fr ʹ ΑΓɺ͢΂ͯ͜ͷܗͰॻ͚ΔʢHilbert ͷجఈఆཧʣ f1 , … , fr ∈ k[ ] ʹ͍ͭͯɺ ⟨f1 ,…, fr ⟩ := {a1 f1  +…+ ar fr ∣ ai  ∈ k[] (i = 1, … r)} Λ f1 ,…, fr ʹΑΓੜ੒͞ΕΔΠσΞϧͱ͍͏ɻ I = ⟨f1 ,…, fr ⟩ ͷ࣌ɺ f1 ,…, fr Λ I ͷجఈɺ·ͨ͸ ੜ੒ݩͱݺͿɻ ఆٛ 13೥5݄4೔౔༵೔

Slide 32

Slide 32 text

Hilbert ͷجఈఆཧ Noether ؀্ͷଟ߲ࣜ؀͸ Noether ؀Ͱ͋Δ ఆཧ 13೥5݄4೔౔༵೔

Slide 33

Slide 33 text

Hilbert ͷجఈఆཧ Noether ؀ͱ͸ʮ೚ҙͷΠσΞϧ͕༗ݶݸͷੜ੒ݩͰॻ͚Δʢʹ༗ ݶੜ੒ʣʯͱ͍͏৚݅Λຬͨ͢؀ Noether ؀্ͷଟ߲ࣜ؀͸ Noether ؀Ͱ͋Δ ఆཧ 13೥5݄4೔౔༵೔

Slide 34

Slide 34 text

Hilbert ͷجఈఆཧ Noether ؀ͱ͸ʮ೚ҙͷΠσΞϧ͕༗ݶݸͷੜ੒ݩͰॻ͚Δʢʹ༗ ݶੜ੒ʣʯͱ͍͏৚݅Λຬͨ͢؀ ܭࢉػͰѻ͏ʹ͸ɺଟ߲ࣜ؀ͷΠσΞϧ͸༗ݶݸͷଟ߲ࣜͷ૊ͱ͠ ͯఆٛ͢Ε͹े෼ Noether ؀্ͷଟ߲ࣜ؀͸ Noether ؀Ͱ͋Δ ఆཧ 13೥5݄4೔౔༵೔

Slide 35

Slide 35 text

Hilbert ͷجఈఆཧ Noether ؀ͱ͸ʮ೚ҙͷΠσΞϧ͕༗ݶݸͷੜ੒ݩͰॻ͚Δʢʹ༗ ݶੜ੒ʣʯͱ͍͏৚݅Λຬͨ͢؀ ܭࢉػͰѻ͏ʹ͸ɺଟ߲ࣜ؀ͷΠσΞϧ͸༗ݶݸͷଟ߲ࣜͷ૊ͱ͠ ͯఆٛ͢Ε͹े෼ ূ໌͸Ή͔͍͕ͣ͠ɺମͷ৔߹ʹ͍ͭͯ͸ Gröbner جఈΛ࢖͏ͱ ؆୯ʹࣔͤΔɻ ʢূ໌ɿGröbner جఈΛऔΕ͹Α͍■ʣ Noether ؀্ͷଟ߲ࣜ؀͸ Noether ؀Ͱ͋Δ ఆཧ 13೥5݄4೔౔༵೔

Slide 36

Slide 36 text

ମ্ଟ߲ࣜ؀ͷΠσΞϧ ͷੑ࣭ͷΑ͍ੜ੒ݩ 13೥5݄4೔౔༵೔

Slide 37

Slide 37 text

Α͍ੑ࣭ʁ ࠨͷ໰୊Λߟ͑Δ f1 ͱ f2 ͷ “࠷େެ໿ࣜ” f = GCD(f1 ,  f2 ) ͕Θ ͔Ε͹Α͍ I = ⟨ f ⟩ ͱͳΔͷͰɺ ͋ͱ͸ g, h Λ f Ͱׂ Γ੾ΕΔ͔ݟΔ f1  = x3 + x2 + x + 1 f2  = x2 − x − 2 I = ⟨ f1 ,  f2 ⟩ ⊆ k[x] ͱ͢Δͱɺg = x3 − 1,  h = x2 + 1 ͸ͦΕͧΕ I ʹଐ͔͢ʁ ໰୊ 1 13೥5݄4೔౔༵೔

Slide 38

Slide 38 text

࠷େެ໿ࣜͷٻΊํ Euclid ͷޓআ๏Λ࢖͏ ੔਺͚ͩͰͳ͘ɺׂΓࢉݪཧ͕੒ཱ͢Δ೚ ҙͷ؀Ͱ࢖͑Δ ੔਺ͷ৔߹ɿ͋Δݩ͕ ⟨a, b⟩ ʹଐ͢Δ ɹ㱻 a, b ͰׂΕΔ ɹ㱻 a, b ͷ࠷େެ໿਺ͰׂΕΔ ಉ༷ͷ͜ͱ͕Ұม਺ଟ߲ࣜ؀Ͱ΋੒ཱ 13೥5݄4೔౔༵೔

Slide 39

Slide 39 text

Euclid ͷޓআ๏ ೖྗɿf, g 1. f  Λ g ͰׂΓࢉͨ͠༨ΓΛ r0 ͱ͢Δ 2.g  Λ r0 ͰׂΓࢉͨ͠༨ΓΛ r1 ͱ͢Δ 3.r0   Λ r1 ͰׂΓࢉͨ͠༨ΓΛ r2 ͱ͢Δ 4.ҎԼθϩʹͳΔ·Ͱ܁Γฦ͠ ग़ྗɿθϩͰͳ͍࠷ޙͷ rn 13೥5݄4೔౔༵೔

Slide 40

Slide 40 text

Ұม਺ଟ߲ࣜͷׂΓࢉ ઌఔͷ໰୊Ͱ Euclidͷ ޓআ๏Λ࢖͏ͱ͖ͷ࠷ ॳͷεςοϓ ߱ႈͷॱʹฒ΂Δ େ͖͍߲ͱͷா৲Λ߹ Θ͍ͤͯ͘ x +2 x2 x 2 x3 +x2 +x +1 x3 x2 2x 2x2 +3x +1 2x2 2x 4 5x +5 13೥5݄4೔౔༵೔

Slide 41

Slide 41 text

͜ΕΛଟม਺ʹ ҰൠԽͰ͖ͳ͍͔ʁ 13೥5݄4೔౔༵೔

Slide 42

Slide 42 text

ଟม਺ͷ৔߹ 13೥5݄4೔౔༵೔

Slide 43

Slide 43 text

ଟม਺ͷ৔߹ f1  = X2Y − 1 f2  = X3 − Y2 − X I = ⟨ f1 ,  f2 ⟩ ⊆ k[X, Y] ͱ͢Δͱɺ g = X2Y2 − X3Y − XY − 1 ͸ I ʹଐ͔͢ʁ ໰୊ 2 13೥5݄4೔౔༵೔

Slide 44

Slide 44 text

ଟม਺ͷ৔߹ ೋม਺ͷ৔߹Λߟ͑Δ f1  = X2Y − 1 f2  = X3 − Y2 − X I = ⟨ f1 ,  f2 ⟩ ⊆ k[X, Y] ͱ͢Δͱɺ g = X2Y2 − X3Y − XY − 1 ͸ I ʹଐ͔͢ʁ ໰୊ 2 13೥5݄4೔౔༵೔

Slide 45

Slide 45 text

ଟม਺ͷ৔߹ ೋม਺ͷ৔߹Λߟ͑Δ f1 ͱ f2 ͷ “࠷େެ໿ࣜ” ͷΑ͏ͳ෺Λߟ͑ΒΕ Δ͔ʁ f1  = X2Y − 1 f2  = X3 − Y2 − X I = ⟨ f1 ,  f2 ⟩ ⊆ k[X, Y] ͱ͢Δͱɺ g = X2Y2 − X3Y − XY − 1 ͸ I ʹଐ͔͢ʁ ໰୊ 2 13೥5݄4೔౔༵೔

Slide 46

Slide 46 text

ଟม਺ͷ৔߹ ೋม਺ͷ৔߹Λߟ͑Δ f1 ͱ f2 ͷ “࠷େެ໿ࣜ” ͷΑ͏ͳ෺Λߟ͑ΒΕ Δ͔ʁ f1  = X2Y − 1 f2  = X3 − Y2 − X I = ⟨ f1 ,  f2 ⟩ ⊆ k[X, Y] ͱ͢Δͱɺ g = X2Y2 − X3Y − XY − 1 ͸ I ʹଐ͔͢ʁ ໰୊ 2 ➡ ग़དྷͳ͍ʂ 13೥5݄4೔౔༵೔

Slide 47

Slide 47 text

࠷େެ໿ࣜ͸औΕͳ͍ 13೥5݄4೔౔༵೔

Slide 48

Slide 48 text

࠷େެ໿ࣜ͸औΕͳ͍ ࠷େެ໿͕ࣜඞͣऔΕΔͳΒɺ೚ҙͷΠσΞ ϧ͸Ұͭͷଟ߲ࣜʹΑΓ⟨ f ⟩ ͷܗͰॻ͚Δ 13೥5݄4೔౔༵೔

Slide 49

Slide 49 text

࠷େެ໿ࣜ͸औΕͳ͍ ࠷େެ໿͕ࣜඞͣऔΕΔͳΒɺ೚ҙͷΠσΞ ϧ͸Ұͭͷଟ߲ࣜʹΑΓ⟨ f ⟩ ͷܗͰॻ͚Δ ͔͠͠ɺྫ͑͹⟨x, y⟩ʹ্͍ͭͯͷΑ͏ͳ f ͸ଘࡏ͠ͳ͍ʂ 13೥5݄4೔౔༵೔

Slide 50

Slide 50 text

࠷େެ໿ࣜ͸औΕͳ͍ ࠷େެ໿͕ࣜඞͣऔΕΔͳΒɺ೚ҙͷΠσΞ ϧ͸Ұͭͷଟ߲ࣜʹΑΓ⟨ f ⟩ ͷܗͰॻ͚Δ ͔͠͠ɺྫ͑͹⟨x, y⟩ʹ্͍ͭͯͷΑ͏ͳ f ͸ଘࡏ͠ͳ͍ʂ ผͷखஈΛߟ͑Δ΂͠ 13೥5݄4೔౔༵೔

Slide 51

Slide 51 text

࠷େެ໿ࣜ͸औΕͳ͍ ࠷େެ໿͕ࣜඞͣऔΕΔͳΒɺ೚ҙͷΠσΞ ϧ͸Ұͭͷଟ߲ࣜʹΑΓ⟨ f ⟩ ͷܗͰॻ͚Δ ͔͠͠ɺྫ͑͹⟨x, y⟩ʹ্͍ͭͯͷΑ͏ͳ f ͸ଘࡏ͠ͳ͍ʂ ผͷखஈΛߟ͑Δ΂͠ ׂΓࢉͷ༨Γ͕ॏཁͩͬͨ 13೥5݄4೔౔༵೔

Slide 52

Slide 52 text

࠷େެ໿ࣜ͸औΕͳ͍ ࠷େެ໿͕ࣜඞͣऔΕΔͳΒɺ೚ҙͷΠσΞ ϧ͸Ұͭͷଟ߲ࣜʹΑΓ⟨ f ⟩ ͷܗͰॻ͚Δ ͔͠͠ɺྫ͑͹⟨x, y⟩ʹ্͍ͭͯͷΑ͏ͳ f ͸ଘࡏ͠ͳ͍ʂ ผͷखஈΛߟ͑Δ΂͠ ׂΓࢉͷ༨Γ͕ॏཁͩͬͨ ➡ ׂΓࢉΛҰൠԽͯ͠ΈΑ͏ʂ 13೥5݄4೔౔༵೔

Slide 53

Slide 53 text

ׂΓࢉͷҰൠԽ 13೥5݄4೔౔༵೔

Slide 54

Slide 54 text

ׂΓࢉͷҰൠԽ ෳ਺ͷଟ߲ࣜͰҰͭͷଟ߲ࣜΛׂΖ͏ʂ ଟ߲ࣜΛฒ΂͓͍ͯͯॱʹׂΕͳ͍͔ࢼ͢ Ұม਺ଟ߲ࣜͷ৔߹ͷ߱ႈͷॱͷΑ͏ʹɺԿ ͔౎߹ͷΑ͍ฒ΂ํΛߟ͑Δඞཁ͕͋Δ 13೥5݄4೔౔༵೔

Slide 55

Slide 55 text

ׂΓࢉͷҰൠԽ ෳ਺ͷଟ߲ࣜͰҰͭͷଟ߲ࣜΛׂΖ͏ʂ ଟ߲ࣜΛฒ΂͓͍ͯͯॱʹׂΕͳ͍͔ࢼ͢ Ұม਺ଟ߲ࣜͷ৔߹ͷ߱ႈͷॱͷΑ͏ʹɺԿ ͔౎߹ͷΑ͍ฒ΂ํΛߟ͑Δඞཁ͕͋Δ ➡ ୯߲ࣜॱংʂ 13೥5݄4೔౔༵೔

Slide 56

Slide 56 text

ଟ߲ࣜͷදݱ 13೥5݄4೔౔༵೔

Slide 57

Slide 57 text

ଟ߲ࣜͷදݱ ୯߲ࣜॱংͷલʹɺଟ߲ࣜͷදݱʹ͍ͭͯ 13೥5݄4೔౔༵೔

Slide 58

Slide 58 text

ଟ߲ࣜͷදݱ ୯߲ࣜॱংͷલʹɺଟ߲ࣜͷදݱʹ͍ͭͯ จࣈͱࢦ਺ͷྻʢ1, x2, xy, y2 ͳͲʣΛ୯߲ࣜͱ͍ ͍ɺͦΕͧΕʹ܎਺Λॻ͚ͯՃ͑ͨ΋ͷΛଟ߲ࣜ ͱݺͿͷͩͬͨ 13೥5݄4೔౔༵೔

Slide 59

Slide 59 text

ଟ߲ࣜͷදݱ ୯߲ࣜॱংͷલʹɺଟ߲ࣜͷදݱʹ͍ͭͯ จࣈͱࢦ਺ͷྻʢ1, x2, xy, y2 ͳͲʣΛ୯߲ࣜͱ͍ ͍ɺͦΕͧΕʹ܎਺Λॻ͚ͯՃ͑ͨ΋ͷΛଟ߲ࣜ ͱݺͿͷͩͬͨ จࣈͷؒʹॱ൪ΛܾΊΕ͹ɺ୯߲ࣜ͸੔਺ͷϕΫ τϧͱಉҰࢹग़དྷΔ 13೥5݄4೔౔༵೔

Slide 60

Slide 60 text

ଟ߲ࣜͷදݱ ୯߲ࣜॱংͷલʹɺଟ߲ࣜͷදݱʹ͍ͭͯ จࣈͱࢦ਺ͷྻʢ1, x2, xy, y2 ͳͲʣΛ୯߲ࣜͱ͍ ͍ɺͦΕͧΕʹ܎਺Λॻ͚ͯՃ͑ͨ΋ͷΛଟ߲ࣜ ͱݺͿͷͩͬͨ จࣈͷؒʹॱ൪ΛܾΊΕ͹ɺ୯߲ࣜ͸੔਺ͷϕΫ τϧͱಉҰࢹग़དྷΔ x > y ͱ͢Ε͹ɺx2 ↔ (2, 0), xy ↔ (1, 1),  1 ↔ (0, 0) ͱݴ͏۩߹ʹରԠ͢Δ 13೥5݄4೔౔༵೔

Slide 61

Slide 61 text

ଟ߲ࣜͷදݱ ୯߲ࣜॱংͷલʹɺଟ߲ࣜͷදݱʹ͍ͭͯ จࣈͱࢦ਺ͷྻʢ1, x2, xy, y2 ͳͲʣΛ୯߲ࣜͱ͍ ͍ɺͦΕͧΕʹ܎਺Λॻ͚ͯՃ͑ͨ΋ͷΛଟ߲ࣜ ͱݺͿͷͩͬͨ จࣈͷؒʹॱ൪ΛܾΊΕ͹ɺ୯߲ࣜ͸੔਺ͷϕΫ τϧͱಉҰࢹग़དྷΔ x > y ͱ͢Ε͹ɺx2 ↔ (2, 0), xy ↔ (1, 1),  1 ↔ (0, 0) ͱݴ͏۩߹ʹରԠ͢Δ ͦ͜Ͱ n-ม਺୯߲ࣜશମΛℤn ≥0 ͱಉҰࢹ͢Δ 13೥5݄4೔౔༵೔

Slide 62

Slide 62 text

୯߲ࣜॱং ఆٛ 13೥5݄4೔౔༵೔

Slide 63

Slide 63 text

୯߲ࣜॱং ℤn ≥0 ্ͷॱংؔ܎ > ͸ɺ࣍ͷࡾͭͷ৚݅Λຬͨ ͢ͱ͖୯߲ࣜॱংͰ͋Δͱݴ͏ɿ ఆٛ 13೥5݄4೔౔༵೔

Slide 64

Slide 64 text

୯߲ࣜॱং ℤn ≥0 ্ͷॱংؔ܎ > ͸ɺ࣍ͷࡾͭͷ৚݅Λຬͨ ͢ͱ͖୯߲ࣜॱংͰ͋Δͱݴ͏ɿ 1. શॱংੑɿ (α < β) or (α = β) or (α > β) ఆٛ 13೥5݄4೔౔༵೔

Slide 65

Slide 65 text

୯߲ࣜॱং ℤn ≥0 ্ͷॱংؔ܎ > ͸ɺ࣍ͷࡾͭͷ৚݅Λຬͨ ͢ͱ͖୯߲ࣜॱংͰ͋Δͱݴ͏ɿ 1. શॱংੑɿ (α < β) or (α = β) or (α > β) 2.Ճ๏ੑɿα ≤ β ⇒ α + γ ≤ β + γ ఆٛ 13೥5݄4೔౔༵೔

Slide 66

Slide 66 text

୯߲ࣜॱং ℤn ≥0 ্ͷॱংؔ܎ > ͸ɺ࣍ͷࡾͭͷ৚݅Λຬͨ ͢ͱ͖୯߲ࣜॱংͰ͋Δͱݴ͏ɿ 1. શॱংੑɿ (α < β) or (α = β) or (α > β) 2.Ճ๏ੑɿα ≤ β ⇒ α + γ ≤ β + γ 3.ඇෛੑɿα ≥ 0 (೚ҙͷ α ∈ ℤn ≥0 ʹ͍ͭͯ) ఆٛ 13೥5݄4೔౔༵೔

Slide 67

Slide 67 text

୯߲ࣜॱংͷิ଍ 13೥5݄4೔౔༵೔

Slide 68

Slide 68 text

୯߲ࣜॱংͷิ଍ 3 ͷඇෛੑͷ৚݅͸ɺશॱংੑͱՃ๏ੑͷԼͰ ҎԼͷೋͭͱಉ஋ 13೥5݄4೔౔༵೔

Slide 69

Slide 69 text

୯߲ࣜॱংͷิ଍ 3 ͷඇෛੑͷ৚݅͸ɺશॱংੑͱՃ๏ੑͷԼͰ ҎԼͷೋͭͱಉ஋ ੔ྻੑɿ೚ҙͷۭͰͳ͍ ℤn ≥0 ͷ෦෼ू߹͕ < ʹؔͯ͠࠷খ஋Λ࣋ͭ 13೥5݄4೔౔༵೔

Slide 70

Slide 70 text

୯߲ࣜॱংͷิ଍ 3 ͷඇෛੑͷ৚݅͸ɺશॱংੑͱՃ๏ੑͷԼͰ ҎԼͷೋͭͱಉ஋ ੔ྻੑɿ೚ҙͷۭͰͳ͍ ℤn ≥0 ͷ෦෼ू߹͕ < ʹؔͯ͠࠷খ஋Λ࣋ͭ ߱࠯৚݅ɿ > ʹؔ͢ΔແݶԼ߱ྻ " " " α0  > α1  > α2  > ⋯ > αn  > ⋯ ͸ଘࡏ͠ͳ͍ 13೥5݄4೔౔༵೔

Slide 71

Slide 71 text

୯߲ࣜॱংͷิ଍ 3 ͷඇෛੑͷ৚݅͸ɺશॱংੑͱՃ๏ੑͷԼͰ ҎԼͷೋͭͱಉ஋ ੔ྻੑɿ೚ҙͷۭͰͳ͍ ℤn ≥0 ͷ෦෼ू߹͕ < ʹؔͯ͠࠷খ஋Λ࣋ͭ ߱࠯৚݅ɿ > ʹؔ͢ΔແݶԼ߱ྻ " " " α0  > α1  > α2  > ⋯ > αn  > ⋯ ͸ଘࡏ͠ͳ͍ ͜ΕΒ͸ɺΞϧΰϦζϜͷఀࢭੑͷূ໌Ͱ࢖͏ 13೥5݄4೔౔༵೔

Slide 72

Slide 72 text

୯߲ࣜॱংͷྫ ҎԼ α = (a1 , …, an ), β = (b1 , …, bn ) ͱ͢Δ ࣙॻࣜॱং >lex ͸୯߲ࣜॱং α >lex β :⟺ a1  = b1 , …, ai−1  = bi−1 ,  ai  > bi ٯࣙॻࣜॱং >revlex ͸୯߲ࣜॱংͰͳ͍ α >revlex β :⟺ ai+1  = bi+1 , …, an  = bn ,  ai  < bi ʢ※࠷ޙͷෆ౳߸ͷ޲͖ʹ஫ҙʂʣ 13೥5݄4೔౔༵೔

Slide 73

Slide 73 text

୯߲ࣜॱংͷྫ ࣍਺෇͖ࣙॻࣜॱং >grlex ͸୯߲ࣜॱং α >grlex β :⟺ ∣α∣ > ∣β∣ or (∣α∣=∣β∣ and α >lex β) ͨͩ͠ ∣α∣ = a1  + ⋯ + an ʢશ࣍਺ʣ ࣍਺෇͖ٯࣙॻࣜॱং >grevlex ͸୯߲ࣜॱং α >grevlex β :⟺ ∣α∣>∣β∣ or (∣α∣=∣β∣ and α >revlex β) 13೥5݄4೔౔༵೔

Slide 74

Slide 74 text

໿ଋ ୯߲ࣜॱং > Λݻఆ͢Δɻଟ߲ࣜ f ʹݱΕΔ ʢ܎਺ൈ͖ͷʣ୯߲ࣜͷதͰɺ> ʹ͍ͭͯ࠷ େͱͳΔ΋ͷΛઌ಄୯߲ࣜͱӠ͍ɺLM(f) Ͱ ද͢ɻLM(f) ͷ܎਺Λઌ಄܎਺ͱ͍͍ɺLC(f) Ͱද͢ɻLT(f) = LC(f) LM(f) Λઌ಄߲ͱݺͿɻ 13೥5݄4೔౔༵೔

Slide 75

Slide 75 text

ྫ f = x + 2y2w + 3z3 (x > y > z >w) >lex ɿLM(f) = x, LC(f) = 1, LT(f) = x >grlex ɿLM(f) = y2w, LC(f) = 2, LT(f) = 2y2w >grevlex ɿLM(f) = z3, LC(f) = 3, LT(f) = 3z3 13೥5݄4೔౔༵೔

Slide 76

Slide 76 text

ଟม਺ͷׂΓࢉ Ҏ্Λ༻͍ͯଟ߲ࣜ൛ͷׂΓࢉΛఆٛ͢Δ ୯߲ࣜॱংΛҰܾͭΊɺׂΔࣜɺׂΒΕΔࣜ ͱ΋ʹେ͖͍୯߲ࣜॱʹ੔ྻ͓ͯ͘͠ Ͳͷॱ൪ͰׂΔ͔͸ݻఆ͢Δʂ 13೥5݄4೔౔༵೔

Slide 77

Slide 77 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  a2  =  XY − 1 Y2 − 1 X2Y + XY2 + Y2 XY − 1, Y2 − 1 Ͱ X2Y + XY2 + Y2 ΛׂΔɻࣙॻࣜॱংΛ࢖͏ɻ 13೥5݄4೔౔༵೔

Slide 78

Slide 78 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  a2  =  XY − 1 Y2 − 1 X2Y + XY2 + Y2 ઌ಄߲ʹ஫໨ɻ࠷ॳͷࣜͰׂΕΔ 13೥5݄4೔౔༵೔

Slide 79

Slide 79 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X a2  =  XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X X Λֻ͚Ε͹ઌ಄߲͕ফ͑Δɻ 13೥5݄4೔౔༵೔

Slide 80

Slide 80 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  a2  =  XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X Ҿ͘ɻ 13೥5݄4೔౔༵೔

Slide 81

Slide 81 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  a2  =  XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 ্͔ΒҰͭ߱Ζͯ͠ɺ߱ႈͷॱʹฒ΂Δ 13೥5݄4೔౔༵೔

Slide 82

Slide 82 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  +  a2  =  XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 ઌ಄߲ʹ஫໨ɻ XY − 1 ͰׂΕΔɻ 13೥5݄4೔౔༵೔

Slide 83

Slide 83 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  +  Y a2  =  XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 XY2 − Y X + Y2 + Y ઌఔͱಉ༷ʹܭࢉɻ 13೥5݄4೔౔༵೔

Slide 84

Slide 84 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  +  Y a2  =  XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 XY2 − Y X + Y2 − Y ઌ಄߲ʹ஫໨ɻXY, Y2 ͲͪΒͰ΋ׂΕͳ͍ɻ 13೥5݄4೔౔༵೔

Slide 85

Slide 85 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  +  Y a2  =  1 XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 XY2 − Y X + Y2 − Y X ׂΕͳ͍ͷͰ X ͸༨Γͱͯ͠ԣʹΑ͚Δ Y2 − Y 13೥5݄4೔౔༵೔

Slide 86

Slide 86 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  +  Y a2  =  1 XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 XY2 − Y X + Y2 − Y X Y2 − Y ઌ಄߲ʹ஫໨ɻ XY ͸ແཧͩ 13೥5݄4೔౔༵೔

Slide 87

Slide 87 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  +  Y a2  =  1 XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 XY2 − Y X + Y2 − Y X Y2 ͰׂΕΔͷͰɺׂΔɻ Y2 − Y Y2 − 1 Y + 1 13೥5݄4೔౔༵೔

Slide 88

Slide 88 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  +  Y a2  =  1 XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 XY2 − Y X + Y2 − Y X Y2 − Y Y2 − 1 Y + 1 Y 1 0 1 Y, 1 ڞʹͲͷ߲Ͱ΋ׂΕͳ͍ͷͰԣʹΑ͚Δ 13೥5݄4೔౔༵೔

Slide 89

Slide 89 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  +  Y a2  =  1 XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 XY2 − Y X + Y2 − Y X Y2 − Y Y2 − 1 Y + 1 Y 1 0 1 r = X + Y + 1 Α͚ͨͷΛ଍ͯ͠ɺ༨Γ r ͕ग़Δ 13೥5݄4೔౔༵೔

Slide 90

Slide 90 text

࣮ྫɿଟม਺ͷׂΓࢉ a1  =  X  +  Y a2  =  1 XY − 1 Y2 − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 XY2 − Y X + Y2 − Y X Y2 − Y Y2 − 1 Y + 1 Y 1 0 1 r = X + Y + 1 X2Y + XY2 + Y2 = (XY − 1) (X+Y) + (Y2 − 1) ⋅1 + X + Y + 1 13೥5݄4೔౔༵೔

Slide 91

Slide 91 text

ଟม਺ׂΓࢉ ͜ΕͰ͍͍ͷͰ͸……ʂʁ ͱ͜Ζ͕ɺ ͋·Γ خ͘͠ͳ͍͜ͱ͕…… 13೥5݄4೔౔༵೔

Slide 92

Slide 92 text

͋·Γ ͷ໰୊ a1  =  a2  =  Y2 − 1 XY − 1 X2Y + XY2 + Y2 ׂΔॱ൪Λม͑ɺY2 − 1, XY − 1Ͱ X2Y + XY2 + Y2 ΛׂΔɻ 13೥5݄4೔౔༵೔

Slide 93

Slide 93 text

༨Γͷ໰୊ a1  =  X + 1 a2  = X  Y2 − 1 XY − 1 X2Y + XY2 + Y2 X2Y − X XY2 + X + Y2 XY2 − X 2X + Y2 2X Y2 Y2 − 1 1 0 1 r = 2X + 1 X2Y + XY2 + Y2 = (XY − 1) X + (Y2 − 1)(X + 1) + 2X + 1 13೥5݄4೔౔༵೔

Slide 94

Slide 94 text

༨Γ͕ҧ͏ʂ 13೥5݄4೔౔༵೔

Slide 95

Slide 95 text

༨Γ͕ҧ͏ʂ ଟ߲ࣜͷׂΓࢉ͸ ׂΔॱ൪Ͱ༨Γ͕มΘΔʂ 13೥5݄4೔౔༵೔

Slide 96

Slide 96 text

༨Γ͕ҧ͏ʂ ଟ߲ࣜͷׂΓࢉ͸ ׂΔॱ൪Ͱ༨Γ͕มΘΔʂ ୯ʹʮׂͬͯ༨Γθϩ㱺ΠσΞϧʹೖΔʂʯͱ ͸ग़དྷͳ͍ʂ 13೥5݄4೔౔༵೔

Slide 97

Slide 97 text

༨Γ͕ҧ͏ʂ ଟ߲ࣜͷׂΓࢉ͸ ׂΔॱ൪Ͱ༨Γ͕มΘΔʂ ୯ʹʮׂͬͯ༨Γθϩ㱺ΠσΞϧʹೖΔʂʯͱ ͸ग़དྷͳ͍ʂ ༩͑ΒΕͨΠσΞϧʹରͯ͠ɺׂΓࢉͷ༨Γ͕ ॱ൪ʹґΒͳ͍Α͏ͳੜ੒ݩΛऔΕͳ͍͔ʁ 13೥5݄4೔౔༵೔

Slide 98

Slide 98 text

༨Γ͕ҧ͏ʂ ଟ߲ࣜͷׂΓࢉ͸ ׂΔॱ൪Ͱ༨Γ͕มΘΔʂ ୯ʹʮׂͬͯ༨Γθϩ㱺ΠσΞϧʹೖΔʂʯͱ ͸ग़དྷͳ͍ʂ ༩͑ΒΕͨΠσΞϧʹରͯ͠ɺׂΓࢉͷ༨Γ͕ ॱ൪ʹґΒͳ͍Α͏ͳੜ੒ݩΛऔΕͳ͍͔ʁ ➡ Gröbner جఈʂ 13೥5݄4೔౔༵೔

Slide 99

Slide 99 text

Gröbner جఈ ୯߲ࣜॱং > ΛҰͭݻఆ͢Δɻଟ߲ࣜ؀ͷΠσΞ ϧ I ⊆ k[] ʹ͍ͭͯɺI ͷ༗ݶ෦෼ू߹ G = {g1, …, gn } ⊆ I ͕࣍ͷ৚݅Λຬͨ͢ͱ͖ɺG ͸ > ʹؔ͢ Δ I ͷ Gröbner جఈ Ͱ͋Δͱݴ͏ɻ ⟨LT(I)⟩ = ⟨LT(g1 ), …, LT(gn )⟩ (i.e. ⟨LT(f) ∣ f ∈ I ⟩ = ⟨LT(g1 ), …, LT(gn )⟩) ఆٛ 13೥5݄4೔౔༵೔

Slide 100

Slide 100 text

Gröbner جఈͷੑ࣭ ఆཧ 13೥5݄4೔౔༵೔

Slide 101

Slide 101 text

Gröbner جఈͷੑ࣭ ೚ҙͷଟ߲ࣜ؀ΠσΞϧʹର͠ Gröbner جఈ͕ଘࡏ͢Δ ఆཧ 13೥5݄4೔౔༵೔

Slide 102

Slide 102 text

Gröbner جఈͷੑ࣭ ೚ҙͷଟ߲ࣜ؀ΠσΞϧʹର͠ Gröbner جఈ͕ଘࡏ͢Δ ΠσΞϧ I ͷ Gröbner جఈ G = {g1 , …, gk } ͸ I Λੜ੒ ͢ΔɻଈͪɺI = ⟨g1 , …, gk ⟩ ఆཧ 13೥5݄4೔౔༵೔

Slide 103

Slide 103 text

Gröbner جఈͷੑ࣭ ೚ҙͷଟ߲ࣜ؀ΠσΞϧʹର͠ Gröbner جఈ͕ଘࡏ͢Δ ΠσΞϧ I ͷ Gröbner جఈ G = {g1 , …, gk } ͸ I Λੜ੒ ͢ΔɻଈͪɺI = ⟨g1 , …, gk ⟩ Gröbner جఈʹΑΔׂΓࢉͷ༨Γ͸ॱ൪ʹґΒͳ͍ɻ ఆཧ 13೥5݄4೔౔༵೔

Slide 104

Slide 104 text

Gröbner جఈͷੑ࣭ ೚ҙͷଟ߲ࣜ؀ΠσΞϧʹର͠ Gröbner جఈ͕ଘࡏ͢Δ ΠσΞϧ I ͷ Gröbner جఈ G = {g1 , …, gk } ͸ I Λੜ੒ ͢ΔɻଈͪɺI = ⟨g1 , …, gk ⟩ Gröbner جఈʹΑΔׂΓࢉͷ༨Γ͸ॱ൪ʹґΒͳ͍ɻ Gröbner جఈͰׂͬͨ༨Γ͕θϩͰ͋Δࣄͱ I ʹଐ͢Δ ͜ͱ͸ಉ஋ɿ r = f ̅G = 0 ⟺ f ∈ I ఆཧ 13೥5݄4೔౔༵೔

Slide 105

Slide 105 text

·ͱΊ Gröbner جఈ͸ମ্ଟ߲ࣜ؀ͷΠσΞϧͷྑ͍ੑ ࣭Λ࣋ͬͨੜ੒ݩ ୯߲ࣜॱংΛܾΊΔͱܭࢉग़དྷΔ ׂΓࢉͷ༨Γ͕ॱ൪ʹґΒͳ͍ ΠσΞϧॴଐ໰୊ʹ࢖͑Δ ଞʹ΋Ԡ༻ଟ਺ 13೥5݄4೔౔༵೔

Slide 106

Slide 106 text

͜͜·ͰͰ࣭໰ʁ 13೥5݄4೔౔༵೔

Slide 107

Slide 107 text

Table of Contents Gröbner جఈͷ؆୯ͳಋೖ Gröbner جఈͷܭࢉ๏ Buchberger ΞϧΰϦζϜ ࠷దԽख๏ɿsyzygy, sugar strategy Haskell ͷܕϨϕϧϓϩάϥϛϯάͷݱࡏ 13೥5݄4೔౔༵೔

Slide 108

Slide 108 text

Gröbner جఈͷܭࢉ๏ 13೥5݄4೔౔༵೔

Slide 109

Slide 109 text

Buchberger ΞϧΰϦζϜ 13೥5݄4೔౔༵೔

Slide 110

Slide 110 text

Buchberger ΞϧΰϦζϜ Gröbner جఈ͕ศརͦ͏ͳͷ͸Θ͔ͬͨ 13೥5݄4೔౔༵೔

Slide 111

Slide 111 text

Buchberger ΞϧΰϦζϜ Gröbner جఈ͕ศརͦ͏ͳͷ͸Θ͔ͬͨ ۩ମతͳܭࢉ๏ɿBuchberger ΞϧΰϦζϜ 13೥5݄4೔౔༵೔

Slide 112

Slide 112 text

Buchberger ΞϧΰϦζϜ Gröbner جఈ͕ศརͦ͏ͳͷ͸Θ͔ͬͨ ۩ମతͳܭࢉ๏ɿBuchberger ΞϧΰϦζϜ ४උతͳఆٛɿf, g ∈ k[] ͷ S-ଟ߲ࣜ 13೥5݄4೔౔༵೔

Slide 113

Slide 113 text

Buchberger ΞϧΰϦζϜ Gröbner جఈ͕ศརͦ͏ͳͷ͸Θ͔ͬͨ ۩ମతͳܭࢉ๏ɿBuchberger ΞϧΰϦζϜ ४උతͳఆٛɿf, g ∈ k[] ͷ S-ଟ߲ࣜ S(f, g) := ɹɹ ɹɹ f − ɹɹ  ɹɹg LCM(LT(f), LT(g)) LT(f) LCM(LT(f), LT(g)) LT(g) 13೥5݄4೔౔༵೔

Slide 114

Slide 114 text

Buchberger ΞϧΰϦζϜ Gröbner جఈ͕ศརͦ͏ͳͷ͸Θ͔ͬͨ ۩ମతͳܭࢉ๏ɿBuchberger ΞϧΰϦζϜ ४උతͳఆٛɿf, g ∈ k[] ͷ S-ଟ߲ࣜ S(f, g) := ɹɹ ɹɹ f − ɹɹ  ɹɹg f, g ͷઌ಄߲ಉ࢜Λଧফ͠߹Θͤͨ෺ LCM(LT(f), LT(g)) LT(f) LCM(LT(f), LT(g)) LT(g) 13೥5݄4೔౔༵೔

Slide 115

Slide 115 text

Buchberger ΞϧΰϦζϜ Gröbner جఈ͕ศརͦ͏ͳͷ͸Θ͔ͬͨ ۩ମతͳܭࢉ๏ɿBuchberger ΞϧΰϦζϜ ४උతͳఆٛɿf, g ∈ k[] ͷ S-ଟ߲ࣜ S(f, g) := ɹɹ ɹɹ f − ɹɹ  ɹɹg f, g ͷઌ಄߲ಉ࢜Λଧফ͠߹Θͤͨ෺ ͨͩ͠ LCM((a1 , …, an ), (b1 , …, bn ))  := (max{a1 , b1 }, …, max{an , bn }) LCM(LT(f), LT(g)) LT(f) LCM(LT(f), LT(g)) LT(g) 13೥5݄4೔౔༵೔

Slide 116

Slide 116 text

Buchberger ൑ఆ๏ I ⊆ k[]ɿΠσΞϧɹɹ >ɿ୯߲ࣜॱং G = {g1 , …, gk } ⊆ IɿI ͷੜ੒ݩ G’ = (g1 , …, gk )ɿG ͷݩΛద౰ʹฒ΂ͨ΋ͷ ͜ͷͱ͖ҎԼͷೋͭ͸ಉ஋ɿ 1. G ͸ > ʹؔ͢Δ I ͷ Gröbner جఈ 2.S(gi , gk )G’ = 0ɹ(∀ i < j) ఆཧ 13೥5݄4೔౔༵೔

Slide 117

Slide 117 text

Buchberger ΞϧΰϦζϜ ೖྗɿG = (f1 , …, fs ) R ← {S(p, q)G’ ∣ p ≠ q ∈ G} \ {0} G ← (G, R) R ≠ ∅ ग़ྗɿG R = ∅ 13೥5݄4೔౔༵೔

Slide 118

Slide 118 text

؆୯ͳ࣮૷ buchberger :: [Polynomial k ord n] → [Polynomial k ord n] buchberger ideal = fst $ until (null ∘ snd) loop (ideal, calc ideal) where loop (ggs, acc) = let cur = nub $ ggs ++ acc in (cur, calc cur) calc acc = [ q | f ← acc, g ← acc, f ≠ g , let q = sPolynomial f g `mod` acc , q ≠ zero ] 13೥5݄4೔౔༵೔

Slide 119

Slide 119 text

ܭࢉྫ 13೥5݄4೔౔༵೔

Slide 120

Slide 120 text

ܭࢉྫ I = ⟨x2y − 1, x3 − y2 − x⟩ ͷ Gröbner جఈ 13೥5݄4೔౔༵೔

Slide 121

Slide 121 text

ܭࢉྫ I = ⟨x2y − 1, x3 − y2 − x⟩ ͷ Gröbner جఈ Grevlex Ͱܭࢉ G = {x2y − 1, x3 − y2 − x, y3 + xy − x,  − y3 − xy + x} 13೥5݄4೔౔༵೔

Slide 122

Slide 122 text

ܭࢉྫ I = ⟨x2y − 1, x3 − y2 − x⟩ ͷ Gröbner جఈ Grevlex Ͱܭࢉ G = {x2y − 1, x3 − y2 − x, y3 + xy − x,  − y3 − xy + x} ׂΔॱ൪Ͱ౴͕͑มΘΒͳ͍͜ͱ͸ɺ·͋ɺ֬ ͔Ίͱ͍͍ͯͩ͘͞ɻ 13೥5݄4೔౔༵೔

Slide 123

Slide 123 text

lex Ͱܭࢉ͢Δͱʁ 13೥5݄4೔౔༵೔

Slide 124

Slide 124 text

lex Ͱܭࢉ͢Δͱʁ G = {x2y − 1, x3 − y2 − x, y3 + xy − x,  − y3 − xy + x, y5 + y4 +  y3 + x2 − x − 1,  − y5 − y4 − y3 − x2 + x + 1,  − y6 − y5 − y4 −  y3 + x + y − 1, y7 + 2y6 + 2y5 + 2y4 + 2y3 − y2 − 2x + 1, y6 +  y5 + y4 + y3 − x − y + 1,  − y7 − 2y6 − 2y5 − 2y4 − 2y3 + y2 +  2x − 1,  − y9 − 2y8 − 3y7 + y4 − 4y + 3,  − 1 / 2y10 − 3 / 2y9 −  5 / 2y8 − 7 / 2y7 + 1 / 2y5 + 1 / 2y4 − 9 / 2y + 7 / 2, y7 − y2 + 2y  − 1, 1 / 2y8 + y7 − 1 / 2y3 + 3 / 2y − 1,  − y7 + y2 − 2y + 1,  −  y8 − 2y7 + y3 − 3y + 2,  − 1 / 2y9 − 3 / 2y8 − 5 / 2y7 + 1 / 2y4 +  1 / 2y3 − 7 / 2y + 5 / 2, y9 + 2y8 + 3y7 − y4 + 4y − 3, y8 + 2y7 −  y3 + 3y − 2, 1 / 2y7 − 1 / 2y2 + y − 1 / 2, 1 / 2y10 + 3 / 2y9 + 5 /  2y8 + 7 / 2y7 − 1 / 2y5 − 1 / 2y4 + 9 / 2y − 7 / 2,  − 1 / 2y8 − y7  + 1 / 2y3 − 3 / 2y + 1, 1 / 2y9 + 3 / 2y8 + 5 / 2y7 − 1 / 2y4 − 1 /  2y3 + 7 / 2y − 5 / 2,  − 1 / 2y7 + 1 / 2y2 − y + 1 / 2} 13೥5݄4೔౔༵೔

Slide 125

Slide 125 text

Ͱ͔ͬʂ 13೥5݄4೔౔༵೔

Slide 126

Slide 126 text

ޮ཰ͷ໰୊ Grevlex ͕Ұ൪଎ͯ͘جఈ΋៉ྷͳ΋ͷ͕ٻ·Γ ΍͍͢ͱ͞ΕΔ lex ͸جఈ΋ෳࡶʹͳΔ͕͔͔࣌ؒ͠Δ ෺ʹΑͬͯ͸ Grevlex ͷํ͕஗͍͜ͱ΋͋Δ ͕ɺ΄΅େ఍͸ Grevlex ͕ѹ౗తʹ଎͍ Ԡ༻෼໺ʹΑͬͯ͸ grevlex Ͱ͸ͳ͘ lex Λ࢖͏ 13೥5݄4೔౔༵೔

Slide 127

Slide 127 text

ۃখɾඃ໿Gröbnerجఈ 13೥5݄4೔౔༵೔

Slide 128

Slide 128 text

ۃখɾඃ໿Gröbnerجఈ Buchberger ΞϧΰϦζϜͰٻΊͨجఈʹ͸ແବ͕͋Δ 13೥5݄4೔౔༵೔

Slide 129

Slide 129 text

ۃখɾඃ໿Gröbnerجఈ Buchberger ΞϧΰϦζϜͰٻΊͨجఈʹ͸ແବ͕͋Δ ۃখɾඃ໿ Gröbner جఈʂ 13೥5݄4೔౔༵೔

Slide 130

Slide 130 text

ۃখɾඃ໿Gröbnerجఈ Buchberger ΞϧΰϦζϜͰٻΊͨجఈʹ͸ແବ͕͋Δ ۃখɾඃ໿ Gröbner جఈʂ Gröbnerجఈ G ͕ۃখ ⇔ ೚ҙͷ i ʹ͍ͭͯ LC(gi ) = 1, LT(gi ) ͸Ͳͷ LT(gj ) (j ≠ i) Ͱ΋ׂΕͳ͍ 13೥5݄4೔౔༵೔

Slide 131

Slide 131 text

ۃখɾඃ໿Gröbnerجఈ Buchberger ΞϧΰϦζϜͰٻΊͨجఈʹ͸ແବ͕͋Δ ۃখɾඃ໿ Gröbner جఈʂ Gröbnerجఈ G ͕ۃখ ⇔ ೚ҙͷ i ʹ͍ͭͯ LC(gi ) = 1, LT(gi ) ͸Ͳͷ LT(gj ) (j ≠ i) Ͱ΋ׂΕͳ͍ G ͕ඃ໿  ⇔ ೚ҙͷ i ʹ͍ͭͯ LC(gi ) = 1 ͔ͭ  gi ͷͲͷ߲΋ LT(gj ) (j ≠ i) Ͱ΋ׂΕͳ͍ 13೥5݄4೔౔༵೔

Slide 132

Slide 132 text

ඃ໿ Gröbner جఈͷҰҙੑ 13೥5݄4೔౔༵೔

Slide 133

Slide 133 text

ඃ໿ Gröbner جఈͷҰҙੑ Gröbner جఈ͸ෳ਺ଘࡏ͠͏Δ 13೥5݄4೔౔༵೔

Slide 134

Slide 134 text

ඃ໿ Gröbner جఈͷҰҙੑ Gröbner جఈ͸ෳ਺ଘࡏ͠͏Δ buchberger ͰٻΊͨ෺ɺͦ ͷۃখԽ……etc 13೥5݄4೔౔༵೔

Slide 135

Slide 135 text

ඃ໿ Gröbner جఈͷҰҙੑ Gröbner جఈ͸ෳ਺ଘࡏ͠͏Δ buchberger ͰٻΊͨ෺ɺͦ ͷۃখԽ……etc ͦΕΒ͸ඃ໿Խ͢Ε͹Ұக͢ Δʂʢ୯߲ࣜॱং͕ಉ͡ͳΒʣ I ⊆ k[]ɿΠσΞϧ >ɿ୯߲ࣜॱং I ͷ > ʹ͍ͭͯͷඃ ໿ Gröbner جఈ͸Ұ ҙʹఆ·Δ ఆཧ 13೥5݄4೔౔༵೔

Slide 136

Slide 136 text

ඃ໿ Gröbner جఈͷҰҙੑ Gröbner جఈ͸ෳ਺ଘࡏ͠͏Δ buchberger ͰٻΊͨ෺ɺͦ ͷۃখԽ……etc ͦΕΒ͸ඃ໿Խ͢Ε͹Ұக͢ Δʂʢ୯߲ࣜॱং͕ಉ͡ͳΒʣ ΠσΞϧ͕౳͍͔͠Ͳ͏͔Λɺ ඃ໿ Gröbner جఈͷੜ੒ݩ͕ ౳͍͔͠Ͱ൑ఆग़དྷΔʂ I ⊆ k[]ɿΠσΞϧ >ɿ୯߲ࣜॱং I ͷ > ʹ͍ͭͯͷඃ ໿ Gröbner جఈ͸Ұ ҙʹఆ·Δ ఆཧ 13೥5݄4೔౔༵೔

Slide 137

Slide 137 text

ඃ໿Խͷखଓ 13೥5݄4೔౔༵೔

Slide 138

Slide 138 text

ඃ໿Խͷखଓ ·ͣۃখԽΛߦ͏ 1. G ͷ֤ݩΛ࠷ߴ࣍܎਺Ͱׂͬͯ LC(p) = 1 2. (2) ͷ৚݅Λຬͨ͞ͳ͍෺ΛऔΓআ͘ 13೥5݄4೔౔༵೔

Slide 139

Slide 139 text

ඃ໿Խͷखଓ ·ͣۃখԽΛߦ͏ 1. G ͷ֤ݩΛ࠷ߴ࣍܎਺Ͱׂͬͯ LC(p) = 1 2. (2) ͷ৚݅Λຬͨ͞ͳ͍෺ΛऔΓআ͘ ͦΕΛඃ໿Խ͢Δ 1. p ∈ G ΛऔΓɺp’ = p̅G \ {p}, G’ = G \ {p} ∪ {p’} ͱ͢Δ 2. q ∈ G’ \ {p’} ʹ͍ͭͯಉ༷ͷࣄΛ͢ΔɻҎԼಉจɻ 13೥5݄4೔౔༵೔

Slide 140

Slide 140 text

ܭࢉྫ 13೥5݄4೔౔༵೔

Slide 141

Slide 141 text

ܭࢉྫ ઌఔͷΠσΞϧʹ͍ͭͯ 13೥5݄4೔౔༵೔

Slide 142

Slide 142 text

ܭࢉྫ ઌఔͷΠσΞϧʹ͍ͭͯ Grevlex ʹؔ͢Δඃ໿جఈ G = {y3 + xy − x, x2y − 1, x3 − y2 − x} 13೥5݄4೔౔༵೔

Slide 143

Slide 143 text

ܭࢉྫ ઌఔͷΠσΞϧʹ͍ͭͯ Grevlex ʹؔ͢Δඃ໿جఈ G = {y3 + xy − x, x2y − 1, x3 − y2 − x} Lex ʹؔ͢Δඃ໿جఈ G = {y7 − y2 + 2y − 1,  − y6 − y5 − y4 − y3 + x  + y − 1} 13೥5݄4೔౔༵೔

Slide 144

Slide 144 text

ܭࢉྫ ઌఔͷΠσΞϧʹ͍ͭͯ Grevlex ʹؔ͢Δඃ໿جఈ G = {y3 + xy − x, x2y − 1, x3 − y2 − x} Lex ʹؔ͢Δඃ໿جఈ G = {y7 − y2 + 2y − 1,  − y6 − y5 − y4 − y3 + x  + y − 1} ͏Θͬ…φΠʔϒͳجఈɺແବଟ͗͢…ʁ 13೥5݄4೔౔༵೔

Slide 145

Slide 145 text

ܭࢉྫ ઌఔͷΠσΞϧʹ͍ͭͯ Grevlex ʹؔ͢Δඃ໿جఈ G = {y3 + xy − x, x2y − 1, x3 − y2 − x} Lex ʹؔ͢Δඃ໿جఈ G = {y7 − y2 + 2y − 1,  − y6 − y5 − y4 − y3 + x  + y − 1} ͏Θͬ…φΠʔϒͳجఈɺແବଟ͗͢…ʁ ࠷ॳ͔Βඃ໿άϨϒφʔجఈΛ࢈ΉΞϧΰϦζ Ϝ΋͋Δ 13೥5݄4೔౔༵೔

Slide 146

Slide 146 text

࣮૷ྫ దٓΞοϓσʔτ͢Δඞཁ͕͋ΔͷͰ ST Ͱָͯ͠ॻ͍ͨ ඃ໿Խͷ࣮૷΋ಉ༷ minimizeGroebnerBasis :: (Field k, IsPolynomial k n, IsMonomialOrder order) ⇒ [OrderedPolynomial k ord n] → [OrderedPolynomial k ord n] minimizeGroebnerBasis bs = runST $ do left ← newSTRef bs right ← newSTRef [] whileM_ (not . null <$> readSTRef left) $ do f : xs ← readSTRef left writeSTRef left xs ys ← readSTRef right if any (λg → leadingMonomial g `divs` leadingMonomial f) xs ∨ any (λg → leadingMonomial g `divs` leadingMonomial f) ys then writeSTRef right ys else writeSTRef right (monoize f : ys) readSTRef right 13೥5݄4೔౔༵೔

Slide 147

Slide 147 text

Table of Contents Gröbner جఈͷ؆୯ͳಋೖ Gröbner جఈͷܭࢉ๏ Buchberger ΞϧΰϦζϜ ࠷దԽख๏ɿsyzygy, sugar strategy Haskell ͷܕϨϕϧϓϩάϥϛϯάͷݱࡏ 13೥5݄4೔౔༵೔

Slide 148

Slide 148 text

࠷దԽख๏ φΠʔϒͳ࣮૷ͩͱ஗͍ʂ ୅දతͳ࣮૷Ͱ͋Δ SINGULAR ͷઍഒ͘Β͍ ஗͍ʢਪఆʣ Կͱ͔ඦഒ͘Β͍ʹ͢Δํ๏ ࢦ਺ΦʔμʔͳͷͰʙഒ͍ͬͯ͏දݱ͸͓ ͔͍͠ͷ͚ͩͲɾɾɾ 13೥5݄4೔౔༵೔

Slide 149

Slide 149 text

঺հ͢Δख๏ θϩ؆໿ؔ܎ syzygy ͷجఈ sugar strategy 13೥5݄4೔౔༵೔

Slide 150

Slide 150 text

঺հ͢Δख๏ θϩ؆໿ؔ܎ syzygy ͷجఈ sugar strategy 13೥5݄4೔౔༵೔

Slide 151

Slide 151 text

θϩ؆໿ؔ܎ 13೥5݄4೔౔༵೔

Slide 152

Slide 152 text

θϩ؆໿ؔ܎ Buchberger ͸Կނ஗͍ʁ 13೥5݄4೔౔༵೔

Slide 153

Slide 153 text

θϩ؆໿ؔ܎ Buchberger ͸Կނ஗͍ʁ Buchberger ͸ׂΓࢉͷ͔ͨ·Γ 13೥5݄4೔౔༵೔

Slide 154

Slide 154 text

θϩ؆໿ؔ܎ Buchberger ͸Կނ஗͍ʁ Buchberger ͸ׂΓࢉͷ͔ͨ·Γ lex ΑΓ grevlex ͕଎͍ͷ͸ɺͦͬͪͷ΄ ͏ׂ͕Γࢉͷεςοϓ͕খ͍͔͞Β 13೥5݄4೔౔༵೔

Slide 155

Slide 155 text

θϩ؆໿ؔ܎ Buchberger ͸Կނ஗͍ʁ Buchberger ͸ׂΓࢉͷ͔ͨ·Γ lex ΑΓ grevlex ͕଎͍ͷ͸ɺͦͬͪͷ΄ ͏ׂ͕Γࢉͷεςοϓ͕খ͍͔͞Β ׂΓࢉͷճ਺Λ΋ͬͱݮΒͤͳ͍ʁ 13೥5݄4೔౔༵೔

Slide 156

Slide 156 text

θϩ؆໿ؔ܎ ʮׂͬͯ༨ΓθϩʯΛҰൠԽͨ͠ͷ͕࣍ 13೥5݄4೔౔༵೔

Slide 157

Slide 157 text

θϩ؆໿ؔ܎ ʮׂͬͯ༨ΓθϩʯΛҰൠԽͨ͠ͷ͕࣍ ଟ߲ࣜ f ∈ k[] ͕ G = {g1 , …, gk } ⊆ k[] Λ ๏ͱͯ͠θϩʹ؆໿ʢه߸ɿ f →G 0ʣ͞ΕΔ  ⇔ f = a1 g1  + ⋯ + ak gk (ai  ∈ k[]) ͔ͭ [ai gi  = 0 ·ͨ͸ deg(f) ≥ deg(ai gi )] ୠ͠ɺdeg(f) ͸ f ͷଟॏ࣍਺ deg(f) = LM(f) ఆٛ 13೥5݄4೔౔༵೔

Slide 158

Slide 158 text

վྑ Buchberger ൑ఆ๏ ࣮͸ Buchberger ൑ఆ๏͸θϩ؆໿Ͱे෼ʂ 13೥5݄4೔౔༵೔

Slide 159

Slide 159 text

վྑ Buchberger ൑ఆ๏ ࣮͸ Buchberger ൑ఆ๏͸θϩ؆໿Ͱे෼ʂ I ⊆ k[]ɿΠσΞϧɹɹ >ɿ୯߲ࣜॱং G = {g1 , …, gk } ⊆ IɿI ͷੜ੒ݩ ͜ͷͱ͖ҎԼͷೋͭ͸ಉ஋ɿ 1. G ͸ > ʹؔ͢Δ I ͷ Gröbner جఈ 2. S(gi , gj )  →G   0ɹ(∀ i < j) ఆཧ 13೥5݄4೔౔༵೔

Slide 160

Slide 160 text

۩ମతʹ͍ͭθϩ؆໿ʁ I ⊆ k[]ɿΠσΞϧɹɹ >ɿ୯߲ࣜॱং G = {g1 , …, gk } ⊆ IɿI ͷੜ੒ݩ ໋୊ 13೥5݄4೔౔༵೔

Slide 161

Slide 161 text

۩ମతʹ͍ͭθϩ؆໿ʁ I ⊆ k[]ɿΠσΞϧɹɹ >ɿ୯߲ࣜॱং G = {g1 , …, gk } ⊆ IɿI ͷੜ੒ݩ S̅(f̅, ̅g̅)̅G’ = 0 ⇒ S(f, g) →G 0 ໋୊ 13೥5݄4೔౔༵೔

Slide 162

Slide 162 text

۩ମతʹ͍ͭθϩ؆໿ʁ I ⊆ k[]ɿΠσΞϧɹɹ >ɿ୯߲ࣜॱং G = {g1 , …, gk } ⊆ IɿI ͷੜ੒ݩ S̅(f̅, ̅g̅)̅G’ = 0 ⇒ S(f, g) →G 0 LCM(LM(f), LM(g)) = LM(f) LM(g) ⇒ S(f, g)  →G 0 ʢf, g ͕ ޓ͍ʹૉ ͳΒ S-ଟ߲ࣜ͸θϩʹ؆໿͞ΕΔʣ ໋୊ 13೥5݄4೔౔༵೔

Slide 163

Slide 163 text

ޓ͍ʹૉ൑ఆ ೋ൪໨ͷ৚͕݅࢖͑Δʂ x3 ͱ z4 ͸ޓ͍ʹૉͳͷͰ S(x3 + y, z4) →G 0 ͱͳΔ ɹɹɹ S(x3 + y, z4) = yz4 ɹɹɹ∴  S(x3 + y, z4)G = y ≠ 0 ࠓ·Ͱͷ൑ఆ๏ͩͱແବʹׂΓࢉΛ͢Δʂ ͲΕ͘Β͍վળʁ 13೥5݄4೔౔༵೔

Slide 164

Slide 164 text

Benchmark simple prime I1  = ⟨x2 + y2 + z2 − 1, x2 + y2 + z2 − 2x, 2x − 3y − z⟩ I2  = ⟨x2y − 2xy − 4z − 1, z − y2, x3 − 4zy⟩ I3  = ⟨2S − ay, b2 − (x2 + y2), c2 − ((a − x)2 + y2)⟩" I4  = ⟨z5 + y4 + x3 − 1, z3 + y3 + x2 − 1⟩ 13೥5݄4೔౔༵೔

Slide 165

Slide 165 text

Benchmark lex01 grlex01 grevlex01 lex03 grlex03 grevlex03 0ms 22.5ms 45ms 67.5ms 90ms simple prime grlex02 grevlex02 0.9s 1s 1.1s 1.2s 1.3s grlex04 grevlex04 0μs 150μs 300μs 450μs 600μs I1  = ⟨x2 + y2 + z2 − 1, x2 + y2 + z2 − 2x, 2x − 3y − z⟩ I2  = ⟨x2y − 2xy − 4z − 1, z − y2, x3 − 4zy⟩ I3  = ⟨2S − ay, b2 − (x2 + y2), c2 − ((a − x)2 + y2)⟩" I4  = ⟨z5 + y4 + x3 − 1, z3 + y3 + x2 − 1⟩ 13೥5݄4೔౔༵೔

Slide 166

Slide 166 text

঺հ͢Δख๏ θϩ؆໿ؔ܎ syzygy ͷجఈ sugar strategy 13೥5݄4೔౔༵೔

Slide 167

Slide 167 text

syzygy ͷجఈ ͦ΋ͦ΋ S-ଟ߲ࣜͱ͸Կͳͷ͔ʁ ࣮͸ syzygy ͱݺ͹ΕΔ΋ͷͷجఈʂ Gröbner جఈͷجఈͱ͸ҙຯ͕एׯҧ͏ “syzygy ͷ΋ͱ” ͱࢥ͑͹Α͍ 13೥5݄4೔౔༵೔

Slide 168

Slide 168 text

syzygy ఆٛ 13೥5݄4೔౔༵೔

Slide 169

Slide 169 text

syzygy (h1 , …, hs ) ∈ k[]s ͕ F = (f1 , …, fs ) ⊆ k[]s ͷ ઌ಄߲ͷ syzygy  :⇔ h1 LT(f1 ) + ⋯ + hs LT(fs ) = 0 F ͷઌ಄߲ syzygy ͷશମΛ S(F) ͱॻ͘ɻ ఆٛ 13೥5݄4೔౔༵೔

Slide 170

Slide 170 text

syzygy (h1 , …, hs ) ∈ k[]s ͕ F = (f1 , …, fs ) ⊆ k[]s ͷ ઌ಄߲ͷ syzygy  :⇔ h1 LT(f1 ) + ⋯ + hs LT(fs ) = 0 F ͷઌ಄߲ syzygy ͷશମΛ S(F) ͱॻ͘ɻ T ⊆ S(F) ͕ S(F) ͷجఈ  ⇔ S(F) ͷͲͷݩ΋ T ͷݩͷ༗ ݶݸͷ࿨Ͱॻ͚Δɻ ఆٛ 13೥5݄4೔౔༵೔

Slide 171

Slide 171 text

syzygy (h1 , …, hs ) ∈ k[]s ͕ F = (f1 , …, fs ) ⊆ k[]s ͷ ઌ಄߲ͷ syzygy  :⇔ h1 LT(f1 ) + ⋯ + hs LT(fs ) = 0 F ͷઌ಄߲ syzygy ͷશମΛ S(F) ͱॻ͘ɻ T ⊆ S(F) ͕ S(F) ͷجఈ  ⇔ S(F) ͷͲͷݩ΋ T ͷݩͷ༗ ݶݸͷ࿨Ͱॻ͚Δɻ ei  = (0, …, 0, 1, 0, …, 0) (i ൪໨͚ͩ 1) ͱॻ͘͜ͱʹ͢ Δɻ͜ͷͱ͖ ͱஔ͘ͱɺ S(fi , fj ) = Sij  ⋅ F ʢ಺ੵʣͱͳΔɻ LCM(LT(fi ), LT(fj )) LT(fi) LCM(LT(fi ), LT(fj )) LT(fj) Sij  :=  ei −   ej ఆٛ 13೥5݄4೔౔༵೔

Slide 172

Slide 172 text

syzygy ͷجఈͱθϩ؆໿ 13೥5݄4೔౔༵೔

Slide 173

Slide 173 text

syzygy ͷجఈͱθϩ؆໿ I ⊆ k[]ɿΠσΞϧɹɹ >ɿ୯߲ࣜॱং G = {g1 , …, gk } ⊆ IɿI ͷੜ੒ݩ S ⊆ S(G)ɿG ͷઌ಄߲ syzygy ͷجఈ ͜ͷͱ͖ҎԼͷೋͭ͸ಉ஋ɿ 1. G ͸ > ʹؔ͢Δ I ͷ Gröbner جఈ 2.೚ҙͷ T ∈ S ʹର͠ɺ T ⋅ G = ∑ k i = 1 ti gi  →G   0ɹ(∀ i < j) ఆཧ 13೥5݄4೔౔༵೔

Slide 174

Slide 174 text

S-ଟ߲ࣜͱ syzygy 13೥5݄4೔౔༵೔

Slide 175

Slide 175 text

S-ଟ߲ࣜͱ syzygy ࣮͸ Sij ͷશମ͸ S(G) ͷجఈ 13೥5݄4೔౔༵೔

Slide 176

Slide 176 text

S-ଟ߲ࣜͱ syzygy ࣮͸ Sij ͷશମ͸ S(G) ͷجఈ ༨෼ͳجఈ΋͍ࠞͬͯ͡Δ F = (x2y2 + z, xy2 − y, x2y + yz) S12  = (1,  -x, 0) S13  = (1, 0,  -y) S23  = (0, x,  -y) S13  − S12  = (0, x,  -y) = S23 ∴ S23 ͸ཁΒͳ͍ࢠ 13೥5݄4೔౔༵೔

Slide 177

Slide 177 text

S-ଟ߲ࣜͱ syzygy ࣮͸ Sij ͷશମ͸ S(G) ͷجఈ ༨෼ͳجఈ΋͍ࠞͬͯ͡Δ F = (x2y2 + z, xy2 − y, x2y + yz) S12  = (1,  -x, 0) S13  = (1, 0,  -y) S23  = (0, x,  -y) S13  − S12  = (0, x,  -y) = S23 ∴ S23 ͸ཁΒͳ͍ࢠ ༨෼ͳجఈΛ༧Ί൑ఆग़དྷͳ͍͔ʁ 13೥5݄4೔౔༵೔

Slide 178

Slide 178 text

ແବͳ syzygy جఈͷ൑ఆ 13೥5݄4೔౔༵೔

Slide 179

Slide 179 text

ແବͳ syzygy جఈͷ൑ఆ G = (g1 , …, gs ) gi , gj , gk  ∈ G ⊆ {Sij ∣ 1 ≤ j < k ≤ s}ɿS(G) ͷجఈ LT(gk ) ∣ LCM(LT(gi ), LT(gj )) ͔ͭ Sik , Sjk  ∈  ⇒  S \ {Sij } ΋ S(G) ͷجఈ ໋୊ 13೥5݄4೔౔༵೔

Slide 180

Slide 180 text

ແବͳ syzygy جఈͷ൑ఆ G = (g1 , …, gs ) gi , gj , gk  ∈ G ⊆ {Sij ∣ 1 ≤ j < k ≤ s}ɿS(G) ͷجఈ LT(gk ) ∣ LCM(LT(gi ), LT(gj )) ͔ͭ Sik , Sjk  ∈  ⇒  S \ {Sij } ΋ S(G) ͷجఈ ໋୊ ͜ΕͰׂΓࢉͷճ਺Λେ෯ʹݮΒͤΔʂ 13೥5݄4೔౔༵೔

Slide 181

Slide 181 text

վྑ൛ Buchbergerɾվ 13೥5݄4೔౔༵೔

Slide 182

Slide 182 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) 13೥5݄4೔౔༵೔

Slide 183

Slide 183 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) ॳظԽɿB := {(i, j)∣1 ≤ i < j ≤ s}ʢsyzygyجఈͷީิʣ G := F t := s 13೥5݄4೔౔༵೔

Slide 184

Slide 184 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) ॳظԽɿB := {(i, j)∣1 ≤ i < j ≤ s}ʢsyzygyجఈͷީิʣ G := F t := s खॱɿ B = ∅ ͱͳΔ·Ͱ࣍Λ܁Γฦ͢ɿ 13೥5݄4೔౔༵೔

Slide 185

Slide 185 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) ॳظԽɿB := {(i, j)∣1 ≤ i < j ≤ s}ʢsyzygyجఈͷީิʣ G := F t := s खॱɿ B = ∅ ͱͳΔ·Ͱ࣍Λ܁Γฦ͢ɿ 1. (i, j) ∈ B Λ೚ҙʹબͿ 13೥5݄4೔౔༵೔

Slide 186

Slide 186 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) ॳظԽɿB := {(i, j)∣1 ≤ i < j ≤ s}ʢsyzygyجఈͷީิʣ G := F t := s खॱɿ B = ∅ ͱͳΔ·Ͱ࣍Λ܁Γฦ͢ɿ 1. (i, j) ∈ B Λ೚ҙʹબͿ 2. LCM(LT(fi ), LT(fj ))  ≠  LT(fi ) LT(fj ) ͔ͭ Test(fi , fj , B) ِ͕ͳΒ 13೥5݄4೔౔༵೔

Slide 187

Slide 187 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) ॳظԽɿB := {(i, j)∣1 ≤ i < j ≤ s}ʢsyzygyجఈͷީิʣ G := F t := s खॱɿ B = ∅ ͱͳΔ·Ͱ࣍Λ܁Γฦ͢ɿ 1. (i, j) ∈ B Λ೚ҙʹબͿ 2. LCM(LT(fi ), LT(fj ))  ≠  LT(fi ) LT(fj ) ͔ͭ Test(fi , fj , B) ِ͕ͳΒ 1. S := S(fi , fj )G 13೥5݄4೔౔༵೔

Slide 188

Slide 188 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) ॳظԽɿB := {(i, j)∣1 ≤ i < j ≤ s}ʢsyzygyجఈͷީิʣ G := F t := s खॱɿ B = ∅ ͱͳΔ·Ͱ࣍Λ܁Γฦ͢ɿ 1. (i, j) ∈ B Λ೚ҙʹબͿ 2. LCM(LT(fi ), LT(fj ))  ≠  LT(fi ) LT(fj ) ͔ͭ Test(fi , fj , B) ِ͕ͳΒ 1. S := S(fi , fj )G 2. S ≠ 0 ͳΒ͹ t = t + 1, ft  = S, G = G ∪ {ft }, B = B ∪ {(i, t)∣1 ≤ i ≤ t − 1} 13೥5݄4೔౔༵೔

Slide 189

Slide 189 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) ॳظԽɿB := {(i, j)∣1 ≤ i < j ≤ s}ʢsyzygyجఈͷީิʣ G := F t := s खॱɿ B = ∅ ͱͳΔ·Ͱ࣍Λ܁Γฦ͢ɿ 1. (i, j) ∈ B Λ೚ҙʹબͿ 2. LCM(LT(fi ), LT(fj ))  ≠  LT(fi ) LT(fj ) ͔ͭ Test(fi , fj , B) ِ͕ͳΒ 1. S := S(fi , fj )G 2. S ≠ 0 ͳΒ͹ t = t + 1, ft  = S, G = G ∪ {ft }, B = B ∪ {(i, t)∣1 ≤ i ≤ t − 1} 3. B = B \ {(i, j)} 13೥5݄4೔౔༵೔

Slide 190

Slide 190 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) ॳظԽɿB := {(i, j)∣1 ≤ i < j ≤ s}ʢsyzygyجఈͷީิʣ G := F t := s खॱɿ B = ∅ ͱͳΔ·Ͱ࣍Λ܁Γฦ͢ɿ 1. (i, j) ∈ B Λ೚ҙʹબͿ 2. LCM(LT(fi ), LT(fj ))  ≠  LT(fi ) LT(fj ) ͔ͭ Test(fi , fj , B) ِ͕ͳΒ 1. S := S(fi , fj )G 2. S ≠ 0 ͳΒ͹ t = t + 1, ft  = S, G = G ∪ {ft }, B = B ∪ {(i, t)∣1 ≤ i ≤ t − 1} 3. B = B \ {(i, j)} ग़ྗɿG 13೥5݄4೔౔༵೔

Slide 191

Slide 191 text

վྑ൛ Buchbergerɾվ ೖྗɿ F = (f1 , …, fs ) ॳظԽɿB := {(i, j)∣1 ≤ i < j ≤ s}ʢsyzygyجఈͷީิʣ G := F t := s खॱɿ B = ∅ ͱͳΔ·Ͱ࣍Λ܁Γฦ͢ɿ 1. (i, j) ∈ B Λ೚ҙʹબͿ 2. LCM(LT(fi ), LT(fj ))  ≠  LT(fi ) LT(fj ) ͔ͭ Test(fi , fj , B) ِ͕ͳΒ 1. S := S(fi , fj )G 2. S ≠ 0 ͳΒ͹ t = t + 1, ft  = S, G = G ∪ {ft }, B = B ∪ {(i, t)∣1 ≤ i ≤ t − 1} 3. B = B \ {(i, j)} ग़ྗɿG ୠ͠Test(fi , fj , B) ⇔ ∃ k ≠ i, j [(i, k), (i, j) ∉ B, LT(fk ) ∣ LCM(LT(fi ), LT(fj ))] 13೥5݄4೔౔༵೔

Slide 192

Slide 192 text

࣮૷ syzygyBuchberger ideal = runST $ do bases ← newSTRef { Entry LM(f) f | f ← ideal } pairs ← newSTRef {(f, g) | (f, g) ← combinations ideal } len ← newSTRef $ length ideal whileM_ (not . null <$> readSTRef pairs) $ do Just ((f, g), rest) ← viewMin <$> readSTRef pairs bases0 ← readSTRef bases b .= rest let redundant = any (λ(Entry _ h) → h ∉ {f, g} ∧ (all (∉ rest) [(f, h), (g, h)]) ∧ LM(h) | LCM(LM(f), LM(g))) bases when (LCM(LM(f), LM(g)) ≠ LM(f) LM(g) ∧ not redundant) $ do len0 ← readSTRef len let s = S(f, g) `mod` map payload (toList bases0) when (s ≠ zero) $ do pairs += { (q, s) | Entry _ q ← qs } bases %= insert (Entry LM(s) s) len *= 2 map payload . toList <$> readSTRef bases 13೥5݄4೔౔༵೔

Slide 193

Slide 193 text

࣮૷ͷղઆ 13೥5݄4೔౔༵೔

Slide 194

Slide 194 text

࣮૷ͷղઆ ޮ཰ͷͨΊ ST Ϟφυʹͨ͠ 13೥5݄4೔౔༵೔

Slide 195

Slide 195 text

࣮૷ͷղઆ ޮ཰ͷͨΊ ST Ϟφυʹͨ͠ {} Ͱғ·Ε͍ͯΔͷ͸༏ઌ౓Ωϡʔͷͭ΋Γ 13೥5݄4೔౔༵೔

Slide 196

Slide 196 text

࣮૷ͷղઆ ޮ཰ͷͨΊ ST Ϟφυʹͨ͠ {} Ͱғ·Ε͍ͯΔͷ͸༏ઌ౓Ωϡʔͷͭ΋Γ ܦݧతʹɺׂΓࢉΛ͢Δࡍ͸ઌ಄߲Λঢॱʹฒ΂͓ͯ ͘ͱΑ͍ 13೥5݄4೔౔༵೔

Slide 197

Slide 197 text

࣮૷ͷղઆ ޮ཰ͷͨΊ ST Ϟφυʹͨ͠ {} Ͱғ·Ε͍ͯΔͷ͸༏ઌ౓Ωϡʔͷͭ΋Γ ܦݧతʹɺׂΓࢉΛ͢Δࡍ͸ઌ಄߲Λঢॱʹฒ΂͓ͯ ͘ͱΑ͍ ͲΜͲΜׂΕͯճ਺͕গͳ͘ͳΔ 13೥5݄4೔౔༵೔

Slide 198

Slide 198 text

࣮૷ͷղઆ ޮ཰ͷͨΊ ST Ϟφυʹͨ͠ {} Ͱғ·Ε͍ͯΔͷ͸༏ઌ౓Ωϡʔͷͭ΋Γ ܦݧతʹɺׂΓࢉΛ͢Δࡍ͸ઌ಄߲Λঢॱʹฒ΂͓ͯ ͘ͱΑ͍ ͲΜͲΜׂΕͯճ਺͕গͳ͘ͳΔ جఈީิΛઌ಄߲Λ༏ઌ౓ͱ͢ΔΩϡʔͱͯ࣋ͬ͠ ͓͍ͯͯɺׂΔͱ͖ʹ toList Ͱঢॱʹฒ΂͍ͯΔ 13೥5݄4೔౔༵೔

Slide 199

Slide 199 text

Benchmark simple prime syzygy 13೥5݄4೔౔༵೔

Slide 200

Slide 200 text

Benchmark lex01 grlex01 grevlex01 lex03 grlex03 grevlex03 0ms 22.5ms 45ms 67.5ms 90ms simple prime syzygy grlex02 grevlex02 0s 0.375s 0.75s 1.125s 1.5s grlex04 grevlex04 0μs 150μs 300μs 450μs 600μs 13೥5݄4೔౔༵೔

Slide 201

Slide 201 text

Benchmark lex01 grlex01 grevlex01 lex03 grlex03 grevlex03 0ms 22.5ms 45ms 67.5ms 90ms simple prime syzygy grlex02 grevlex02 0s 0.375s 0.75s 1.125s 1.5s grlex04 grevlex04 0μs 150μs 300μs 450μs 600μs ଎͗ͯ͢ݟ͑ͳ͍…… 13೥5݄4೔౔༵೔

Slide 202

Slide 202 text

ޓ͍ʹૉ൑ఆͱͷൺֱ lex01 grlex01 grevlex01 lex03 grlex03 grevlex03 0ms 2.5ms 5ms 7.5ms 10ms grlex02 grevlex02 0s 0.375s 0.75s 1.125s 1.5s grlex04 grevlex04 58μs 59.25μs60.5μs61.75μs 63μs prime syzygy 13೥5݄4೔౔༵೔

Slide 203

Slide 203 text

ޓ͍ʹૉ൑ఆͱͷൺֱ lex01 grlex01 grevlex01 lex03 grlex03 grevlex03 0ms 2.5ms 5ms 7.5ms 10ms grlex02 grevlex02 0s 0.375s 0.75s 1.125s 1.5s grlex04 grevlex04 58μs 59.25μs60.5μs61.75μs 63μs prime syzygy ͦΕͰ΋଎͍ ʂ 13೥5݄4೔౔༵೔

Slide 204

Slide 204 text

঺հ͢Δख๏ θϩ؆໿ؔ܎ syzygy ͷجఈ sugar strategy 13೥5݄4೔౔༵೔

Slide 205

Slide 205 text

Buchberger ͷࣗ༝౓ 13೥5݄4೔౔༵೔

Slide 206

Slide 206 text

Buchberger ͷࣗ༝౓ جఈͷީิ (i, j) Λݕ౼͍ͯ͘͠ॱ൪͸ࣗ༝ 13೥5݄4೔౔༵೔

Slide 207

Slide 207 text

Buchberger ͷࣗ༝౓ جఈͷީิ (i, j) Λݕ౼͍ͯ͘͠ॱ൪͸ࣗ༝ ͜ͷॱ൪ͷબͼํΛͲ͏͢Δ͔ʁ = selection strategy 13೥5݄4೔౔༵೔

Slide 208

Slide 208 text

Buchberger ͷࣗ༝౓ جఈͷީิ (i, j) Λݕ౼͍ͯ͘͠ॱ൪͸ࣗ༝ ͜ͷॱ൪ͷબͼํΛͲ͏͢Δ͔ʁ = selection strategy ώϡʔϦεςΟοΫͳઓུ͕஌ΒΕ͍ͯΔ 13೥5݄4೔౔༵೔

Slide 209

Slide 209 text

selection strategy 13೥5݄4೔౔༵೔

Slide 210

Slide 210 text

selection strategy normal strategy 13೥5݄4೔౔༵೔

Slide 211

Slide 211 text

selection strategy normal strategy ઌ಄߲ͷ LCM ͕ৗʹ࠷খʹͳΔ΋ͷ 13೥5݄4೔౔༵೔

Slide 212

Slide 212 text

selection strategy normal strategy ઌ಄߲ͷ LCM ͕ৗʹ࠷খʹͳΔ΋ͷ lex ॱংͳͲ࣍਺Λอͨͳ͍ॱংͰ͸ٯޮՌ 13೥5݄4೔౔༵೔

Slide 213

Slide 213 text

selection strategy normal strategy ઌ಄߲ͷ LCM ͕ৗʹ࠷খʹͳΔ΋ͷ lex ॱংͳͲ࣍਺Λอͨͳ͍ॱংͰ͸ٯޮՌ sugar strategy 13೥5݄4೔౔༵೔

Slide 214

Slide 214 text

selection strategy normal strategy ઌ಄߲ͷ LCM ͕ৗʹ࠷খʹͳΔ΋ͷ lex ॱংͳͲ࣍਺Λอͨͳ͍ॱংͰ͸ٯޮՌ sugar strategy Ծ૝తͳ੪࣍Խ࣍਺͕࠷খͷ෺ΛબͿ 13೥5݄4೔౔༵೔

Slide 215

Slide 215 text

selection strategy normal strategy ઌ಄߲ͷ LCM ͕ৗʹ࠷খʹͳΔ΋ͷ lex ॱংͳͲ࣍਺Λอͨͳ͍ॱংͰ͸ٯޮՌ sugar strategy Ծ૝తͳ੪࣍Խ࣍਺͕࠷খͷ෺ΛબͿ ͍ͣΕ΋ಉ཰ҰҐ͕ग़ͨΒૣ͘ग़ͯདྷͨํΛબͿ 13೥5݄4೔౔༵೔

Slide 216

Slide 216 text

selection strategy normal strategy ઌ಄߲ͷ LCM ͕ৗʹ࠷খʹͳΔ΋ͷ lex ॱংͳͲ࣍਺Λอͨͳ͍ॱংͰ͸ٯޮՌ sugar strategy Ծ૝తͳ੪࣍Խ࣍਺͕࠷খͷ෺ΛબͿ ͍ͣΕ΋ಉ཰ҰҐ͕ग़ͨΒૣ͘ग़ͯདྷͨํΛબͿ ͜ͷ৚݅Λൈ͔͢ͱڪ͘͠஗͘ͳΔ…… 13೥5݄4೔౔༵೔

Slide 217

Slide 217 text

੪࣍Խ࣍਺ 13೥5݄4೔౔༵೔

Slide 218

Slide 218 text

੪࣍Խ࣍਺ ੪࣍ࣜʢ֤୯߲ࣜͷશ࣍਺͕౳͍͠ଟ߲ࣜʣΛੜ੒ݩͱ͢ΔΠ σΞϧͷܭࢉ͸ܦݧతʹ଎͍ 13೥5݄4೔౔༵೔

Slide 219

Slide 219 text

੪࣍Խ࣍਺ ੪࣍ࣜʢ֤୯߲ࣜͷશ࣍਺͕౳͍͠ଟ߲ࣜʣΛੜ੒ݩͱ͢ΔΠ σΞϧͷܭࢉ͸ܦݧతʹ଎͍ ༨෼ͳม਺Ͱੜ੒ݩΛ੪࣍Խ͔ͯ͠Βܭࢉ͢Δͱ͍͏ώϡʔ ϦεςΟΫε͕஌ΒΕ͍ͯΔ 13೥5݄4೔౔༵೔

Slide 220

Slide 220 text

੪࣍Խ࣍਺ ੪࣍ࣜʢ֤୯߲ࣜͷશ࣍਺͕౳͍͠ଟ߲ࣜʣΛੜ੒ݩͱ͢ΔΠ σΞϧͷܭࢉ͸ܦݧతʹ଎͍ ༨෼ͳม਺Ͱੜ੒ݩΛ੪࣍Խ͔ͯ͠Βܭࢉ͢Δͱ͍͏ώϡʔ ϦεςΟΫε͕஌ΒΕ͍ͯΔ ੪࣍Խͷྫɿxy + 2x + y3 + 3  ⇒  xyz + 2xz2 + y3 + 3z3 13೥5݄4೔౔༵೔

Slide 221

Slide 221 text

੪࣍Խ࣍਺ ੪࣍ࣜʢ֤୯߲ࣜͷશ࣍਺͕౳͍͠ଟ߲ࣜʣΛੜ੒ݩͱ͢ΔΠ σΞϧͷܭࢉ͸ܦݧతʹ଎͍ ༨෼ͳม਺Ͱੜ੒ݩΛ੪࣍Խ͔ͯ͠Βܭࢉ͢Δͱ͍͏ώϡʔ ϦεςΟΫε͕஌ΒΕ͍ͯΔ ੪࣍Խͷྫɿxy + 2x + y3 + 3  ⇒  xyz + 2xz2 + y3 + 3z3 ໰୊఺ɿಘΒΕͨجఈ͔Β༨෼ͳม਺Λফڈͯ͠΋ Gröbner جఈʹͳΔͱ͸ݶΒͳ͍ 13೥5݄4೔౔༵೔

Slide 222

Slide 222 text

੪࣍Խ࣍਺ ੪࣍ࣜʢ֤୯߲ࣜͷશ࣍਺͕౳͍͠ଟ߲ࣜʣΛੜ੒ݩͱ͢ΔΠ σΞϧͷܭࢉ͸ܦݧతʹ଎͍ ༨෼ͳม਺Ͱੜ੒ݩΛ੪࣍Խ͔ͯ͠Βܭࢉ͢Δͱ͍͏ώϡʔ ϦεςΟΫε͕஌ΒΕ͍ͯΔ ੪࣍Խͷྫɿxy + 2x + y3 + 3  ⇒  xyz + 2xz2 + y3 + 3z3 ໰୊఺ɿಘΒΕͨجఈ͔Β༨෼ͳม਺Λফڈͯ͠΋ Gröbner جఈʹͳΔͱ͸ݶΒͳ͍ ੪࣍Խͯ͠ಘΒΕͨݩʹରͯ͠΋͏Ұ౓ Buchberger Λ࢖͏͜ͱʹͳΔʢͦΕͰ΋ଟগ͸଎͘ͳΔ৔߹͕ ͋ΔΒ͍͠ʣ 13೥5݄4೔౔༵೔

Slide 223

Slide 223 text

sugar strategy 13೥5݄4೔౔༵೔

Slide 224

Slide 224 text

sugar strategy ී௨ʹ Buchberger Λܭࢉ͢Δ͕ɺ(i, j) Λબ ୒͢Δͱ͖͚ͩԾ૝తͳ੪࣍ԽΛߦ͍ɺͦͷ ࣍਺࠷খͷ΋ͷΛબͿ 13೥5݄4೔౔༵೔

Slide 225

Slide 225 text

sugar strategy ී௨ʹ Buchberger Λܭࢉ͢Δ͕ɺ(i, j) Λબ ୒͢Δͱ͖͚ͩԾ૝తͳ੪࣍ԽΛߦ͍ɺͦͷ ࣍਺࠷খͷ΋ͷΛબͿ ͜ͷԾ૝తͳ࣍਺ͷ͜ͱΛ sugar ͱ͍͏ 13೥5݄4೔౔༵೔

Slide 226

Slide 226 text

sugar ଟ߲ࣜ (fi , fj ) ͷ sugar Λ࣍ͷΑ͏ʹఆΊΔɻ 13೥5݄4೔౔༵೔

Slide 227

Slide 227 text

sugar ଟ߲ࣜ (fi , fj ) ͷ sugar Λ࣍ͷΑ͏ʹఆΊΔɻ Sfᵢ  = deg(fi ), Sfⱼ  = deg(fj ) 13೥5݄4೔౔༵೔

Slide 228

Slide 228 text

sugar ଟ߲ࣜ (fi , fj ) ͷ sugar Λ࣍ͷΑ͏ʹఆΊΔɻ Sfᵢ  = deg(fi ), Sfⱼ  = deg(fj ) Sf ɿgiven Ͱ t ͕୯߲ࣜͳΒ Stf  = deg(t) + Sf 13೥5݄4೔౔༵೔

Slide 229

Slide 229 text

sugar ଟ߲ࣜ (fi , fj ) ͷ sugar Λ࣍ͷΑ͏ʹఆΊΔɻ Sfᵢ  = deg(fi ), Sfⱼ  = deg(fj ) Sf ɿgiven Ͱ t ͕୯߲ࣜͳΒ Stf  = deg(t) + Sf f = g + h ͷ࣌ɺSf  = max(Sg , Sf ) 13೥5݄4೔౔༵೔

Slide 230

Slide 230 text

sugar ଟ߲ࣜ (fi , fj ) ͷ sugar Λ࣍ͷΑ͏ʹఆΊΔɻ Sfᵢ  = deg(fi ), Sfⱼ  = deg(fj ) Sf ɿgiven Ͱ t ͕୯߲ࣜͳΒ Stf  = deg(t) + Sf f = g + h ͷ࣌ɺSf  = max(Sg , Sf ) (fi , fj ) ͷ sugar ͸ɺ্ʹैͬͯܭࢉͨ͠ S-ଟ ߲ࣜͷ sugar ͱ͢Δɻ 13೥5݄4೔౔༵೔

Slide 231

Slide 231 text

࣮ࡍͷ࣮૷ 13೥5݄4೔౔༵೔

Slide 232

Slide 232 text

࣮ࡍͷ࣮૷ ͓͋ͭΒ͑޲͖ʹ༏ઌ౓ΩϡʔΛ࢖͍ͬͯͨ 13೥5݄4೔౔༵೔

Slide 233

Slide 233 text

࣮ࡍͷ࣮૷ ͓͋ͭΒ͑޲͖ʹ༏ઌ౓ΩϡʔΛ࢖͍ͬͯͨ “selection strategy = ༏ઌ౓ͷܭࢉํ๏” ͱͯ͠ந৅Խग़དྷΔʂ 13೥5݄4೔౔༵೔

Slide 234

Slide 234 text

࣮ࡍͷ࣮૷ ͓͋ͭΒ͑޲͖ʹ༏ઌ౓ΩϡʔΛ࢖͍ͬͯͨ “selection strategy = ༏ઌ౓ͷܭࢉํ๏” ͱͯ͠ந৅Խग़དྷΔʂ double sugar ͱ͍͏ख๏͸͜Ε͚ͩͰ͸ແཧ ʢͰ΋ͦ͜·ͰޮՌ͕ͳ͍Β͍͠ͷͰແࢹʣ 13೥5݄4೔౔༵೔

Slide 235

Slide 235 text

࣮ࡍͷ࣮૷ ͓͋ͭΒ͑޲͖ʹ༏ઌ౓ΩϡʔΛ࢖͍ͬͯͨ “selection strategy = ༏ઌ౓ͷܭࢉํ๏” ͱͯ͠ந৅Խग़དྷΔʂ double sugar ͱ͍͏ख๏͸͜Ε͚ͩͰ͸ແཧ ʢͰ΋ͦ͜·ͰޮՌ͕ͳ͍Β͍͠ͷͰແࢹʣ (i, j) Λอଘ͢Δ࣌ʹॏΈ΋อଘ͓ͯ͘͠ 13೥5݄4೔౔༵೔

Slide 236

Slide 236 text

࣮૷ syzygyBuchbergerWithStrategy strategy ideal = runST $ do let gens = zip [1..] ideal bases ← newSTRef { Entry LM(f) f | (_, f) ← gens } pairs ← newSTRef { Entry (calcWeight strategy f g, j) (f, g) | ((i, f), (j, g)) ← combinations ideal } len ← newSTRef $ length ideal whileM_ (not . null <$> readSTRef pairs) $ do Just (Entry _ (f, g), rest) ← viewMin <$> readSTRef pairs -- தུ when (s ≠ zero) $ do pairs += { Entry (calcWeight strategy q s, j) (q, s) | Entry _ q ← qs | j ← [len0 + 1 ..] } bases %= insert (Entry LM(s) s) len *= 2 map payload . toList <$> readSTRef bases ॏΈΛ௥Ճ͢Δ͚ͩͰ࣮૷ग़དྷͯ͠·ͬͨ…… 13೥5݄4೔౔༵೔

Slide 237

Slide 237 text

Benchmark syzygy sugar 13೥5݄4೔౔༵೔

Slide 238

Slide 238 text

Benchmark lex01 grlex01 grevlex01 lex03 grlex03 grevlex03 0ms 0.15ms 0.3ms 0.45ms 0.6ms grlex02 grevlex02 16ms 17ms 18ms 19ms 20ms grlex04 grevlex04 58μs 58.1μs 58.2μs58.3μs58.4μs syzygy sugar 13೥5݄4೔౔༵೔

Slide 239

Slide 239 text

Benchmarkʢ࿦จ൛ʣ syzygy sugar I1  = ⟨35y4 − 10xy2 − 210y2z + 3x2 + 30xz − 105z2 + 140yt − 21u,  5xy3 − 140y3z − 3x2y + 45xyz − 420yz2 + 210y2t − 25xt + 70zt + 126yu⟩ I2  = ⟨x + y + z + w, xy + yz + zw + wx, xyz + yzw + zwx + wxy, xyzw − 1⟩ɹ I3  = ⟨x31 − x6 − x − y, x8 − z, x10 − t⟩ 13೥5݄4೔౔༵೔

Slide 240

Slide 240 text

Benchmarkʢ࿦จ൛ʣ grevlex01 lex02 grevlex02 0ms 10ms 20ms 30ms 40ms grevlex03 0ms 700ms1400ms2100ms 2800ms syzygy sugar lex01 0ms 0.5ms 1ms 1.5ms 2ms I1  = ⟨35y4 − 10xy2 − 210y2z + 3x2 + 30xz − 105z2 + 140yt − 21u,  5xy3 − 140y3z − 3x2y + 45xyz − 420yz2 + 210y2t − 25xt + 70zt + 126yu⟩ I2  = ⟨x + y + z + w, xy + yz + zw + wx, xyz + yzw + zwx + wxy, xyzw − 1⟩ɹ I3  = ⟨x31 − x6 − x − y, x8 − z, x10 − t⟩ 13೥5݄4೔౔༵೔

Slide 241

Slide 241 text

ߟ࡯ 13೥5݄4೔౔༵೔

Slide 242

Slide 242 text

ߟ࡯ ࿦จʹग़ͯ͘Δྫʹ͍ͭͯ͸ sugar ͕଎͍ 13೥5݄4೔౔༵೔

Slide 243

Slide 243 text

ߟ࡯ ࿦จʹग़ͯ͘Δྫʹ͍ͭͯ͸ sugar ͕଎͍ ͦΕͰ΋ڻ͘΄Ͳ଎͍Α͏ʹ͸ݟ͑ͳ͍ 13೥5݄4೔౔༵೔

Slide 244

Slide 244 text

ߟ࡯ ࿦จʹग़ͯ͘Δྫʹ͍ͭͯ͸ sugar ͕଎͍ ͦΕͰ΋ڻ͘΄Ͳ଎͍Α͏ʹ͸ݟ͑ͳ͍ ͪ͜ΒͰબΜͩσʔληοτʹؔͯ͠͸ sugar ͷ΄͏͕஗͍৔߹΋͋Δʁ 13೥5݄4೔౔༵೔

Slide 245

Slide 245 text

ߟ࡯ ࿦จʹग़ͯ͘Δྫʹ͍ͭͯ͸ sugar ͕଎͍ ͦΕͰ΋ڻ͘΄Ͳ଎͍Α͏ʹ͸ݟ͑ͳ͍ ͪ͜ΒͰબΜͩσʔληοτʹؔͯ͠͸ sugar ͷ΄͏͕஗͍৔߹΋͋Δʁ ௥੻ௐࠪ༧ఆ 13೥5݄4೔౔༵೔

Slide 246

Slide 246 text

͜͜·ͰͰ࣭໰ʁ 13೥5݄4೔౔༵೔

Slide 247

Slide 247 text

Table of Contents Gröbner جఈͷ؆୯ͳಋೖ Gröbner جఈͷܭࢉ๏ Buchberger ΞϧΰϦζϜ ࠷దԽख๏ɿsyzygy, sugar strategy Haskell ͷܕϨϕϧϓϩάϥϛϯάͷݱࡏ 13೥5݄4೔౔༵೔

Slide 248

Slide 248 text

Haskell ͷ ܕϨϕϧϓϩάϥϛϯάͷݱࡏ 13೥5݄4೔౔༵೔

Slide 249

Slide 249 text

Haskell ͷ ܕϨϕϧϓϩάϥϛϯάͷݱࡏ computational-algebra Ͱ͸ܕػೳΛ;ΜͩΜʹ ར༻͍ͯ͠Δ 13೥5݄4೔౔༵೔

Slide 250

Slide 250 text

Haskell ͷ ܕϨϕϧϓϩάϥϛϯάͷݱࡏ computational-algebra Ͱ͸ܕػೳΛ;ΜͩΜʹ ར༻͍ͯ͠Δ ม਺ͷ਺ɺମͷछྨɺ୯߲ࣜॱংɺબ୒ઓུ… 13೥5݄4೔౔༵೔

Slide 251

Slide 251 text

Haskell ͷ ܕϨϕϧϓϩάϥϛϯάͷݱࡏ computational-algebra Ͱ͸ܕػೳΛ;ΜͩΜʹ ར༻͍ͯ͠Δ ม਺ͷ਺ɺମͷछྨɺ୯߲ࣜॱংɺબ୒ઓུ… શͯܕʹύϥϝτϥΠζ 13೥5݄4೔౔༵೔

Slide 252

Slide 252 text

Haskell ͷ ܕϨϕϧϓϩάϥϛϯάͷݱࡏ computational-algebra Ͱ͸ܕػೳΛ;ΜͩΜʹ ར༻͍ͯ͠Δ ม਺ͷ਺ɺମͷछྨɺ୯߲ࣜॱংɺબ୒ઓུ… શͯܕʹύϥϝτϥΠζ ґଘܕͱূ໌ͷΦϯύϨʔυ 13೥5݄4೔౔༵೔

Slide 253

Slide 253 text

ґଘܕͱূ໌ͷ ΦϯύϨʔυ 13೥5݄4೔౔༵೔

Slide 254

Slide 254 text

ґଘܕͱূ໌ͷ ΦϯύϨʔυ DataKinds ΍ GADTs ͱ͍֦ͬͨுػೳΛଟ༻ 13೥5݄4೔౔༵೔

Slide 255

Slide 255 text

ґଘܕͱূ໌ͷ ΦϯύϨʔυ DataKinds ΍ GADTs ͱ͍֦ͬͨுػೳΛଟ༻ ୯߲ࣜ͸ࢦ਺ϕΫτϧͰදݱ͍ͯ͠ΔͷͰɺม਺ͷ਺ͷ۠ ผΛ͔ͬ͠Γ͚͍ͭͨ 13೥5݄4೔౔༵೔

Slide 256

Slide 256 text

ґଘܕͱূ໌ͷ ΦϯύϨʔυ DataKinds ΍ GADTs ͱ͍֦ͬͨுػೳΛଟ༻ ୯߲ࣜ͸ࢦ਺ϕΫτϧͰදݱ͍ͯ͠ΔͷͰɺม਺ͷ਺ͷ۠ ผΛ͔ͬ͠Γ͚͍ͭͨ ௕͖ͭ͞ϕΫτϧʂ 13೥5݄4೔౔༵೔

Slide 257

Slide 257 text

ґଘܕͱূ໌ͷ ΦϯύϨʔυ DataKinds ΍ GADTs ͱ͍֦ͬͨுػೳΛଟ༻ ୯߲ࣜ͸ࢦ਺ϕΫτϧͰදݱ͍ͯ͠ΔͷͰɺม਺ͷ਺ͷ۠ ผΛ͔ͬ͠Γ͚͍ͭͨ ௕͖ͭ͞ϕΫτϧʂ ڥք৚݅΋ূ໌͠Α͏ʂ 13೥5݄4೔౔༵೔

Slide 258

Slide 258 text

ґଘܕͱূ໌ͷ ΦϯύϨʔυ DataKinds ΍ GADTs ͱ͍֦ͬͨுػೳΛଟ༻ ୯߲ࣜ͸ࢦ਺ϕΫτϧͰදݱ͍ͯ͠ΔͷͰɺม਺ͷ਺ͷ۠ ผΛ͔ͬ͠Γ͚͍ͭͨ ௕͖ͭ͞ϕΫτϧʂ ڥք৚݅΋ূ໌͠Α͏ʂ ͜Ε͚ͩͰ΋͔ͳΓେมͳͷͰɺʮΞϧΰϦζϜͷ ଥ౰ੑʯͱ͔͸͍ࣔͯ͠ͳ͍Ͱ͢ʢࢮ͵ʣ 13೥5݄4೔౔༵೔

Slide 259

Slide 259 text

ৄ͘͠͸ίʔυࢀর -- | N-ary Monomial. IntMap contains degrees for each xi. type Monomial (n :: Nat) = Vector Int n -- | Monomial with monomial order. newtype OrderedMonomial (ord :: ⋆) n = OrderedMonomial { getMonomial :: Monomial n } deriving instance (Eq (Monomial n)) ⇒  Eq (OrderedMonomial ordering n) type MonomialOrder = ∀n. Monomial n → Monomial n → Ordering -- | Class to lookup ordering from its (type-level) name. class IsOrder (ordering :: ⋆) where cmpMonomial :: Proxy ordering → MonomialOrder -- | Class for Monomial orders. class IsOrder name ⇒ IsMonomialOrder name where 13೥5݄4೔౔༵೔

Slide 260

Slide 260 text

ৄ͘͠͸ίʔυࢀর data Lex = Lex data Revlex = Revlex data Grevlex = Grevlex lex :: MonomialOrder lex Nil Nil = EQ lex (x :- xs) (y :- ys) = x `compare` y <> xs `lex` ys lex _ _ = error "cannot happen" revlex :: Monomial n → Monomial n → Ordering revlex (x :- xs) (y :- ys) = xs `revlex` ys <> y `compare` x revlex Nil Nil = EQ revlex _ _ = error "cannot happen!" graded :: (Monomial n → Monomial n → Ordering) → (Monomial n → Monomial n → Ordering) graded cmp xs ys = comparing totalDegree xs ys <> cmp xs ys instance IsOrder Grevlex where cmpMonomial _ = graded revlex instance IsOrder Revlex where cmpMonomial _ = revlex 13೥5݄4೔౔༵೔

Slide 261

Slide 261 text

cannot happen! 13೥5݄4೔౔༵೔

Slide 262

Slide 262 text

cannot happen! ܕϨϕϧͰېࢭ͞ΕΔύλʔϯ 13೥5݄4೔౔༵೔

Slide 263

Slide 263 text

cannot happen! ܕϨϕϧͰېࢭ͞ΕΔύλʔϯ ͔͠͠ɺ -fwarn-incomplete-pattern Λࢦఆ ͢Δͱʮ͜ͷύλʔϯൈ͚ͯΔΑʂʯ 13೥5݄4೔౔༵೔

Slide 264

Slide 264 text

cannot happen! ܕϨϕϧͰېࢭ͞ΕΔύλʔϯ ͔͠͠ɺ -fwarn-incomplete-pattern Λࢦఆ ͢Δͱʮ͜ͷύλʔϯൈ͚ͯΔΑʂʯ ͦͷύλʔϯΛॻ͘ͱܕΤϥʔͰ஄͔ΕΔ 13೥5݄4೔౔༵೔

Slide 265

Slide 265 text

cannot happen! ܕϨϕϧͰېࢭ͞ΕΔύλʔϯ ͔͠͠ɺ -fwarn-incomplete-pattern Λࢦఆ ͢Δͱʮ͜ͷύλʔϯൈ͚ͯΔΑʂʯ ͦͷύλʔϯΛॻ͘ͱܕΤϥʔͰ஄͔ΕΔ ͔ͩΒ wildcard pattern 13೥5݄4೔౔༵೔

Slide 266

Slide 266 text

ΠσΞϧ hack data Ideal r = ∀n. Ideal (Vector r n) instance Eq r ⇒ Eq (Ideal r) where (≡) = (≡) `on` generators generators :: Ideal r → [r] generators (Ideal is) = toList is addToIdeal :: r → Ideal r → Ideal r addToIdeal i (Ideal is) = Ideal (i :- is) toIdeal :: NoetherianRing r ⇒ [r] → Ideal r toIdeal = foldr addToIdeal (Ideal Nil) 13೥5݄4೔౔༵೔

Slide 267

Slide 267 text

ΠσΞϧ hack data Ideal r = ∀n. Ideal (Vector r n) instance Eq r ⇒ Eq (Ideal r) where (≡) = (≡) `on` generators generators :: Ideal r → [r] generators (Ideal is) = toList is addToIdeal :: r → Ideal r → Ideal r addToIdeal i (Ideal is) = Ideal (i :- is) toIdeal :: NoetherianRing r ⇒ [r] → Ideal r toIdeal = foldr addToIdeal (Ideal Nil) ΠσΞϧ͸Ϧετ……Ͱ͸ͳ͍ʂ 13೥5݄4೔౔༵೔

Slide 268

Slide 268 text

ΠσΞϧ hack data Ideal r = ∀n. Ideal (Vector r n) instance Eq r ⇒ Eq (Ideal r) where (≡) = (≡) `on` generators generators :: Ideal r → [r] generators (Ideal is) = toList is addToIdeal :: r → Ideal r → Ideal r addToIdeal i (Ideal is) = Ideal (i :- is) toIdeal :: NoetherianRing r ⇒ [r] → Ideal r toIdeal = foldr addToIdeal (Ideal Nil) ΠσΞϧ͸Ϧετ……Ͱ͸ͳ͍ʂ ඇৗʹਂԕͳΔཧ༝ʹΑΓଘࡏྔԽ͞Εͨ sized-vector 13೥5݄4೔౔༵೔

Slide 269

Slide 269 text

ΠσΞϧ hack data Ideal r = ∀n. Ideal (Vector r n) instance Eq r ⇒ Eq (Ideal r) where (≡) = (≡) `on` generators generators :: Ideal r → [r] generators (Ideal is) = toList is addToIdeal :: r → Ideal r → Ideal r addToIdeal i (Ideal is) = Ideal (i :- is) toIdeal :: NoetherianRing r ⇒ [r] → Ideal r toIdeal = foldr addToIdeal (Ideal Nil) ΠσΞϧ͸Ϧετ……Ͱ͸ͳ͍ʂ ඇৗʹਂԕͳΔཧ༝ʹΑΓଘࡏྔԽ͞Εͨ sized-vector ফڈΠσΞϧͷܭࢉͷ࣌ʹ҉໧ཪʹܕΛ߹ΘͤΔҝ 13೥5݄4೔౔༵೔

Slide 270

Slide 270 text

⁋᧒Λ߹Θͤʹ༻ҙ͞Εͨ data Monomorphic k = ∀a. Monomorphic (k a) -- | A types which have the monomorphic representation. class Monomorphicable k where -- | Monomorphic representation type MonomorphicRep k :: ⋆ -- | Promote the monomorphic value to the polymophic one. promote :: MonomorphicRep k → Monomorphic k -- | Demote the polymorphic value to the monomorphic representation. demote :: Monomorphic k → MonomorphicRep k -- | Convinience function to demote polymorphic types -- into monomorphic one directly. demote' :: Monomorphicable k ⇒ k a → MonomorphicRep k demote' = demote ∘ Monomorphic -- | Demote polymorphic nested types directly into -- monomorphic representation. demoteComposed :: Monomorphicable (f :∘: g) ⇒ f (g a) → MonomorphicRep (f :∘: g) demoteComposed = demote ∘ Monomorphic ∘ Comp 13೥5݄4೔౔༵೔

Slide 271

Slide 271 text

੍໿෇͚ͯΔײ͡ thEliminationIdeal :: ( IsMonomialOrder ord, Field k, IsPolynomial k m , IsPolynomial k (m :-: n) , (n ≼ m) ~ True) ⇒ SNat n → Ideal (OrderedPolynomial k ord m) → Ideal (OrderedPolynomial k ord (m ⊖ n)) thEliminationIdeal n = case singInstance n of SingInstance → mapIdeal (changeOrderProxy Proxy) ∘ thEliminationIdealWith (weightedEliminationOrder n) n 13೥5݄4೔౔༵೔

Slide 272

Slide 272 text

੍໿෇͚ͯΔײ͡ thEliminationIdeal :: ( IsMonomialOrder ord, Field k, IsPolynomial k m , IsPolynomial k (m :-: n) , (n ≼ m) ~ True) ⇒ SNat n → Ideal (OrderedPolynomial k ord m) → Ideal (OrderedPolynomial k ord (m ⊖ n)) thEliminationIdeal n = case singInstance n of SingInstance → mapIdeal (changeOrderProxy Proxy) ∘ thEliminationIdealWith (weightedEliminationOrder n) n Gröbner جఈΛ࢖͏ͱɺ࿈ཱํఔ͔ࣜΒจࣈΛফ ڈग़དྷΔʢ͍͢͝ʂʣ 13೥5݄4೔౔༵೔

Slide 273

Slide 273 text

੍໿෇͚ͯΔײ͡ thEliminationIdeal :: ( IsMonomialOrder ord, Field k, IsPolynomial k m , IsPolynomial k (m :-: n) , (n ≼ m) ~ True) ⇒ SNat n → Ideal (OrderedPolynomial k ord m) → Ideal (OrderedPolynomial k ord (m ⊖ n)) thEliminationIdeal n = case singInstance n of SingInstance → mapIdeal (changeOrderProxy Proxy) ∘ thEliminationIdealWith (weightedEliminationOrder n) n Gröbner جఈΛ࢖͏ͱɺ࿈ཱํఔ͔ࣜΒจࣈΛফ ڈग़དྷΔʢ͍͢͝ʂʣ n จࣈ໨·ͰΛফڈ͍ͨ͠㱺 ม਺͸࠷௿Ͱ΋ n ݸ 13೥5݄4೔౔༵೔

Slide 274

Slide 274 text

ূ໌ͯ͠Δײ͡ intersection :: ∀ r k n ord. ( IsMonomialOrder ord, Field r, IsPolynomial r k, IsPolynomial r n , IsPolynomial r (k ⊕ n) ) ⇒ Vector (Ideal (OrderedPolynomial r ord n)) k → Ideal (OrderedPolynomial r ord n) intersection Nil = Ideal $ singletonV one intersection idsv@(_ :- _) = let sk = sLengthV idsv sn = sing :: SNat n ts = genVars (sk %+ sn) tis = zipWith (λ ideal t → mapIdeal ((t *) . shiftR sk) ideal) (toList idsv) ts j = foldr appendIdeal (principalIdeal (one - foldr (+) zero ts)) tis in case plusMinusEqR sn sk of Eql → case propToBoolLeq (plusLeqL sk sn) of LeqTrueInstance → thEliminationIdeal sk j 13೥5݄4೔౔༵೔

Slide 275

Slide 275 text

ࠓؾ෇͍͚ͨͲ શ෦આ໌͢Δͷແཧͩ 13೥5݄4೔౔༵೔

Slide 276

Slide 276 text

΋͏ͩΊͩ 13೥5݄4೔౔༵೔

Slide 277

Slide 277 text

ৄ͘͠͸௚઀ั·͑ͯ 㘤͍͍ͯͩ͘͞ 13೥5݄4೔౔༵೔

Slide 278

Slide 278 text

࠷ޙʹ͍͍͍ͨ͜ͱ 13೥5݄4೔౔༵೔

Slide 279

Slide 279 text

࠷ޙʹ͍͍͍ͨ͜ͱ ؼೲ๏͸ίετ͕͔͔Δ 13೥5݄4೔౔༵೔

Slide 280

Slide 280 text

࠷ޙʹ͍͍͍ͨ͜ͱ ؼೲ๏͸ίετ͕͔͔Δ ূ໌͸࣮ߦ࣌ʹ஗Ԇ͞ΕΔ͔Βλμ͡Όͳ͍ 13೥5݄4೔౔༵೔

Slide 281

Slide 281 text

࠷ޙʹ͍͍͍ͨ͜ͱ ؼೲ๏͸ίετ͕͔͔Δ ূ໌͸࣮ߦ࣌ʹ஗Ԇ͞ΕΔ͔Βλμ͡Όͳ͍ γϯάϧτϯ΋ίετ͕͔͔Δ 13೥5݄4೔౔༵೔

Slide 282

Slide 282 text

࠷ޙʹ͍͍͍ͨ͜ͱ ؼೲ๏͸ίετ͕͔͔Δ ূ໌͸࣮ߦ࣌ʹ஗Ԇ͞ΕΔ͔Βλμ͡Όͳ͍ γϯάϧτϯ΋ίετ͕͔͔Δ Haskell ͰͷґଘܕͰ࣮༻తͳΞϓϦॻ͘ͷ͸Ή͍ͣ 13೥5݄4೔౔༵೔

Slide 283

Slide 283 text

࠷ޙʹ͍͍͍ͨ͜ͱ ؼೲ๏͸ίετ͕͔͔Δ ূ໌͸࣮ߦ࣌ʹ஗Ԇ͞ΕΔ͔Βλμ͡Όͳ͍ γϯάϧτϯ΋ίετ͕͔͔Δ Haskell ͰͷґଘܕͰ࣮༻తͳΞϓϦॻ͘ͷ͸Ή͍ͣ HP ඪ४ఴ෇ͷ GHC 7.4.* ͸Ϋι 13೥5݄4೔౔༵೔

Slide 284

Slide 284 text

࠷ޙʹ͍͍͍ͨ͜ͱ ؼೲ๏͸ίετ͕͔͔Δ ূ໌͸࣮ߦ࣌ʹ஗Ԇ͞ΕΔ͔Βλμ͡Όͳ͍ γϯάϧτϯ΋ίετ͕͔͔Δ Haskell ͰͷґଘܕͰ࣮༻తͳΞϓϦॻ͘ͷ͸Ή͍ͣ HP ඪ४ఴ෇ͷ GHC 7.4.* ͸Ϋι ίϯύΠϧ͢Δ౓ʹ rm *.hi *.o ͠ͳ͍ͱܕػೳ͕࢖ ͑ͳ͍ 13೥5݄4೔౔༵೔

Slide 285

Slide 285 text

࠷ޙʹ͍͍͍ͨ͜ͱ ؼೲ๏͸ίετ͕͔͔Δ ূ໌͸࣮ߦ࣌ʹ஗Ԇ͞ΕΔ͔Βλμ͡Όͳ͍ γϯάϧτϯ΋ίετ͕͔͔Δ Haskell ͰͷґଘܕͰ࣮༻తͳΞϓϦॻ͘ͷ͸Ή͍ͣ HP ඪ४ఴ෇ͷ GHC 7.4.* ͸Ϋι ίϯύΠϧ͢Δ౓ʹ rm *.hi *.o ͠ͳ͍ͱܕػೳ͕࢖ ͑ͳ͍ छଟ૬ͳ֎෦ϥΠϒϥϦͱϦϯΫग़དྷͳ͍ 13೥5݄4೔౔༵೔

Slide 286

Slide 286 text

࠷ޙʹ͍͍͍ͨ͜ͱ ؼೲ๏͸ίετ͕͔͔Δ ূ໌͸࣮ߦ࣌ʹ஗Ԇ͞ΕΔ͔Βλμ͡Όͳ͍ γϯάϧτϯ΋ίετ͕͔͔Δ Haskell ͰͷґଘܕͰ࣮༻తͳΞϓϦॻ͘ͷ͸Ή͍ͣ HP ඪ४ఴ෇ͷ GHC 7.4.* ͸Ϋι ίϯύΠϧ͢Δ౓ʹ rm *.hi *.o ͠ͳ͍ͱܕػೳ͕࢖ ͑ͳ͍ छଟ૬ͳ֎෦ϥΠϒϥϦͱϦϯΫग़དྷͳ͍ Ҋ֎ܕͷ⁋᧒͸͋͏ 13೥5݄4೔౔༵೔

Slide 287

Slide 287 text

·ͱΊ 13೥5݄4೔౔༵೔

Slide 288

Slide 288 text

·ͱΊ GröbnerجఈΛ࢖͏ͱ୅਺ͷܭࢉ͕ग़དྷΔΑ͏ʹ 13೥5݄4೔౔༵೔

Slide 289

Slide 289 text

·ͱΊ GröbnerجఈΛ࢖͏ͱ୅਺ͷܭࢉ͕ग़དྷΔΑ͏ʹ ΠσΞϧ঎ͱ͔ڞ௨෦෼ͱ͔ 13೥5݄4೔౔༵೔

Slide 290

Slide 290 text

·ͱΊ GröbnerجఈΛ࢖͏ͱ୅਺ͷܭࢉ͕ग़དྷΔΑ͏ʹ ΠσΞϧ঎ͱ͔ڞ௨෦෼ͱ͔ จࣈফڈɺ࿈ཱํఔࣜͷղ 13೥5݄4೔౔༵೔

Slide 291

Slide 291 text

·ͱΊ GröbnerجఈΛ࢖͏ͱ୅਺ͷܭࢉ͕ग़དྷΔΑ͏ʹ ΠσΞϧ঎ͱ͔ڞ௨෦෼ͱ͔ จࣈফڈɺ࿈ཱํఔࣜͷղ ߴ଎Խख๏͕ز͔ͭ͋ͬͯɺ੾᛭ୖຏ 13೥5݄4೔౔༵೔

Slide 292

Slide 292 text

·ͱΊ GröbnerجఈΛ࢖͏ͱ୅਺ͷܭࢉ͕ग़དྷΔΑ͏ʹ ΠσΞϧ঎ͱ͔ڞ௨෦෼ͱ͔ จࣈফڈɺ࿈ཱํఔࣜͷղ ߴ଎Խख๏͕ز͔ͭ͋ͬͯɺ੾᛭ୖຏ Haskell ܕγεςϜͷࠓޙʹظ଴ 13೥5݄4೔౔༵೔

Slide 293

Slide 293 text

ࢀߟจݙ D. Cox, J. Little and D. O’Shea. Ideals, Varieties and Algorithms. UTM. Springer. A. Giovini, T. Moran, G. Niesi, L. Robbiano and C. Traverse. "One sugar cube, please" OR Selection strategies in the Buchberger algorithm. ᑸݩ. άϨϒφʔجఈ͸໘ന͍ʂ. ߨٛ࿥. 2012೥౓ૣҴాେֶجװཧ޻ֶ෦਺ֶՊ୅਺ֶC1 ߨٛࢿྉ 13೥5݄4೔౔༵೔

Slide 294

Slide 294 text

Any Questions? 13೥5݄4೔౔༵೔

Slide 295

Slide 295 text

ޚਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ 13೥5݄4೔౔༵೔