Ìîñêîâñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò èìåíè Ì.Â. Ëîìîíîñîâà Ôàêóëüòåò âû÷èñëèòåëüíîé ìàòåìàòèêè è êèáåðíåòèêè Êàôåäðà ìàòåìàòè÷åñêîé êèáåðíåòèêè ÄÈÏËÎÌÍÀß ÐÀÁÎÒÀ ÑÒÓÄÅÍÒÊÈ 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