Uploaded by Gurux13

diplom Cepeleva

advertisement
Ìîñêîâñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò
èìåíè Ì.Â. Ëîìîíîñîâà
Ôàêóëüòåò âû÷èñëèòåëüíîé ìàòåìàòèêè è êèáåðíåòèêè
Êàôåäðà ìàòåìàòè÷åñêîé êèáåðíåòèêè
ÄÈÏËÎÌÍÀß ÐÀÁÎÒÀ ÑÒÓÄÅÍÒÊÈ 519 ÃÐÓÏÏÛ
Öåïåëåâîé Àííû Âëàäèìèðîâíû
Òåìà äèïëîìíîé ðàáîòû:
¾ÓÒÎ×ÍÅÍÈÅ ÊÎÍÑÒÀÍÒ ÊÀÌÅÐÎÍÀ-ÝÐÄÅØÀ ÄËß ÃÐÓÏÏ
ÏÐÎÑÒÎÃÎ ÏÎÐßÄÊÀ¿
Çàâåäóþùèé êàôåäðîé
Íàó÷íûé ðóêîâîäèòåëü
ìàòåìàòè÷åñêîé êèáåðíåòèêè
ïðîôåññîð, ä.ô.-ì.í.
ïðîôåññîð, ä.ô.-ì.í.
À.À. Ñàïîæåíêî
Â.Á. Àëåêñååâ
Ê çàùèòå äîïóñêàþ
¾
¿
Ê çàùèòå ðåêîìåíäóþ
2010ã.
¾
¿
2010ã.
Ñîäåðæàíèå
Ââåäåíèå
3
1
Íåîáõîäèìûå îïðåäåëåíèÿ è òåîðåìû
4
2
Ïîñòàíîâêà çàäà÷è
5
3
Íèæíèå îöåíêè êîíñòàíò
cα
5
4
Âåðõíèå îöåíêè êîíñòàíò
cα
6
5
Âû÷èñëåíèå
6
σp [t]
14
σp [t]
5.1
Àëãîðèòì âû÷èñëåíèÿ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
Ïîäñ÷åò íåçàâèñèìûõ ìíîæåñòâ â ãðàôå Êýëè
5.3
Îöåíêà ñëîæíîñòè àëãîðèòìà âû÷èñëåíèÿ
5.4
Ïàðàëëåëüíûå âû÷èñëåíèÿ
CA (Cp,t )
14
. . . . . . . . . . . . .
14
. . . . . . . . . . . . . . . . .
15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
σp [t]
Çàêëþ÷åíèå
17
Ïðèëîæåíèå
18
6.1
Ðåçóëüòàòû ðàññ÷åòîâ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
6.2
Ïðîãðàììà
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
Ñïèñîê ëèòåðàòóðû
24
2
Ââåäåíèå
Ìíîæåñòâîì, ñâîáîäíûì îò ñóìì, (ÌÑÑ)
íàçûâàåòñÿ òàêîå ìíîæåñòâî S ,
÷òî S ∩ (S + S) = ∅.
Îáîçíà÷èì s(a, b) - ÷èñëî ÌÑÑ â îòðåçêå [a, b].
Äåòàëüíûå èññëåäîâàíèÿ ìíîæåñòâ, ñâîáîäíûõ îò ñóìì, áûëè èíèöèèðîâàn
íû ãèïîòåçîé Êàìåðîíà-Ýðäåøà, êîòîðàÿ ãëàñèò, ÷òî s(1, n) = O(2 2 ). Àâòîðû
âûñêàçàëè ýòî ïðåäïîëîæåíèå â 1988 ã. è ïîêàçàëè â [1], ÷òî ñóùåñòâóþò òàn
n
êèå êîíñòàíòû c0 , c1 , ÷òî s( n3 , n) ∼ c0 · 2 2 äëÿ ÷åòíûõ n, è s( n3 , n) ∼ c1 · 2 2 äëÿ
íå÷åòíûõ.
Ãèïîòåçà Êàìåðîíà-Ýðäåøà áûëà äîêàçàíà íåçàâèñèìî À.À. Ñàïîæåíêî â
2003 ãîäó ([2]) è Á. Ãðèíîì â 2004 ãîäó ([3]).
Ï. Êàìåðîí è Ï. Ýðäåø ïîëó÷èëè äîâîëüíî ãðóáûå îöåíêè êîíñòàíò c0 , c1 .
Âàæíîñòü è ñëîæíîñòü ýòîé çàäà÷è ïîä÷åðêèâàëàñü, â ÷àñòíîñòè, Í.Àëîíîì,
èçâåñòíûì ñïåöèàëèñòîì â îáëàñòè äèñêðåòíîé ìàòåìàòèêè. Ê.Ã. Îìåëüÿíîâ
ïîëó÷èë áîëåå òî÷íûå âåðõíèå è íèæíèå îöåíêè êîíñòàíò, äàþùèå ïåðâûå
äâà äåñÿòè÷íûõ çíàêà èõ òî÷íîãî çíà÷åíèÿ ([5]).
Áîëåå óçêîé ÿâëÿåòñÿ çàäà÷à íàõîæäåíèÿ ÷èñëà ìíîæåñòâ, ñâîáîäíûõ îò
ñóìì, â ãðóïïàõ. Ýòî ìîæåò áûòü, â ÷àñòíîñòè, ãðóïïà Zp . Èññëåäîâàíèÿ
òàêîãî ðîäà ìîæíî òàêæå íàéòè â ðàáîòå Ê.Ã. Îìåëüÿíîâà [5].
Îáîçíà÷èì: S(G) = {A ⊆ G : A ñâîáîäíî îò ñóìì â G}, ãäå G - àáåëåâà
ãðóïïà.
 2008 ãîäó À.À. Ñàïîæåíêî ïîêàçàë ([4]), ÷òî ñóùåñòâóþò òàêèå êîíñòàíòû cα , α ∈ {−1, 1}, ÷òî äëÿ ëþáîãî ε > 0 è âñåõ äîñòàòî÷íî áîëüøèõ ïðîñòûõ
÷èñåë p âèäà p ≡ α (mod 3) âûïîëíåíî
1≤
|S(Zp )|
c α · p · 2b
(p−2)
3 c
<1+ε
Öåëüþ äàííîé ðàáîòû ñòàâèòñÿ îöåíêà è êîìïüþòåðíûå âû÷èñëåíèÿ
êîíñòàíò cα .
3
1
Íåîáõîäèìûå îïðåäåëåíèÿ è òåîðåìû
Òðîéêà Øóðà
- óïîðÿäî÷åííûé íàáîð (a, b, c), â êîòîðîì a + b = c.
CA (V ) íà ìíîæåñòâå âåðøèí V , ïîðîæäåííûé ìíîæåñòâîì A ãðàô ñ ìíîæåñòâîì âåðøèí V , â êîòîðîì ïàðà {u, v} ÿâëÿåòñÿ ðåáðîì òîãäà,
è òîëüêî òîãäà, êîãäà ñóùåñòâóåò z ∈ A, òàêîå, ÷òî ýëåìåíòû íàáîðà {u, v, z},
âçÿòûå â íåêîòîðîì ïîðÿäêå, îáðàçóþò òðîéêó Øóðà (ýëåìåíòû â òðîéêå
ìîãóò ïîâòîðÿòüñÿ).
Ãðàô Êýëè
Ìíîæåñòâî A âåðøèí ãðàôà G íàçûâàåòñÿ íåçàâèñèìûì, åñëè â G îòñóòñòâóþò ðåáðà, ñîåäèíÿþùèå âåðøèíû èç A.
Ìîùíîñòü ñåìåéñòâà íåçàâèñèìûõ ìíîæåñòâ ãðàôà G îáîçíà÷èì ÷åðåç I(G).
t-öåíòðàëüíûìè ÌÑÑ
íàçûâàþòñÿ ýëåìåíòû ñåìåéñòâà
Sp [t] = {A ∈ S(Zp ) : A ⊆ Pp,t }, Pp,t = [b p3 c − t + 1, b 2p
3 c + t]
Èíòåðåñ ïðåäñòàâëÿþò âåëè÷èíû σp [t] = |Sp [t]| · 2−b
p+1
3 c
.
À èìåííî, ñïðàâåäëèâà òåîðåìà ([4]):
Òåîðåìà 1
(À.À. Ñàïîæåíêî [4])
α ∈ {−1, 1} ñóùåñòâóåò òàêàÿ àáñîëþòíàÿ êîíñòàíòà cα , ÷òî
äëÿ âñÿêîãî ε > 0 ñóùåñòâóþò òàêèå ÷èñëà N è T , ÷òî ïðè âñåõ n > N ,
òàêèõ, ÷òî n ≡ α (mod 3), è ëþáûõ t > T âûïîëíÿþòñÿ íåðàâåíñòâà
Äëÿ ëþáîãî
(1)
cα < σn [t] < cα + ε.
2p
p
2p
Îáîçíà÷èì: Qp,t = [b p3 c − t + 1, b p3 c] ∪ [b 2p
3 c + 1, b 3 c + t], Cp = [b 3 c + 1, b 3 c]
Åñëè A, B ⊂ Zp , òî A ± B = {a ± b : a ∈ A, b ∈ B}, A/2 = {a : a + a ∈ A}1 .
Åñëè A ⊆ Qp,t , òî ∂A = Cp ∩ (A + A) ∪ (A − A) ∪ A/2 .
Àëãîðèòì âû÷èñëåíèé σp [t] îïèðàåòñÿ íà ñëåäóþùóþ ëåììó, äîêàçàííóþ
â [4]:
Ëåììà 1
Ïðè
t < p/6
èìååì
|Sp [t]| =
X
I CA (Cp \ ∂A ).
A⊆Qp,t
1 Ñëîæåíèå
è âû÷èòàíèå áåðóòñÿ ïî ìîäóëþ
p.
4
(2)
Ðåçóëüòàòû ðàññ÷åòîâ ñîãëàñóþòñÿ ñ óòâåðæäåíèåì ëåììû ([4]):
Ëåììà 2
Ïðè
t < p/12
âûïîëíÿåòñÿ ðàâåíñòâî
(3)
σp [t] = σp+3 [t].
Äëÿ ïîëó÷åíèÿ âåðõíèõ îöåíîê êîíñòàíò cα ïîòðåáóþòñÿ ñëåäóþùèå òåîðåìû:
Òåîðåìà 2
(Ê.Ã. Îìåëüÿíîâ [5]) Ïóñòü t, f, n ∈ N, è f < t < n4 . Ïîëîæèì
A = {d n2 e − t, d n2 e − f }, V = [b n2 c + 1, b n2 c + t] ∪ [n − t + 1, n]. Ïóñòü ãðàô
CAm (V ) ïîëó÷åí èç ãðàôà CA (V ) óäàëåíèåì ïðîèçâîëüíûõ m âåðøèí. Òîãäà
√ !t
√ !f m
7
+
3
5
2
5
4
m
√
√
√
|I(CA (V ))| ≤
2 5
3+ 5
3+ 5
Òåîðåìà 3
(Ã.À. Ôðåéìàí [6]) Åñëè ìíîæåñòâî öåëûõ ÷èñåë K òàêîâî, ÷òî
|K + K| ≤ 2|K| − 1 + b,
ãäå
òè÷åñêîé ïðîãðåññèè äëèíû
2
0 ≤ b ≤ |K| − 3,
|K| + b.
òî
K
ñîäåðæèòñÿ â àðèôìå-
Ïîñòàíîâêà çàäà÷è
Îñíîâíîé çàäà÷åé äàííîé äèïëîìíîé ðàáîòû ÿâëÿåòñÿ ïîëó÷åíèå âåðõíèõ
è íèæíèõ îöåíîê êîíñòàíò cα .
Äëÿ ïîëó÷åíèÿ íèæíèõ îöåíîê òðåáîâàëîñü íàïèñàòü êîìïüþòåðíóþ ïðîãðàììó, âû÷èñëÿþùóþ âåëè÷èíó σp [t] äëÿ ðàçëè÷íûõ p è t è ïðîàíàëèçèðîâàòü ðåçóëüòàòû. Äëÿ óñêîðåíèÿ ðàññ÷åòîâ íåîáõîäèìî áûëî èñïîëüçîâàòü
òåõíîëîãèè ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ.
3
Íèæíèå îöåíêè êîíñòàíò cα
Îáîçíà÷èì:
p
2p
S̃p [t] = {S ∈ Sp [t] : S ∩ {b c − t + 1, b c + t} =
6 ∅}
3
3
σ̃p [t] = |S̃p [t]| · 2−b
.
5
p+1
3 c
Ìîæíî çàìåòèòü, ÷òî
σp [t] = σp [t − 1] + σ̃p [t]
(4)
Êàê âèäíî èç ñîîòíîøåíèÿ (4), êàæäûé ñëåäóþùèé ÷ëåí ïîñëåäîâàòåëüíîñòè σp [t] ïîëó÷àåòñÿ ïðèáàâëåíèåì ê ïðåäûäóùåìó íåêîòîðîãî ïîëîæèòåëüíîãî ÷èñëà. Ýòî îçíà÷àåò, ÷òî σn [t] âîçðàñòàåò ïî t.
Èç Òåîðåìû 1 ñëåäóåò, ÷òî äëÿ íåáîëüøèõ t cα ≥ σp [t] (α = p (mod 3)), è
âû÷èñëåíèå âåëè÷èí σp [t] ïðè ðàçëè÷íûõ p è t ïîçâîëÿåò ïîëó÷àòü íèæíèå
îöåíêè èñêîìûõ êîíñòàíò. Ïðè ýòîì òî÷íîñòü îöåíêè âîçðàñòàåò ïðè óâåëè÷åíèè ïàðàìåòðà t.
Áûëè âû÷èñëåíû çíà÷åíèÿ σp [t] âïëîòü äî t = 16 (äëÿ ñîîòâåòñòâóþùèõ p).
Ðåçóëüòàòû êîìïüþòåðíûõ ðàññ÷åòîâ ïîçâîëÿþò ñäåëàòü ñëåäóþùèå âûâîäû:
9.68349 ≤ c1
(5)
6.13017 ≤ c−1
(6)
Àëãîðèòì âû÷èñëåíèÿ σp [t] äåòàëèçèðóåòñÿ íèæå.  ïðèëîæåíèè ïðèâîäÿòñÿ ïîëíûå ðåçóëüòàòû ðàññ÷åòîâ è ïðîãðàììà, âû÷èñëÿþùàÿ σp [t] äëÿ
çàäàííûõ p è t.
4
Âåðõíèå îöåíêè êîíñòàíò cα
Âåðõíèå îöåíêè êîíñòàíò cα ìîæíî ïîëó÷èòü ñ èñïîëüçîâàíèåì Òåîðåìû
1 è Ëåììû 1, îöåíèâàÿ ÷èñëî íåçàâèñèìûõ ìíîæåñòâ â ãðàôàõ Êýëè CA (Cp \
∂A).
Îáðàòèìñÿ âíîâü ê ñîîòíîøåíèþ (4):
σp [t] = σp [t − 1] + σ̃p [t]
Èç íåãî ñëåäóåò, ÷òî:
σp [t] = σp [τ ] +
t
X
σ̃p [i], 0 ≤ τ ≤ t
(7)
i=τ +1
Òàêèì îáðàçîì, äîñòàòî÷íî ïîëó÷èòü âåðõíþþ îöåíêó äëÿ âåëè÷èíû σ̃p [t]
Îáîçíà÷èì:
p
2p
2p
Ŝp [t] = {S ∈ Sp [t] : b c − t + 1 ∈ S, S ∩ [b c + 1, b c + t] = ∅}
3
3
3
6
σ̂p [t] = |Ŝp [t]| · 2−b
p+1
3 c
Î÷åâèäíî, σ̃p [t] ≤ 3 · σ̂p [t], ïîýòîìó äîñòàòî÷íî îöåíèòü âåëè÷èíó σ̂p [t]:
t
X
σp [t] ≤ σp [τ ] + 3
σ̂p [i]
i=τ +1
Òîãäà âåðõíÿÿ îöåíêà äëÿ cα áóäåò ñëåäóþùåé:
cα ≤ σp [τ ] + 3
∞
X
σ̂p [i]
(8)
i=τ +1
Äëÿ τ = 16 âåëè÷èíà σp [τ ] âû÷èñëåíà (ñì. Ïðèëîæåíèå). Âîñïîëüçóåìñÿ
ýòèì ðåçóëüòàòîì äëÿ ïîëó÷åíèÿ âåðõíèõ îöåíîê êîíñòàíò cα :
cα ≤ σp [16] + 3
∞
X
σ̂p [i]
(9)
i=17
Ê.Ã. Îìåëüÿíîâ â ñâîåé ðàáîòå [5] â õîäå âûâåäåíèÿ âåðõíèõ îöåíîê äëÿ
êîíñòàíò Êàìåðîíà-Ýðäåøà äëÿ ÌÑÑ â îòðåçêå íàòóðàëüíîãî ðÿäà ïîëó÷àåò
âåðõíþþ îöåíêó äëÿ ÷èñëà ÌÑÑ â îòðåçêå [b n2 c − t, n], ñîäåðæàùèõ òî÷êó
b n2 c − t (ñëîæåíèå ïîíèìàåòñÿ â îáû÷íîì, àðèôìåòè÷åñêîì ñìûñëå). Åñëè
ïåðåéòè â ãðóïïó è âñå ñëîæåíèÿ ïðîèçâîäèòü ïî ìîäóëþ p, òî ÷èñëî ÌÑÑ
óìåíüøèòñÿ. Çíà÷èò, ïðèíÿâ n = b 2p
3 c è ïðîäåëàâ ðàññóæäåíèÿ Ê.Ã. Îìåëüÿíîâà (ñ íåêîòîðûìè ìîäèôèêàöèÿìè), ìû ïîëó÷èì èñêîìóþ âåðõíþþ îöåíêó.
Ðàññìîòðèì âñåâîçìîæíûå ìíîæåñòâà A èç [b p3 c − t + 1, b p3 c], îöåíèì êîëè÷åñòâî ÌÑÑ S èç ñåìåéñòâà Ŝp [t] òàêèõ, ÷òî S ∩ [b p3 c − t + 1, b p3 c] = A
Äëÿ ýòîãî ðàññìîòðèì ãðàô Êýëè CA (Cp \ ∂A) è îöåíèì ÷èñëî íåçàâèñèìûõ ìíîæåñòâ â íåì.  îáùåì ñëó÷àå ýòà çàäà÷à ñëèøêîì òðóäîåìêà, ïîýòîìó âîñïîëüçóåìñÿ òåì, ÷òî ÷èñëî íåçàâèñèìûõ ìíîæåñòâ â ëþáîì ïîäãðàôå
íåêîòîðîãî ãðàôà íå ìåíüøå, ÷åì ÷èñëî íåçàâèñèìûõ ìíîæåñòâ â ýòîì ãðàôå:
I(CA (Cp \ ∂A ≤ I(C{b p3 c−t+1} (Cp \ (A + A)
(10)
Îáîçíà÷èì Gt = C{b p3 c−t+1} (Cp ).
p
Ïóñòü p mod 3 = 1. Òîãäà b 2p
3 c = 2b 3 c, è ãðàô Gt ïðåäñòàâëÿåò ñîáîé
p
2p
2p
îáúåäèíåíèå b t−1
2 c öåïåé äëèíû 4 âèäà < b 3 c + k, b 3 c − t + k + 1, b 3 c − k +
1, b p3 c + t − k >, è b p3 c − 2(t − 1) èçîëèðîâàííûõ òî÷åê.
Êàæäàÿ öåïü äëèíû 4 ïîðîæäàåò 8 íåçàâèñèìûõ ìíîæåñòâ, èçîëèðîâàííàÿ
òî÷êà (öåïü äëèíû îäèí) 2 íåçàâèñèìûõ ìíîæåñòâà.
7
Ýòî îçíà÷àåò, ÷òî I(Gt ) = 8b
t−1
2 c
p
2b 3 c−2t+2 ≤
√
p
t
2 · 2b 3 c− 2 .
Îäíàêî, åñëè ìíîæåñòâî Añîäåðæèò êàêèå-ëèáî åùå òî÷êè, ïîìèìî b p3 c −
t + 1, â ãðàôå CA (Cp \ (A + A) â ñðàâíåíèè ñ Gt ïîÿâëÿþòñÿ äîïîëíèòåëüíûå
ðåáðà è óäàëÿþòñÿ íåêîòîðûå âåðøèíû. Îáà ýòè ôàêòîðà óìåíüøàþò ÷èñëî
íåçàâèñèìûõ ìíîæåñòâ.
Îöåíèì, êàê âëèÿåò íà ÷èñëî íåçàâèñèìûõ ìíîæåñòâ óäàëåíèå íåêîòîðûõ
âåðøèí èç ãðàôà Gt . Çàìåòèì, ÷òî åñëè A ∈ [b p3 c − t + 1, b p3 c], òî (A + A) ∈
2p
p
[b 2p
3 c − 2t + 2, b 3 c]. Òàê êàê t < 12 , óäàëÿÿ âåðøèíó èç (A + A), ìû ìîæåì óäàëèòü ëèáî èçîëèðîâàííóþ âåðøèíó (÷òî óìåíüøèò ÷èñëî íåçàâèñèìûõ ìíîæåñòâ â 2 ðàçà), ëèáî âåðøèíó ñòåïåíè 2 (÷òî ñîêðàòèò êîëè÷åñòâî
íåçàâèñèìûõ ìíîæåñòâ íà ÷åòâåðòü).
Îáîçíà÷èì: G̃t - ãðàô, ïîëó÷åííûé èç Gt óäàëåíèåì m âåðøèí èç (A + A),
òîãäà:
I(G̃t ) ≤
3
4
m
(11)
I(Gt )
Äàëüíåéøèå ðàññóæäåíèÿ ïîëíîñòüþ ïîâòîðÿþò ðàññóæäåíèÿ Ê.Ã. Îìåëüÿíîâà èç [5], ñ ó÷åòîì âûøåîïèñàííûõ îñîáåííîñòåé ãðàôà Êýëè.
Ââåäåì åùå íåñêîëüêî îáîçíà÷åíèé. Ïóñòü S ∈ Ŝp [t]. Ïîëîæèì A = A(S) =
çà b p3 c − f ñëåäóþùèé çà b p3 c − t + 1 ýëåìåíò
S ∩ [b p3 c − t + 1, b p3 c]. Îáîçíà÷èì
èç A. Ïîëîæèì A0 = A \ b p3 c − t + 1, b p3 c − f , a = |A|, a0 = |A0 |.
Ïóñòü α =
√
7+3
√ 5,
8 5
β=
√
2 √5
,
3+ 5
ρ=
4√
.
3+ 5
2p
0
Äàëåå, îáîçíà÷èì V 0 = [b p3 c + 1, b p3 c + t − 1] ∪ b 2p
3 c − t + 2, b 3 c], Gt =
C{b p c−t+1} (V 0 ), G0t,f = C{b p c−t+1,b p c−f } (V 0 )
3
3
3
p
Çàìåòèì, ÷òî |(A + A) ∩ [b p3 c + t, b 2p
3 c − t + 1]| ≥ | b 3 c − t + 1 + A| = a.
Ðàññìîòðèì ïîäñåìåéñòâî Jp [t] = {S ⊆ Ŝp [t] : |A + A| ≥ 3|A| − 3}. Åñëè
çàôèêñèðîâàòü íåêîòîðîå ìíîæåñòâî A ⊂ [b p3 c − t + 1, b p3 c], òî ÷èñëî ìíîæåñòâ S òàêèõ, ÷òî S ∩ [b p3 c − t + 1, b p3 c] = A, íå ïðåâîñõîäèò âåëè÷èíû
p
2p
I(G0t,f ) · 2|[b 3 c+t,b 3 c−t]\(A+A)| ) ïðè a ≥ 2. Åñëè æå a = 1, òî A = b p3 c − t + 1 ,
è ÷èñëî ñâîáîäíûõ îò ñóìì ìíîæåñòâ S ñ òàêèì A(S) íå ïðåâîñõîäèò âåëè÷èíû I(Gt ).
Êàê ñëåäóåò èç Òåîðåìû 2, ÷èñëî íåçàâèñèìûõ ìíîæåñòâ â ãðàôå G0t,f îöåíèâàåòñÿ ñëåäóþùèì îáðàçîì:
ρ
I(G0t,f ) ≤ 22(t−1) αt−1 β f
2
8
À òàê êàê ãðàô G̃0t,f ïîëó÷åí èç ãðàôà G0t,f óäàëåíèåì m ïðîèçâîëíûõ
âåðøèí, òî ([5]):
I(G̃0t,f ) ≤ ρm I(G0t,f )
Òîãäà
p
X
|Jp [t]| ≤ I(Gt ) +
2p
I(G̃0t,f ) · 2|[b 3 c+t,b 3 c−t+1]\(A+A)| ≤
A⊂[b p3 c−t+1,b p3 c]:|A|≥2

t−2
X
√
b p3 c 
− 2t
≤2
2·2 +

p
X
2p
I(G̃t,f ) · 2−|(A+A)∩[b 3 c+t,b 3 c−t+1]|−2t+2  ≤
f =0 A0 ⊆[b p3 c−f +1,b p3 c]


t−1 X
2p
2p
t−2
0
X
I(Gt,f )
p
ρ|(A+A)∩[b 3 c−t+2,b 3 c]| 
1
≤ 2b 3 c  √
≤
+
p
2p
|(A+A)∩[b
c+t,b
c−t+1]|
22t−2 0 p
3
3
2
2
f =0
A ⊆[b 3 c−f +1,b p3 c]


t−1 X
f
0
t−2
p
ρ t−1 f X f ρ2a +1 
1
≤ 2b 3 c  √
+
α β
=
0 2a0 +2
2
a
2
a0 =0
f =0


t−1
t−2
f
2
t−1
2
p
1
ρα X f
ρ
=
= 2b 3 c  √
+
β 1+
8
2
2
f =0


t−1
ρ2
t−1
t−1
1+ 2
− 1
ρ2 αt−1 β
1
b p3 c 
+
·
=2  √

ρ2
8
2
β 1+ 2 −1
p
Åñëè p mod 3 = 1, òî b p+1
3 c = b 3 c. Ñëåäîâàòåëüíî,
∞
X
|Jp [t]|
b
t=17 2
p+1
3 c

t−1
t−1
∞
1+
X
ρ2 αt−1 β
 1
√
≤
+
·

8
2
β 1+
t=17
ρ2
2
t−1
2
ρ
2

− 1

−1
Âû÷èñëèâ ñóììó ýòîãî ðÿäà (íàïðèìåð, ïðè ïîìîùè ñèñòåìû êîìïüþòåðíîé àëãåáðû Maple), ïîëó÷èì:
∞
X
|Jp [t]|
b
t=17 2
p+1
3 c
≤ 0.2822205750
(12)
Ðàññìîòðèì ïîäñåìåéñòâî Hp [t] = {S ⊆ Ŝp [t] : |A+A| < 3|A|−3}. Çàìåòèì,
÷òî åñëè |A + A| < 3|A| − 3, òî |A| ≥ 3, è åñëè ðàâåíñòâî äîñòèãàåòñÿ, òî
ìíîæåñòâî A ÿâëÿåòñÿ àðèôìåòè÷åñêîé ïðîãðåññèåé. Îáîçíà÷èì Hp0 [t] = {S ∈
9
Hp [t], |A| ≥ 4}, à Hp00 [t] = {S ∈ Hp [t] : |A| = 3}. Ñîîòâåòñòâåííî, |Hp [t]| =
|Hp0 [t]| + |Hp00 [t]|.
Îöåíèì |Hp0 [t]|. Òàê êàê |A| + |A| ≥ 2|A| − 1, òî íàéäåòñÿ ÷èñëî r òàêîå, ÷òî
|A+A| = 2a−1+r. Èç òåîðåìû Ôðåéìàíà ñëåäóåò, ÷òî ìíîæåñòâî A ñîäåðæèòñÿ â àðèôìåòè÷åñêîé ïðîãðåññèè P äëèíû a + r. Òàê êàê {b p3 c − t + 1} ∈ P ,
òî ÷èñëî âîçìîæíûõ àðèôìåòè÷åñêèõ ïðîãðåññèé äëèíû a + p ñîâïàäàåò ñ
÷èñëîì âîçìîæíûõ ðàçíîñòåé d äëÿ ýòèõ àðèôìåòè÷åñêèõ ïðîãðåññèé è íå
t−1
ïðåâîñõîäèò a−1
.
Çàìåòèì, ÷òî ÷èñëî ìíîæåñòâ S ñåìåéñòâà Hp0 [t] òàêèõ, ÷òî S ∩ [b p3 c − t +
p
2p
1, b p3 c] = A, íå ïðåâîñõîäèò âåëè÷èíû I(G̃0t ) · 2|[b 3 c+t,b 3 c−t+1]\(A+A)| . À òàê êàê
m
ãðàô G̃0t ïîëó÷åí èç ãðàôà G0t óäàëåíèåì m âåðøèí, òî I(G̃0t ) ≤ 43 I(G0t ).
0
Ãðàô G0t ñîñòîèò èç b t−1
2 c öåïåé äëèíû 4, ïîýòîìó I(Gt ) ≤ 8
t−1
2
.
Ñëåäîâàòåëüíî,
|Hp0 [t]| ≤
XX
P
≤2
b p3 c
t X
a−3
X
X
p
2p
I(G̃0t )2|[b 3 c+t,b 3 c−t+1]\(A+A)| ≤
A⊆P
p
X
2p
I(G̃0t )2−|((A+A)∩[b 3 c+t,b 3 c−t+1]|−2t+2
a=4 r=0 P :|P |=a+r A⊆P :|A+A|=2a−1+r
t X
a−3
X
p
2p
t−1 a+r−1
I(G̃0t )2−|[b 3 c+t,b 3 c−t+1]∩(A+A)|−2t+2 ≤
≤2
a−1
a−1
a=4 r=0
2p
2p
t X
a−3
3 |(A+A)∩[b 3 c−t+2,b 3 c]|
0
X
p
t − 1 a + r − 1 I(Gt ) 4
≤ 2b 3 c
·
≤
2t−2
|[b p3 c+t,b 2p
a
−
1
a
−
1
2
3 c−t+1]∩(A+A)|
2
a=4 r=0
t−1 3 a+r−1
t a−3
p XX t − 1
a
+
r
−
1
1
√
≤ 2b 3 c
=
· 4 a
a
−
1
a
−
1
2
2
a=4 r=0
b p3 c
{b = a − 1}
t−1 X
r
t−1 3 b X
b−2 p
1
1
b
+
r
3
8
= 2b 3 c (t − 1) √
≤
2
b r=0
r
4
2
b=3
r
b+r
3
9
≤ √
3b [5]
r
4
16 3b + 1
t−1
t−1 b
X
p
1
9
9
√
≤ 2b 3 c (t − 1) √
=
2
32 10 b=3 8
" 3 !#
t−1
t
p
9
1
9
9
√
≤ 2b 3 c (t − 1) √
8
−
=
8
8
2
32 10
10
b p3 c
=2
1
(t − 1) √
2
t−1
" 3 #
t
9
9
9
√
−
8
8
4 10
t−1
Çíà÷èò,
∞
X
|Hp0 [t]|
t=17
2b
p+1
3 c
∞
X
1
≤
(t − 1) √
2
t=17
9
√
4 10
" 3 #
t
9
9
−
8
8
Âû÷èñëèâ ñóììó ýòîãî ðÿäà, ïîëó÷àåì:
∞
X
|Hp0 [t]|
t=17
2b
p+1
3 c
(13)
≤ 1.753200946
Îöåíèì òåïåðü Hp00 [t]. Òàê êàê |A| = 3 è A ÿâëÿåòñÿ àðèôìåòè÷åñêîé ïðîãðåññèåé, òî ìíîæåñòâî A ïîëíîñòüþ îïðåäåëÿåòñÿ ïîëîæåíèåì ñëåäóþùåãî
çà {b p3 c − t + 1} ýëåìåíòà {b p3 c − f }, ãäå f ∈ [b 2t c + 1, t − 2].
Çíà÷èò, ÷èñëî ÌÑÑ ïðè êàæäîì ôèêñèðîâàííîì A íå ïðåâîñõîäèò âåëèp
2p
÷èíû I(G0t,f · 2|[b 3 c+t,b 3 c−t+1]\(A+A)| ):
|Hp00 [t]|
≤
X
2p
p
I(G̃0t,f )2|[b 3 c+t,b 3 c−t+1]\(A+A)| ≤
A
≤2
t−2
X
b p3 c
p
2p
I(G̃0t,f )2−|(A+A)∩[b 3 c+t,b 3 c−t+1]|−2t+2 ≤
f = 2t +1
b p3 c
≤2
2p
2p
t−2
X
I(G0t,f ) ρ|(A+A)|∩[b 3 c−t+1,b 3 c]
·
≤
2t−2
|(A+A)∩[b p3 c+t,b 2p
2
3 c−t+1]|
2
f =b t c+1
2
≤2
b p3 c
t−2
X
ρ t−1 f ρ3
α β · 3 =
2
2
t
f =b 2 c+1

p
= 2b 3 c
p
1 t−1 4 
α ρ
16
= 2b 3 c
t−2
X
f =1
βf −
b 2t c

X
βf  =
f =1
t
1
αt−1 ρ4 (β t−1 − β b 2 c )
16(β − 1)
Ñëåäîâàòåëüíî,
∞
X
|Hp00 [t]|
t=17
b p+1
3 c
2
≤
∞
X
t
1
αt−1 ρ4 (β t−1 − β b 2 c )
16(β − 1)
t=17
11
Âû÷èñëèâ ñóììó ðÿäà, ïîëó÷àåì:
∞
X
|Hp00 [t]|
t=17
Èòàê,
2b
p+1
3 c
(14)
≤ 0.001687728540
|Jp [t]| + |Hp0 [t]| + |Hp00 [t]|
ˆ
σp [t] =
p+1
2b 3 c
Çíà÷èò,
cα ≤ σp [16] + 3
∞
X
|Jp [t]|
t=17
p+1
2b 3 c
+
∞
X
|Hp0 [t]|
t=17
p+1
2b 3 c
+
∞
X
|Hp00 [t]|
t=17
!
p+1
2b 3 c
(15)
Ïîäñòàâëÿÿ â (15) ðåçóëüòàòû âû÷èñëåíèé èç (12), (13) è (14), ïîëó÷èì:
(16)
c1 ≤ 15.79481775
p
Ïóñòü òåïåðü p mod 3 = −1. Òîãäà b 2p
3 c = 2b 3 c + 1. Ïîýòîìó ãðàô Gt
p
2p
ïðåäñòàâëÿåò ñîáîé îáúåäèíåíèå b t−1
2 c öåïåé äëèíû 4 âèäà < b 3 c+1+k, b 3 c−
p
t + k, b 2p
3 c − k + 1, b 3 c + t − k + 1 > (1 ≤ k ≤ t − 1), îäíîé öåïè äëèíû 2
p
(< b p3 c + 1, b 2p
3 c − tp + 1 >) è b 3 c − 2t + 1 èçîëèðîâàííûõ òî÷åê. Çíà÷èò,
t−1
I(Gt ) ≤ 3 · 8 2 · 2b 3 c−2t+1 .
Ñîîòâåòñòâåííî, V 0 = [b p3 c + t + 1, b 2p
3 c − t − 1], è ÷èñëî íåçàâèñèìûõ
0
2t ρ t f
ìíîæåñòâ â ãðàôå Gt,f íå ïðåâîñõîäèò 2 2 α β .
 ïîëíîé àíàëîãèè ñ ïðåäûäóùèì ñëó÷àåì ïîëó÷àåì:
p
X
|Jp [t]| ≤ I(Gt ) +
2p
I(G̃0t,f ) · 2|[b 3 c+t+1,b 3 c−t−1]\(A+A)| ≤
A⊂[b p3 c−t+1,b p3 c]:|A|≥2

t−1

t−2
X
X
p
2p
3 1
√
+
I(G̃t,f ) · 2−|(A+A)∩[b 3 c+t+1,b 3 c−t−1]|−2t+1  ≤
2
2
f =0 A0 ⊆[b p3 c−f +1,b p3 c]


t−1 X
2p
2p
t−2
0
|(A+A)∩[b
c−t,b
c]|
X
I(Gt,f )
3
3
p
3 1
ρ
≤
√
≤ 2b 3 c 
+
p
2p
2t−1
|(A+A)∩[b
c+t+1,b
c−t−1]|
2
2
3
3
2
2
f =0
A0 ⊆[b p3 c−f +1,b p3 c]


t−1
f
0
t−2
Xρ
X f ρ2a +1
p
3 1
=
√
≤ 2b 3 c 
+2
αt β f
0 2a0 +2
2
2
a
2
a0 =0
f =0


t−1
f
t−2
2
t
2
X
p
3 1
ρα
ρ
=
√
= 2b 3 c 
+
βf 1 +
2
4
2
2
f =0
p
≤ 2b 3 c 
12

b p3 c  3
=2

2
1
√
2
t−1
t−1
1+
ρ2 α t β
+
·
4
β 1+
ρ2
2
t−1

− 1

ρ2
−1
2
p
Âû÷èñëÿÿ ñóììó ðÿäà, è ó÷èòûâàÿ òî, ÷òî b p+1
3 c = b 3 c + 1, ïîëó÷àåì:
∞
X
|Jp [t]|
b p+1
3 c
t=17
Äàëåå,
|Hp0 [t]| ≤
XX
P
≤2
b p3 c
t X
a−3
X
(17)
≤ 0.216051436
p
2p
I(G̃0t )2|[b 3 c+t+1,b 3 c−t−1]\(A+A)| ≤
A⊆P
X
p
X
2p
I(G̃0t )2−|((A+A)∩[b 3 c+t+1,b 3 c−t−1]|−2t+1
a=4 r=0 P :|P |=a+r A⊆P :|A+A|=2a−1+r
t X
a−3
X
p
2p
t−1 a+r−1
I(G̃0t )2−|[b 3 c+t+1,b 3 c−t−1]∩(A+A)|−2t+1 ≤
≤2
a−1
a−1
a=4 r=0
2p
2p
t a−3
3 |(A+A)∩[b 3 c−t,b 3 c]|
0
p XX t − 1
)
a
+
r
−
1
I(G
t
4
·
≤
≤ 2b 3 c
p
2p
2t−1
|[b
c+t+1,b
c−t−1]∩(A+A)|
a
−
1
a
−
1
2
3
3
2
a=4 r=0
t−1 3 a+r−1
t a−3
p XX t − 1
a
+
r
−
1
3
1
≤ 2b 3 c
· 4 a
≤
· · √
a
−
1
2
2
a
−
1
2
a=4 r=0
" t−1
3 #
t
p
1
27
9
9
√
≤ 2b 3 c (t − 1) √
−
8
8
2
8 10
b p3 c
Çíà÷èò,
∞
X
|Hp0 [t]|
t=17
2b
p+1
3 c
≤ 1.314900709
È, íàêîíåö,
|Hp00 [t]| ≤
X
p
2p
I(G̃0t,f )2|[b 3 c+t+1,b 3 c−t−1]\(A+A)| ≤
A
t−2
X
b p3 c
≤2
p
2p
I(G̃0t,f )2−|(A+A)∩[b 3 c+t+1,b 3 c−t−1]|−2t+1 ≤
f = 2t +1
b p3 c
≤2
2p
2p
t−2
X
I(G0t,f )
ρ|(A+A)|∩[b 3 c−t−1,b 3 c]
·
≤
p
2p
2t−1
|(A+A)∩[b
c+t+1,b
c−t−1]|
2
3
3
2
f =b t c+1
2
13
(18)
≤2
t−2
X
b p3 c
f =b 2t c+1
p
= 2b 3 c
Çíà÷èò,
t
1
αt ρ4 (β t−1 − β b 2 c )
8(β − 1)
∞
X
|Hp00 [t]|
t=17
ρ t f ρ3
2 αβ · 3 =
2
2
2b
p+1
3 c
(19)
≤ 0.001293326457
Èç ñîîòíîøåíèé (17), (18 ), (19) è (9) ñëåäóåò, ÷òî
c−1 ≤ 6.13017 + 3
∞
X
σ̂p [t] ≤ 10.72690641
t=17
5
Âû÷èñëåíèå σp[t]
5.1
Àëãîðèòì âû÷èñëåíèÿ
σp [t]
Àëãîðèòì îïèðàåòñÿ íà ëåììó 1. Èñõîäÿ èç ñîîòíîøåíèÿ (5.3) âû÷èñëÿåòñÿ
Sp [t], à çàòåì, ïî îïðåäåëåíèþ, è σp [t]. Àëãîðèòì âû÷èñëåíèé äëÿ çàäàííûõ
p è t ñîñòîèò èç ñëåäóþùèõ øàãîâ:
1. Âûäåëÿåòñÿ A ⊆ Qp,t
2. Äëÿ ýòîãî ïîäìíîæåñòâà A âû÷èñëÿåòñÿ I CA (Cp,t ) \ ∂A) . Ïîëó÷åííîå
÷èñëî ïðèáàâëÿåòñÿ ê îáùåé ñóììå.
3. Åñëè ðàññìîòðåíû åùå íå âñå ïîäìíîæåñòâà Qp,t , òî âîçâðàò íà øàã 1.
Èíà÷å - âû÷èñëåíî çíà÷åíèå Sp [t], ïåðåõîä ê øàãó 4.
4. Ïî îïðåäåëåíèþ âû÷èñëÿåòñÿ çíà÷åíèå σn [t].
Îñòàíîâèìñÿ ïîäðîáíåå íà øàãå 2 àëãîðèòìà.
5.2
Ïîäñ÷åò íåçàâèñèìûõ ìíîæåñòâ â ãðàôå Êýëè
CA (Cp,t )
Èçâåñòíî, ÷òî ÷èñëî íåçàâèñèìûõ ìíîæåñòâ ãðàôà ðàâíî ïðîèçâåäåíèþ
÷èñëà íåçàâèñèìûõ ìíîæåñòâ åãî êîìïîíåíò.
Ïîýòîìó ÷èñëî íåçàâèñèìûõ ìíîæåñòâ ãðàôà Êýëè CA (Cp,t ) áóäåì âû÷èñëÿòü òàê:
14
1. Ãðàô ðàçáèâàåòñÿ íà êîìïîíåíòû ñâÿçíîñòè
2. Íàõîäèòñÿ ÷èñëî íåçàâèñèìûõ ìíîæåñòâ â êàæäîé èç êîìïîíåíò
3. Ïîëó÷åííûå ðåçóëüòàòû ïåðåìíîæàþòñÿ.
Ðàçáèåíèå íà êîìïîíåíòû ñâÿçíîñòè ïðîèçâîäèòñÿ ñëåäóþùèì îáðàçîì:
1. Ñîñòàâëÿåòñÿ ñïèñîê ðåáåð ãðàôà
2. Ñ èñïîëüçîâàíèåì ñîñòàâëåííîãî ñïèñêà ïðîèçâäèòñÿ îáõîä ãðàôà â ãëóáèíó. Ïðè ýòîì âñå âåðøèíû, ñâÿçàííûå êàêèì-ëèáî ïóòåì, ïîìå÷àþòñÿ
îäèíàêîâûì ¾öâåòîì¿.
Âî âðåìÿ îáõîäà â ãëóáèíó ñîñòàâëÿþòñÿ ñïèñêè âåðøèí, âõîäÿùèõ â êîìïîíåíòó ñâÿçíîñòè êàæäîãî èç ¾öâåòîâ¿. Ïîñëå ÷åãî êàæäûé ñïèñîê îáðàáàòûâàåòñÿ â îòäåëüíîñòè.
Åñëè íåêîòîðàÿ êîìïîíåíòà ñâÿçíîñòè ñîñòîèò ðîâíî èç îäíîé âåðøèíû,
òî ÷èñëî íåçàâèñèìûõ ìíîæåñòâ â íåé ðàâíî 2. Àíàëîãè÷íî, åñëè íåêîòîðàÿ
êîìïîíåíòà ñîñòîèò ðîâíî èç äâóõ âåðøèí, òî ÷èñëî íåçàâèñèìûõ ìíîæåñòâ
â íåé ðàâíî 3.
×èñëî íåçàâèñèìûõ ìíîæåñòâ â ïðî÷èõ êîìïîíåíòàõ ñâÿçíîñòè ïîäñ÷èòûâàåòñÿ ìåòîäîì ïåðåáîðà ñ îòñå÷åíèÿìè (ïåðåáèðàþòñÿ âñå ïîäìíîæåñòâà
âåðøèí ñîîòâåòñòâóþùåé êîìïîíåíòû, è åñëè íåêîòîðîå ïîäìíîæåñòâî çàâåäîìî íå ÿâëÿåòñÿ íåçàâèñèìûì, èç ðàññìîòðåíèÿ èñêëþ÷àþòñÿ òàê æå è âñå
ïîäìíîæåñòâà, åãî ñîäåðæàùèå).
5.3
Îöåíêà ñëîæíîñòè àëãîðèòìà âû÷èñëåíèÿ
σp [t]
Âû÷èñëåíèÿ îïèðàþòñÿ íà ñîîòíîøåíèå (5.3):
|Sp [t]| =
X
I CA (Cp \ ∂A) .
A⊂Qp,t
Âñåãî ðàññìàòðèâàåòñÿ 22t ìíîæåñòâ A ⊆ Qp,t , äëÿ êàæäîãî èç íèõ âûïîëíÿåòñÿ øàã 2 îñíîâíîãî àëãîðèòìà ïîäñ÷åò ÷èñëà íåçàâèñèìûõ ìíîæåñòâ â
ñîîòâåòñòâóþùåì ãðàôå Êýëè: I CA (Cp \ ∂A) .
Ñîñòàâëåíèå ñïèñêà ðåáåð è îáõîä ãðàôà â ãëóáèíó çàíèìàåò êâàäðàòè÷íîå îòíîñèòåëüíî ÷èñëà âåðøèí âðåìÿ. Ãðàô Êýëè CA (Cp \ ∂A) ñîäåðæèò íå
p
áîëåå, ÷åì b p3 c âåðøèí. Íî ïðè ýòîì íóæíî ó÷åñòü, ÷òî t < 12
, è ðåçóëüòàò
15
âû÷èñëåíèé íå çàâèñèò îò p, à ëèøü îò îñòàòêà îò äåëåíèÿ p íà 3. Ïîëàãàÿ
êàæäûé ðàç äëÿ ðàññ÷åòîâ p = 12t + k , ãäå k - íàèìåíüøåå öåëîå ÷èñëî, òàêîå
÷òî 12t + k äàåò íóæíûé îñòàòîê îò äåëåíèÿ íà 3, ïîëó÷àåì, ÷òî ñëîæíîñòü
ýòîãî øàãà â êîíå÷íîì èòîãå îöåíèâàåòñÿ êàê O(t2 ).
Äàëåå, íåîáõîäèìî îöåíèòü ñëîæíîñòü ïåðåáîðà âñåõ íåçàâèñìûõ ìíîæåñòâ
îòäåëüíî âçÿòîé êîìïîíåíòû. Åñëè ýòà êîìïîíåíòà ïðåäñòàâëÿåò ñîáîé èçîëèðîâàííóþ âåðøèíó, èëè æå îòðåçîê, òî âðåìÿ âû÷èñëåíèÿ ÷èñëà íåçàâèñèìûõ ìíîæåñòâ êîíñòàíòíî (O(1)). Âî âñåõ ïðî÷èõ ñëó÷àÿõ âðåìÿ âû÷èñëåíèé
áóäåò çàâèñåòü îò ìîùíîñòè ñîîòâåòñòâóþùåé êîìïîíåíòû.
p
Ìîæíî çàìåòèòü, ÷òî ïðè t < 12
âåðøèíû èç îòðåçêà [b p3 c + t, b 2p
3 − t + 1]
p
2p
ÿâëÿþòñÿ íåçàâèñèìûìè ([b 3 c + t + 1, b 3 − t − 1] â ñëó÷àå p ≡ −1 (mod 3)).
Ýòî îçíà÷àåò, ÷òî îäíà êîìïîíåíòà ñâÿçíîñòè ãðàôà CA (Cp,t ) \ ∂A) ñîäåðæèò
íå áîëåå 2t âåðøèí, è ïåðåáîð âñåõ èõ ïîäìíîæåñòâ áóäåò èìåòü ñëîæíîñòü
O(22t ).
Ïóñòü òåïåðü ýòè 2t âåðøèí ñîäåðæàòñÿ â k êîìïîíåíòàõ ñâÿçíîñòè, ìîùíîñòüþ n1 ,. . . , nk ñîîòâåòñòâåííî. Òîãäà ïåðåáîð âñåõ ïîäìíîæåñòâ êàæäîé èç
êîìïîíåíò áóäåò èìåòü ñëîæíîñòü O(2n1 +· · ·+2nk ) < O(2n1 ·· · ··2nk ) = O(22t )
Ñëåäîâàòåëüíî, ñëîæíîñòü øàãà 2 àëãîðèòìà îöåíèòñÿ êàê O(22t ), è âûïîëíèòñÿ îí 22t ðàç.
Èç âñåãî âûøåñêàçàííîãî ñëåäóåò, ÷òî îáùàÿ ñëîæíîñòü àëãîðèòìà âû÷èñëåíèÿ σp [t] îöåíèâàåòñÿ êàê O(42t ).
Ñîêðàòèòü âû÷èñëåíèÿ íà ÷åòâåðòü ïîçâîëÿåò èñïîëüçîâàíèå ñîîòíîøåíèÿ (4). Äëÿ âû÷èñëåíèÿ î÷åðåäíîãî çíà÷åíèÿ σp [t] ìîæíî îáðàáàòûâàòü íå
âñå ìíîæåñòâà A ⊆ Qp,t , à ëèøü òå, êîòîðûå ñîäåðæàò õîòÿ áû îäíó èç òî÷åê
{b p3 c − t + 1, b 2p
3 c}.
5.4
Ïàðàëëåëüíûå âû÷èñëåíèÿ
Çàäà÷à ñîäåðæèò áîëüøîé çàïàñ âíóòðåííåãî ïàðàëëåëèçìà, âåäü A ⊆ Qp,t
îáðàáàòûâàþòñÿ àáñîëþòíî íåçàâèñèìî äðóã îò äðóãà. Èñïîëüçîâàíèå ìåòîäîâ ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ ïîçâîëÿåò ñóùåñòâåííî óñêîðèòü âû÷èñëåíèÿ.
Âñåãî ïåðå÷èñëÿåòñÿ 2t ïîäìíîæåñòâ A ⊆ Qn,t , è ðàñïðåäåëåíèå âû÷èñëåíèé ìåæäó 2k ïðîöåññîðàìè ïîçâîëÿåò ñîêðàòèòü ýòîò ïåðåáîð äî 22t−k ïîäìíîæåñòâ êàæäûì èç ïðîöåññîðîâ.
Ñóòü èñïîëüçîâàííîãî ïàðàëëåëüíîãî ìåòîäà:
16
- ïàðàëëåëüíîñòü ðàñ÷åòîâ îáåñïå÷èâàåòñÿ ïðè ïîìîùè òåõíîëîãèè MPI
- íà íà÷àëüíîì ýòàïå îïðåäåëÿåòñÿ, êàêèå èç ïîäìíîæåñòâ A äîëæåí îáðàáîòàòü êàæäûé ïðîöåññ (â çàâèñèìîñòè îò åãî ðàíãà)
- êàæäûé èç ïðîöåññîâ âûïîëíÿåò ñâîþ ïîðöèþ âû÷èñëåíèé, ïîñëå ÷åãî
âñå ïðîìåæóòî÷íûå ðåçóëüòàòû ñóììèðóþòñÿ root-ïðîöåññîì, è îêîí÷àòåëüíûé ðåçóëüòàò (çíà÷åíèå σp [t] äëÿ äàííûõ p è t) çàïèñûâàåòñÿ â ôàéë
ðåçóëüòàòîâ.
6
Çàêëþ÷åíèå
 ðàáîòå ïðèâîäÿòñÿ íèæíèå è âåðõíèå îöåíêè cα :
9.68349 ≤ c1 ≤ 15.79481775
(20)
6.13017 ≤ c−1 ≤ 10.72690641
(21)
Ïðèâîäèòñÿ òàêæå àëãîðèòì âû÷èñëåíèÿ çíà÷åíèé σp [t], îöåíèâàåòñÿ åãî
ñëîæíîñòü. Ïîñòàâëåííàÿ çàäà÷à îáëàäàåò áîëüøèì çàïàñîì âíóòðåííåãî ïàðàëëåëèçìà, ïîýòîìó àëãîðèòì ðåàëèçîâàí ñ èñïîëüçîâàíèåì ìåòîäîâ ïàðàëëåëüíîãî ïðîãðàììèðîâàíèÿ.
 ïðèëîæåíèè äîñòóïíà ðåàëèçàöèÿ îïèñàííîãî àëãîðèòìà íà ÿçûêå ïðîãðàììèðîâàíèÿ C++. Äëÿ îáåñïå÷åíèÿ âçàèìîäåéñòâèÿ ïàðàëëåëüíûõ ïðîöåññîâ èñïîëüçîâàíà òåõíîëîãèÿ MPI. Ïîñëåäîâàòåëüíûå ôðàãìåíòû ïðîãðàììû îïòèìèçèðîâàíû.
Íà îñíîâàíèè ðåçóëüòàòîâ ðàññ÷åòîâ äåëàåòñÿ âûâîä î íèæíèõ îöåíêàõ
êîíñòàíò cα .
Âû÷èñëåíèÿ ïðîèçâîäèëèñü ïðè ïîìîùè âûñîêîïðîèçâîäèòåëüíîé ñèñòåìû IBM Blue Gene/P, ðàáîòàþùåé íà ôàêóëüòåòå ÂÌÊ ÌÃÓ èì. Ì.Â. Ëîìîíîñîâà.
17
Ïðèëîæåíèå
6.1
Ðåçóëüòàòû ðàññ÷åòîâ
 òàáëèöå ïðèâåäåíû çíà÷åíèÿ âåëè÷èíû σp [t] ïðè ðàçëè÷íûõ t è p.
t p ≡ 1(mod3) p ≡ 2(mod3) p ≡ 0(mod3)
1
2.25
1.5625
1.9375
2
3.23438
2.38672
2.89063
3
4.52051
2.95898
3.69653
4
5.31927
3.66302
4.52708
5
6.33388
4.08468
5.17786
6
6.96063
4.59482
5.77225
7
7.67429
4.90024
6.21559
8
8.07917
5.24062
6.62098
9
8.54049
5.43058
6.91619
10
8.81084
5.64483
7.1687
11
9.09983
5.76723
7.34775
12
9.25793
5.89628
7.50318
13
9.43114
5.96683
7.61333
14
9.52784
6.04328
7.7038
15
9.62906
6.08611
7.76675
16
9.68349
6.13017
7.81924
6.2
Ïðîãðàììà
Íèæå ïðèâåäåíà ïàðàëëåëüíàÿ ïðîãðàììà íà ÿçûêå C++, ïîçâîëÿþùàÿ
p
. Äëÿ îáåñïå÷åíèÿ âçàèìîäåéâû÷èñëèòü σp [t] äëÿ çàäàííîãî p è 1 ≤ t < 12
ñòâèÿ ïàðàëëåëüíûõ ïðîöåññîâ èñïîëüçóåòñÿ áèáëèîòåêà MPI.
#define SIGMA (long double) 1;
#define T_START 1;
#include
#include
#include
#include
#include
<mpi.h>
<iostream>
<list>
<vector>
<math.h>
using namespace std;
int rank,s;
void load (char * src, char * dst, int length){
for (int i=0; i<length; i++)
dst[i] = src[i];
}
18
//êëàññ äëÿ õðàíåíèÿ ðåáåð ãðàôà
class edge {
int u;
int v;
public:
edge (int x, int y);
edge (edge const & copy);
~edge(){};
int get_u() {return u;}
int get_v() {return v;}
friend bool compare_edges (edge x, edge y);
friend void swap (edge x, edge y);
edge operator = (edge x);
};
edge :: edge(int x, int y){
u = x;
v = y;
}
edge:: edge(edge const & copy){
u = copy.u;
v = copy.v;
}
bool compare_edges (edge x, edge y) {
if (x.u < y.u) return true;
else return false;
}
void swap (edge x, edge y) {
int t;
t = x.u; x.u = y.u; y.u = t;
t = x.v; x.v = y.v; y.v = t;
}
//äåëåíèå íà âûñîêèå ñòåïåíè äâîéêè
long double div_to_dva (long double divident, unsigned int degree){
long double k;
k = 1;
while (degree != 0){
while (!(degree & 1)) {k *= 2; degree >>=1;}
long double dva = 1;
for (long double i = k; i >= 1; i--)
dva *= 2;
divident /= (long double)(dva);
k *= 2; degree >>=1;
}
return divident;
}
class environment{
int p; //ïîðÿäîê ãðóïïû
int l; //íàèìåíüøèé ýëåìåíò ìíîæåñòâà
int r; //íàèáîëüøèé
int l_c;
int r_c; // âíåøíèå ãðàíèöû öåíòðàëüíîãî ó÷àñòêà
char * workset; // ðàáî÷åå ìíîæåñòâî
char * colors; // ðàñêðàñêà ïî êîìïîíåíòàì ãðàôà Êýëè â öåíòðàëüíîì êóñêå ðàáî÷åãî
list <edge> edges; //ñïèñîê ðåáåð
list <edge> :: iterator * index; //èíäåêñ ðåáåð ãðàôà
vector < list<int> > comps; //ñïèñîê êîìïîíåíò ñâÿçíîñòè
public:
long double sigma; //sigma_p[t]
environment(int group_order, int left_item, int right_item);
~environment();
void mark (int a); // îòìåòèòü â ðàáî÷åì ýëåìåíò à è âñåõ åãî Ýñîñåäåé"
//ïåðåáîð âñåõ â Q_p[t]
void parallel_perebor_caley (unsigned int t);
void MakeEdgeList(); //ôîðìèðîâàíèå ñïèñêà ðåáåð ãðàôà Êýëè
void SortEdgeList(); //ñîðòèðîâêà ýòîãî ñïèñêà
void MakeIndex();
//ñîñòàâëåíèå èíäåêñà ðåáåð
19
};
void ColorComp(int curr, int color);
//ïîêðàñêà êîìïîíåíòû ñâÿçíîñòè
int MarkComps();
//ðàçáèåíèå ãðàôà íà êîìïîíåíòû
//îáðàáîòêà êîìïîíåíòû ñâÿçíîñòè
void ProcessComp(int i, list <int>:: iterator pos, unsigned long long *res);
long double caley();
//ïîäñ÷åò íåçàâèñèìûõ ìí-â â ãðàôå Êýëè
void ParallelComputeSigma(int t);
long double get_sigma() {return sigma;}
environment :: environment(int group_order, int left_item, int right_item){
p = group_order;
l = left_item;
r = right_item;
workset = new char[p];
for (int i = 0; i < p; i++)
workset[i] = 0;
sigma = 0;
l_c
= p/3;
r_c
= (2*p)/3 + 1;
colors = new char[p];
index = new list <edge> :: iterator [p];
for (int i = 0; i < p; i++)
colors[i] = 0;
}
environment ::
if (workset
if (colors
if (index
}
~environment(){
!= NULL) {delete(workset);}
!= NULL) {delete(colors) ;}
!= NULL) {delete(index) ;}
void environment :: mark (int a){
workset[a]=1;
for (int i=0; i<p; i++)
{
if (workset[i]==1)
workset[(i+a)%p]=workset[(i + p - a)%p]=workset[(a + p - i)%p]=2;
if ((i+i)%p == a) workset[i]=2;
}
}
void environment:: MakeEdgeList(){
edges.clear();
for (int i = l_c+1; i < r_c; i++)
//r_c è l_c ýòî âíåøíèå ãðàíèöû öåíòðàëüíîãî îòðåçêà
{
if (workset[i]!=2){
for (int j = i; j < r_c; j++)
{
if (workset[j]!=2){
if ((workset[(i + j) % p]==1) ||
(workset[(i + p - j) % p]==1) ||
(workset[(j + p - i) % p]==1)){
edges.push_back(edge(i,j));
edges.push_back(edge(j,i));
}
}
}
}
}
}
void environment:: SortEdgeList(){
edges.sort(compare_edges);
}
void environment:: MakeIndex(){
list <edge>:: iterator i;
i = edges.begin();
for (int j = l_c + 1; j < r_c; j++)
{
while (i != edges.end()){
if ((*i).get_u() >= j) {break;}
20
++i;
}
index[j] = i;
}
}
for (int j = 0; j < l_c+1; j++)
index[j] = edges.end();
for (int j = r_c; j < p; j++)
index[j] = edges.end();
void environment :: ColorComp(int curr, int color){ //îáõîä â ãëóáèíó
colors[curr] = color;
for (list<edge>:: iterator i = index[curr]; (i!= edges.end()); ++i)
{
if (i == index[curr + 1]) {break;}
if (colors[(*i).get_v()]==0){
comps[color - 1].push_back((*i).get_v()); //ïîìåùàåì âåðøèíó â ñïèñîê
ColorComp((*i).get_v(), color);
}
}
}
int environment :: MarkComps(){
int color = 0;
for (int i = 0; i < p; i++ )
colors[i] = 0;
comps.clear();
for (int i = l_c + 1; i < r_c; i++)
{
if ((colors[i] == 0)&&(workset[i] != 2)) {
color++;
list <int> curr_comp;
curr_comp.push_back(i);
comps.push_back(curr_comp);
ColorComp(i, color);
}
}
return color;
}
void environment :: ProcessComp(int i, list <int>:: iterator pos, unsigned long long *res){
if (pos == comps[i].end()) {(*res) = (*res) + 1; return;}
else{
char buf;
buf = workset[(*pos)];
workset[(*pos)] = 2; ++pos;
ProcessComp(i, pos, res);
--pos;
workset[(*pos)] = buf;
}
}
if (workset[(*pos)] != 2){
char *buf = new char [p];
load(workset, buf, p);
workset[(*pos)] = 1;
//ïîìå÷àåì âñå, êîòîðûå òåïåðü âçÿòü íåëüçÿ
for (list<edge>:: iterator j = index[(*pos)]; (j!= edges.end()); ++j)
{
if (j == index[(*pos) + 1]) {break;}
workset[(*j).get_v()] = 2;
}
++pos;
ProcessComp(i, pos, res);
load(buf, workset, p);
--pos;
delete(buf);
}
long double environment :: caley() //áåðåò ðàáî÷åå ìíîæåñòâî è ñ÷èòàåò íåçàâèñèìûå â ãðàôå Êýëè{
long double sigm;
int ColComps = 0;
21
}
this->MakeEdgeList(); //ñïèñîê ðåáåð
this->SortEdgeList(); //ñîðòèðóåì åãî
this->MakeIndex();
//ñîñòàâëÿåì èíäåêñ ðåáåð
ColComps = this->MarkComps(); //êðàñèì êîìïîíåíòû ñâÿçíîñòè, ïîïóòíî èõ ñ÷èòàÿ
sigm = 1;
for (int color = 0; color < ColComps; color++){
unsigned long long ind_sets = 1;
if (comps[color].size() < 3){
ind_sets *= (comps[color].size() +1);
} else{
ind_sets = 0;
ProcessComp(color, comps[color].begin(), &ind_sets);
}
sigm *= (long double)ind_sets;
}
sigm = div_to_dva(sigm, (p+1)/3);
return sigm;
void environment:: parallel_perebor_caley(unsigned int t){
unsigned long x, y;
y=0;
//îïðåäåëÿåì, êàêóþ äîëþ ìíîæåñòâ áóäåò îáðàáàòûâàòü äàííûé ïðîöåññ
x = lrint(((1<<t) * (long double)rank)/ (long double)s);
unsigned long max = lrint(((1<<t) * (long double)(rank+1))/(long double) s);
char * buf = new char [p];
load(workset,buf,p);
while (x < max){
unsigned int bit=(1<<(t-1));
//ïî áèòîâîé ìàñêå x âîññòàíàâëèâàåì ìíîæåñòâî
for (int i = l, j= r_c; i<= l_c, j <= r ; i++, j++){
if ((x & bit) != 0){
if (workset[i] == 2) {goto DO_NOTHING;}
mark(i);
} else {
if (workset[i] == 1) {goto DO_NOTHING;}
workset[i] = 2;
}
if ((y & bit) != 0){
if (workset[j] == 2) {goto DO_NOTHING;}
mark(j);
} else {
if (workset[j] == 1) {goto DO_NOTHING;}
workset[j] = 2;
}
bit>>=1;
}
if ((workset[l]!=0)||(workset[r]!=0)) {sigma = sigma + this->caley();}
DO_NOTHING:
//åñëè äàííîå ìíîæåñòâî îáðàáàòûâàòü íå íóæíî
load(buf, workset, p);
y++;
if (y >= ((unsigned long)1<<t)) {x++; y=0;}
}
}
void environment :: ParallelComputeSigma(int t){
//çà÷èùàåì ðàáî÷åå ìíîæåñòâî
for (int i = 0; i < p; i++)
workset[i] = 0;
//êîãäà êðàåâ íåò - ýòî sigma_prev, ýòîò ñëó÷àé óæå îáñ÷èòàí
//òåïåðü ëåâûé âêëþ÷àåì è çàïóñêàåì ïåðåáîð
mark(l);
this->parallel_perebor_caley(t);
}
for (int i = 0; i < p; i++)
workset[i] = 0;
//òåïåðü òîëüêî ïðàâûé, ëåâîãî ãàðàíòèðîâàííî íåò
mark(r); workset[l] = 2;
this->parallel_perebor_caley(t);
22
int main(int argc, char *argv[]){
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &s);
std::ofstream cout("result.txt", std::ios::out);
try{
int t, p;
p = 369;
t = T_START;
long double sigma_start;
sigma_start = SIGMA;
}
while (t < p/12){
long double total; total = 0;
environment group(p, p/3 - t +1, (2*p)/3 + t);
group.ParallelComputeSigma(t);
//ñóììèðîâàíèå ðåçóëüòàòîâ âû÷èñëåíèé îòäåëüíûõ ïðîöåññîðîâ
MPI_Reduce(&(group.sigma), &total, 1, MPI_LONG_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
if (!rank) {cout << t << "\t" << (sigma_start = total + sigma_start)<< endl;}
t++;
}
} catch (...) {cout << endl << "Fatal Error." << endl;}
MPI_Finalize();
return 0;
23
Ñïèñîê ëèòåðàòóðû
[1] Cameron P., Erd
os P. On the number of integers with various properties, In: Number
Theory, Proc. 1st Conf. Can. Number Theory Assoc., Ban/Alberta (Mollin,
R. A., Ed) 1988. De Gruyter, Berlin, 1990, pp. 61-79.
[2] Ñàïîæåíêî À.À., Äîêàçàòåëüñòâî ãèïîòåçû Êàìåðîíà-Ýðäåøà î ÷èñëå ìíîæåñòâ, ñâîáîäíûõ îò ñóìì, Ñá. "Ìàòåìàòè÷åñêèå âîïðîñû êèáåðíåòèêè Âûï. 12, 2003, ñ. 5-14.
[3] Green B. The CameronErdos conjecture, Bull. London Math. Soc. Vol. 36 Part
6 (November 2004), p. 769778.
[4] Ñàïîæåíêî À.À., Ðåøåíèå ïðîáëåìû Êàìåðîíà-Ýðäåøà äëÿ ãðóïï ïðîñòîãî ïîðÿäêà
[5] Îìåëüÿíîâ Ê.Ã., Î ÷èñëå ìíîæåñòâ, ñâîáîäíûõ îò ñóìì, ðóêîïèñü äèññåðòàöèè
[6] Ôðåéìàí Ã. À., Ñëîæåíèå êîíå÷íûõ ìíîæåñòâ, Èçâ. Âûñø. Ó÷åáí. Çàâåä.,
Ìàòåìàòèêà, 6(13), (1959), 202-213.
24
Download