Professional Documents
Culture Documents
Praca Magisterska
Praca Magisterska
Grzegorz Ilnicki
28 maja 2007
Spis treści
Wstęp 1
1 Węzły fizyczne 6
1.1 Elementy klasycznej teorii węzłów . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1 Definicja węzła, projekcja węzła . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2 Równoważność węzłów, ruchy Reidemeister’a . . . . . . . . . . . . . . 7
1.2 Definicja liny idealnej, przyjęty model . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Właściwości geometryczne liny idealnej . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Właściwości fizyczne modelu liny idealnej . . . . . . . . . . . . . . . . . . . . 9
1.5 Węzły gordyjskie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
4.3 Zasada zachowania pędu - stałość pochodnej czasowej momentu statycznego . 37
4.4 Zasada zachowania momentu pędu zbioru punktów materialnych . . . . . . . 39
4.5 Obroty wokół środka masy - stałość środka masy i zmienność momentu pędu 41
4.6 Macierz bezwładności - usuwanie momentu pędu obrotem wokół środka masy 51
2
Podziękowania
Pragnę wyrazić swą głęboką wdzięczność Joannie Juszczęć za wsparcie materialne i ducho-
we w trakcie pisania pracy magisterskiej. Obdarzyła mnie ogromnym zaufaniem, użyczając
mi na ponad pół roku swój przenośny komputer osobisty, na którym ta praca powstała w
przeważającej części. To właśnie Tobie - Joasiu - dedykuję tę pracę.
Jestem też bardzo wdzięczny mojemu promotorowi Panu doktorowi Sylwestrowi Przyby-
łowi za cenne wskazówki dotyczące pisania pracy i programu komputerowego. Bardzo ceniłem
sobie też Jego spokój wewnętrzny i cierpliwość w stosunku do mojej osoby.
Chciałbym również podziękować Panu profesorowi dr hab. Piotrowi Pierańskiemu. Gdyby
nie Pan profesor, pomysłodawca tematu pracy, prawdopodobnie nigdy nie zainteresowałbym
się fascynującą tematyką węzłów. Jestem przekonany, że kryją one jeszcze wiele ciekawych
tajemnic i gotów jestem, w miarę możliwości, kontynuować moje z nimi przygody w dalszym
toku rozwoju naukowego.
Dziękuję też Wam, kochani rodzice, za wsparcie materialne w ciągu całego toku studiów.
3
Abstract
Dynamics of topologically complex geometrical objects - models of objects, which length is signifi-
cantly (over 100 times) larger than their width - were theoretically examined. An approach with use
of simple models was made, which made it possible to determine their specific properties. Such an
approach may be useful for describing a vast class of objects with length many times larger than
width, particularly, for describing the behavior of protein molecules and DNA inside nucleus of biolo-
gical cells. Herein, such objects were taken for conformations of ideal rope entangled in complicated
forms of so called Gordian unknots. Their ability to spontaneously morph into trivial conforma-
tions, due to their geometrical fluctuations, was examined with use of computer simulations. An
issue of simulations conformity with momentum and angular momentum preservation rules was also
detailed. In oreder to fulfill these rules (mainly for visualization purpose) appropriate conditions
were formulated. Based on Monte Carlo methods algorithms were developed, enabling simulations
of Gordian unknots disentanglment process, as well as boosting speed of knots tightening by a se-
cond order of magnitude. It was shown, that complex Gordian conformations will spontaneously
morph into trivial knot conformations due to their fluctuations (thermal f.e.), providing there is an
appropriate additional amount of rope length added (relatively to their most tight conformations).
Also, this result has an important meaning within a topological branch of mathematics. Obtained
results point, that an inconsiderable relative change of Gordian knot rope length (less than 1%)
may decide of its possibility to morph into a trivial conformation, in other words the probability
of this morphing process seems to be a step function of rope length. In case of ideal rope, such
a process is connected with freeing a significant amount of rope. This can prove to be important
for macromolecules and DNA functions in biological cells. A relation mentioned above, points at
possibility of existence of such macromolecules (also DNA), which parts, or whole molecules, pac-
ked into Gordian conformations, disentangle into more simple forms, due to temperature changes
and thus caused elongation. In these more simple forms, significant parts of atomic chains (forming
these macromolecules and previously packed into Gordian conformations), could be freed and thus
made accessible for biological processes, like RNA transcription, translation and other important
biomolecular processes.
4
Streszczenie
Tutuł pracy może być dla osoby nie znającej tematu nieco mylący, więc już na wstępie wy-
magane jest uściślenie: otóż węzeł gordyjski, z matematycznego punktu widzenia, jest węzłem
trywialnym, a więc inaczej tzw. niewęzłem (ang. unknot). Węzeł trywialny można go opisać
jako krzywą o końcach połączonych ułożoną w przestrzeni trójwymiarowej w najprostszy
możliwy sposób - w pojedynczą nieskrzyżowaną pętlę, jak na rysunku 1.
Występują jednak krzywe w takich konformacjach, zwanych gordyjskimi, które na pierw-
szy rzut oka wyglądają na węzły matematyczne ale w istocie są niewęzłami. Klasyczna
(dotycząca węzłow zawiązanych na linie nieskończenie cienkiej) teoria węzłów, przybliżo-
na skrótowo w rozdziale 1 w paragrafie 1.1, wykazuje, że przy pomocy nieskomplikowanych
podstawowych transformacji krzywej w trzech wymiarach, zwanych ruchami Reidemeister’a
(patrz paragraf 1.1.2), które nie zmieniają typu węzła (węzeł wynikowy jest równoważny),
można krzywe w konformacjach gordyjskich przeprowadzić do postaci trywialnych (nie da się
tego uczynić z węzłem nietrywialnym bez przecinania krzywej). Jeśli znamy przebieg krzy-
wej węzła, można też przy pomocy znanego algorytmu (używając wielomianów Jones’a),
rozpoznać, czy jest on węzłem trywialnym, czy nie.
A co jeśli krzywą zastąpimy liną o skończonej grubości? Przecież krzywa matematyczna
jest tworem wyidealizowanym nie istniejącym (albo jak dotąd niespotkanym) w przyrodzie.
Każdy obiekt trójwymiarowy posiada skończone wymiary, wśród których wyróżnić można
grubość (lub szerokość) i/lub długość (lub podobnie - na przykład kula ma średnicę, którą
możemy uznać zarówno za grubość, jak i za długość). W szczególności dotyczy to wszystkich
rzeczywistych obiektów, które można łatwo wyginać w przestrzeni 3D jak: nitki, sznury,
liny, kable, łańcuchy, łańcuchy atomowe, nicie RNA, DNA i wiele innych. Posiadają one
wymiar, który można wyróżnić jako średnią (lub lokalną) grubość d ≈ 2r (gdzie r jest
średnim promieniem przekroju w punkcie pomiaru grubości) oraz całkowitą długość l. 1 Dla
obiektów takich spełniona jest najważniejsza (obok łatwości deformowania ich kształtów)
1 Zachowanie obiektów tego typu można efektywnie modelować przy pomocy idealizacji w postaci tzw. liny
1
Rysunek 1: Kolejno: węzeł trywialny (niewęzeł), niewęzeł w nieco innej konformacji (skręcony), oraz
najprostszy węzeł nietrywialny - trójlistny - w dwóch konformacjach. Na rysunku uwidoczniono typową
konwencję rysowania węzła - widać, że na skrzyżowaniach krzywych jedne fragmenty poprowadzone są
„dołem”, drugie - „górą”
l d. (1)
Otóż wprowadzenie do rozważań nad węzłami grubości liny przenosi nas do dziedziny
węzłów fizycznych, w której pojawiają się nowe interesujące i ważne zagadnienia, dotyczące
tak przecież szerokiej klasy rzeczywistych obiektów. Podstawowym z nich są tzw. konformacje
idealne o minimalnej długości, ponieważ długości węzła, z uwagi na skończoną grubość liny,
nie można dowolnie zmniejszać do zera (sytuację poglądowo przedstawia rysunek 2).
W wypadku, gdy część węzła fizycznego jest ukryta przed oczami badacza w skompli-
kowanej konformacji, a więc nie znamy dokładnie przebiegu krzywej, przechodzącej przez
środki przekrojów liny (rysunek 3), ważne staje się określenie, czy konformacja jest węzłem,
czy niewęzłem. Praca niniejsza porusza częściowo to zagadnienie.
Wreszcie sprawa konformacji gordyjskich liny idealnej, najważniejsza w tej pracy: w wy-
niku zaciskania niektórych konformacji węzłów trywialnych (skracania np. algorytmem BA-
SONO, opisanym w paragrafie 2.3) można dojść do takich konformacji, w których dalsze
zaciskanie nie jest możliwe, a jednak węzły nie przechodzą do konformacji trywialnej. W wy-
padku liny idealnej, której promień przekroju uznajemy za nieskończenie twardy, zaciskanie
zatrzymuje się przy osiągnięciu minimalnej długości dla danej konformacji (w przybliżeniu
oddaje to zachowanie lin i innych podobnych obiektów fizycznych). Uzyskuje się więc konfor-
mację idealną, która wygląda jak węzeł, ale krzywa poprowadzona przez środki przekrojów
liny jest niewęzłem (rys. 4).
Jeśli tak jest, to z uwagi na brak możliwości jakiegokolwiek ruchu, bez wydłużenia liny
2
Rysunek 2: Pierwszy obrazek to węzeł trójlistny zawiązany na linie idealnej w konformacji idealnej (o
minimalnej długości liny). Próba zawiązania go na linie o długości mniejszej niż minimalna nie powiedzie
się (obrazek drugi).
3
Rysunek 4: Węzeł gordyjski typu 611 6. Choć sprawia pozór węzła nietrywialnego, jest to skomplikowana
konformacja niewęzła (węzła trywialnego).
nie da się jej przeprowadzić do konformacji trywialnej. Przede wszystkim takie właśnie kon-
formacje, nazywane węzłami gordyjskimi (pomimo, że krzywa poprowadzona przez środki
przekrojów liny takich konformacji jest niewęzłem), były w tej pracy rozważane i badane.2
Metodologią badania była symulacja komputerowa przy pomocy specjalnie w tym celu
napisanego programu. W szczególności chodziło o odpowiedź na pytanie, czy dany węzeł gor-
dyjski, zaplątany na kawałku liny o ustalonej długości, da się rozplątać w wyniku losowych
gięć liny typu crankshaft motions (paragraf 2.2.1). Gięcia takie są fluktuacjami położeń frag-
mentów liny, a powodem tych fluktuacji mogą być oddziaływania wewnętrzne węzła, których
intensywność zależy od temperatury. Jeśli odpowiedź na to pytanie w przypadku konkretne-
go węzła jest twierdząca, a więc gdy udało się węzeł rozplątać w wyniku ruchów tego typu,
następne pytanie brzmiało: jak musi być minimalnie zwiększony stosunek długosci liny do
jej grubości względem konformacji idealnej, żeby takie rozplątanie mogło zajść samoistnie?
3
Ponadto badano zależność długości symulacji, mierzonej ilością gięć do momentu, który
uznany został za rozplątanie węzła, od długości liny w konformacji gordyjskiej.4
2 Być może poprawniejszym, ale i mniej „chwytliwym” sformułowaniem tytułu byłoby „Spontaniczne
rozplątywanie konformacji gordyjskich liny idealnej”. Jednak ponieważ niewęzeł uznaje się w języku polskim
również za węzeł, tyle że trywialny, pozostawiono obecny tytuł pracy.
3 Węzeł maksymalnie zaciśnięty nie da się rozplątać, gdyż w takiej konformacji lina o ustalonej grubości nie
ma żadnej możliwości ruchu. Ale okazuje się, że pewne konformacje, pomimo, że zostawi im się nieco miejsca
na ruch, prawdopodobnie nie rozplączą się lub nie nastąpi to w ograniczonym czasie trwania symulacji z
uwagi na zbyt małą ilość swobodnej liny lub na znikomo małe prawdpodobieństwo takiego zajścia.
4 Można wizualnie i kontrolując wybrane parametry symulacji wyróżnić fazy rozplątywania węzła gordyj-
4
W części teoretycznej w rozdziale 3.1 przedstawione zostały narzędzia matematyczne
niezbędne do opisu zachowania się ciał doskonale sztywnych i sposób ich zastosowania do
modelowania fizyki liny idealnej. Rozważona została kwestia zgodności procesu symulacji z
zasadami zachowania pędu i momentu pędu (rozdział 4). Sformułowano takie warunki, dzięki
którym zasady te są spełnione (głównie dla celów wizualizacji). Ponadto w części teoretycznej
(rozdział 1) przedstawiono metody badawcze, wśród których kluczową rolę odgrywają metody
Monte Carlo (paragraf 2.2.2) w połączeniu z algorytmami BASONO (paragraf 2.3) i BONO
(paragraf 2.2). W przedostatnim rozdziale (5) opisano program symulacyjny, jego główne
klasy i funkcje składowe a także algorytmy autora pracy, mające na celu zwiększenie szybkości
obliczeń.5 W ostatnim rozdziale (6) zaprezentowano oraz omówiono wyniki badań procesu
rozplątywania kilku wybranych węzłów gordyjskich.
Na koniec wstępu, autor chciałby jeszcze przeprosić za niedoskonały styl, jakiego używał,
pisząc pracę. Na swoje usprawiedliwienie ma jedynie to, że starał się, aby wszystko było
ścisłe, jak tylko się dało. Zdaje on sobie sprawę, że, w związku z tym, pracy nie czyta się „ jak
powieści kryminalnej” lecz czasem wyjątkowo ciężko. Pisanie prac i artykułów naukowych w
sposób lekki i przystępny, a zarazem wystarczająco ścisły, jest wielką sztuką i umiejętność
tę często zdobywa się latami. Pewną rekompensatą mogą być liczne ilustracje, które mówią
zazwyczaj więcej (i jaśniej) niż tysiące słów.
skiego oraz coś w rodzaju „przejścia fazowego”, po którym zachodzą gwałtowne zmiany w procesie rozpląty-
wania.
5 Było to zadaniem należącym do dziedziny inżynierii programowania, nierozłącznie jednak związanym z
5
Rozdział 1
Węzły fizyczne
6
Rysunek 1.1: Ruchy Reidemeister’a: pierwszy dodaje lub usuwa pętlę na projekcji węzła, drugi dodaje lub
usuwa dwa skrzyżowania, trzeci przesuwa linę z jednej strony skrzyżowania na drugą.
obiektu. Reprezentacja tego modelu w programie symulacyjnym omówiona jest w paragrafie 5.2.
7
Rysunek 1.2: Model liny idealnej L(r, l). Na rysunku linią przerywaną zaznaczono także krzywą środkową
liny C oraz jeden z przekrojów.
1. jest to bryła 3D - ciągły w R3 zbiór kół o tej samej i niezmiennej średnicy d = 2r > 0,
koła te nazywamy przekrojami liny,
2. środki przekrojów liny leżą na jednej krzywej ciągłej (w tej samej przestrzeni), nazy-
wanej tutaj środkową liny C, o krzywiźnie k > 0 w dowolnym jej punkcie,
8
Rysunek 1.3: Lina idealna w konformacji otwartej oraz zamkniętej. Jeśli w konformacji zamkniętej
wybierzemy jakiś przekrój jako początkowy, to staje się on zarazem przekrojem końcowym.
będziemy jej konformacjami. Wyróżnić można przede wszystkim dwa rodzaje konformacji:
konformacje zamknięte i otwarte (rysunek 1.3). W konformacji otwartej można wyróżnić
przekrój początkowy i końcowy jako nietożsame. W konformacji zamkniętej nie jest to moż-
liwe.
Z matematycznego punktu widzenia, środkowa każdej konformacji zamkniętej liny L(r, l)
jest węzłem, a więc w niniejszej pracy dla uproszczenia zamknięte konformacje nazywać
będziemy węzłami W (r, l) Godnym uwagi wnioskiem powyższych stwierdzeń jest, że węzłowi
trywialnemu W (r, 2πr) odpowiada tylko jedna (minimalna co do objętości, pola powierzchni
i długości liny) konformacja - torus.
Objętość liny jest sumą objętości, a powierzchnia - sumą powierzchni bocznych walców o
infinitezymalnych długościach i nieskończenie krótkich fragmentów torusów. Te ”infinitezy-
malne” bryły wydzielone są w linie przez dwa dowolne jej przekroje, między którymi długość
wycinka krzywej środkowej jest również infinitezymalna.
my dokonujące transformacji na węźle - BONO (2.2) oraz BASONO (2.3), nie podaje się ścisłych dowodów
matematycznych, a jedynie mocne przesłanki sugerujące, że efekt działania tych algorytmów jest taki, jak
podpowiada intuicja.
9
Z fizycznego punktu widzenia pierwszy warunek uwzględnia, że lina nie ulega deforma-
cjom przekroju, czyli jest nieskończenie twarda dla sił ściskających w poprzek przekroju.
Punkt czwarty definicji warunkuje minimalny promień krzywizny środkowej a także, obrazo-
wo mówiąc, zakazuje przekrywania się fragmentów liny, co w połączeniu z jej nieskończoną
twardością, ogranicza od dołu objętość przestrzeni zajmowanej przez linę. Ostatni warunek
traktujący o stałej długości liny idealnej można zinterpretować jako całkowitą niepodatność
na siły ściskające i rozciągające wzdłuż środkowej (wynika też z niego ograniczenie objętości
liny o stałej średnicy od góry). Przyjęta definicja, ogranicza od góry krzywiznę środkowej,
lecz nie narzuca ograniczeń na zmiany tej krzywizny i jej promienia, pod warunkiem, że
będzie on większy lub równy r. Oznacza to z fizycznego punktu widzenia, że lina jest podat-
na na gięcia, czyli, że moment gnący środkową nie spotyka nieskończenie dużej reakcji. W
szczególnym przypadku można przyjąć, że reakcja ta jest równa zeru, a więc, że wyginanie
liny nie wiąże się z powstawaniem żadnych sił i momentów sił.
Warto założyć również, że lina posiada masę, co nadaje jej bardziej fizyczny charakter.
Dla uproszczenia przyjmiemy w tej pracy, że jeśli lina ma masę, to jest ona rozłożona rów-
nomiernie wzdłuż długości liny, a więc, na przykład, że jej środkowa posiada gęstość liniową
ρ. W takiej sytuacji dowolną zmianę konformacji należałoby przeprowadzić tak, że spełnio-
ne zostają jednocześnie zasady zachowania pędu i momentu pędu. Warunki te zostały w
programie symulacyjnym uwzględnione. Szczegóły znajdują się w rozdziale 4.
• których środkowe (i każda zamknięta krzywa, przechodząca wewnątrz liny tylko raz
przez każdy jej przekrój) są w matematycznym sensie węzłami trywialnymi,
• i z konformacji idealnej nie da się ich (bez wydłużenia lub przecinania liny) doprowadzić
żadną ciągłą w R3 transformacją do konformacji torusa.
O konformacji idealnej mowa jest w paragrafie 2.3 następnego rozdziału. Przez ciągłość
transformacji w ostatnim punkcie rozumie się, że dla każdych dwóch dowolnie bliskich kon-
formacji, między którymi istnieje taka ciągła w R3 transformacja i dla których spełniona jest
3 Przymiotnik gordyjski oznacza to, co w starożytności, a więc węzeł, którego, nie da się rozplątać.
10
Rysunek 1.4: Etapy tworzenia węzła gordyjskiego typu 311 3: A - tworzenie dwóch „guzłów” (zgrubień) na
końach liny wskutek stworzenia pętli i poprowadzenia przez nie końców liny, B - wyciąganie liny z obu
stron, w celu utworzenia pętli, C - zarzucanie pętli na guzły. Czarną kreską zaznaczono linę, szare strzałki
pokazują kierunki przeciągania liny.
definicja liny idealnej, istnieje konformacja pośrednia, w której definicja liny idealnej jest dla
tej konformacji również spełniona.
Mówimy w tej pracy, że konformacje gordyjskie są zaplątane (w j. angielskim entangled ),
w przeciwieństwie do węzłów nietrywialnych które są zawiązane (j.ang. knotted ). Sposób
„plątania” zamkniętej konformacji liny w węzeł gordyjski typu 311 3 pokazany jest na ry-
sunku 1.4. Rysunek 1.5 pokazuje dwa trójwymiarowe rzuty jednego z końców tego węzła w
programie symulacyjnym w stanie dużego poluźnienia. Dwa końcowe etapy zaciskania końca
tego węzła gordyjskiego pokazuje rys. 1.6. Z obu rysunków widać dobrze, że przy zaciskaniu,
zaznaczona czerwoną kreską pętla nie zsunie się. Doprowadzi natomiast do konformacji, w
której dalsze zaciskanie nie będzie możliwe.
W opisany na rysunku 1.4 sposób można zaplątać różne węzły, w zależności od tego, jak
mocno skomplikujemy „guzeł” tworzony w etapie A a następnie wybierając różne sposoby
nałożenia pętli (koniec liny, który tworzy pętlę można skręcić dowolną ilość razy).
11
Rysunek 1.5: Dwa widoki jednego z końców węzła 311 3 w trójwymiarowym rzucie. Pętla którą zakłada się
w etapie C z rysunku 1.4 została zaznaczona czerwoną kreską.
Rysunek 1.6: Końcowe etapy zaciskania końca węzła 311 3 z poprzedniego rysunku 1.5. Zaciskanie węzła,
zaciska również pętlę (zaznaczona czerwoną kreską) na zaplątanym „guźle”, przez co nie może się ona
zsunąć, a dalsze zaciskanie nie jest możliwe.
12
Rozdział 2
3. Jeśli w wyniku gięcia fragmenty liny przekrywają się, przywracamy stan poprzedni.
4. Wracamy do punktu 1.
Jeśli w punkcie 3 algorytmu nie nastąpiło przekrycie, można nałożyć na gięcie inne wa-
runki - na przykład przy zastosowaniu algorytmu Metropolisa-Hastingsa sprawdza się, jak
13
zmieniła się zdefiniowana wcześniej zmienna zależna od geometrii węzła (np. energia). W
zależności od tego przywraca się stan poprzedni, lub akceptuje efekt takiej transformacji. W
następnym kroku powtarza się opisane czynności (powrót do punktu 1) i tak aż do uzyskania
spodziewanego efektu działania opisanej metody.
Implementacja algorytmu BONO dla przyjętej reprezentacji liny w programie (paragraf
5.2) jest ułatwiona, ponieważ model ten jest jednoznacznie zidentyfikowany przez określony
zbiór punktów rozmieszczonych wzdłuż krzywej środkowej. Nie dokonuje się więc w sposób
bezpośredni złożonych matematycznie i fizycznie transformacji powierzchni liny. Zadowala-
jący efekt uzyskuje się poprzez transformacje ortogonalne (paragraf 3.1) podzbiorów zbioru
punktów liny, związanych z jej wybranymi fragmentami. W związku z charakterem tego typu
transformacji, długość liny (mierzona jako suma długości odcinków łamanej o wierzchołkach
leżących na środkowej węzła) w trakcie działania algorytmu nie zmienia się.1
Szczegóły zasad działania algorytmu BONO opierają się na kilku znanych metodach sto-
sowanych w obliczeniach numerycznych i omówione są w niniejszym rozdziale w następnych
paragrafach.
powiednio skalując węzeł. W razie potrzeby wyrównuje się też długości segmentów. Warto jednak zauważyć,
że tak zdefiniowana długość liny jest mniejsza od długości jej środkowej. Jednak różnica ta szybko zbliża się
do zera wraz ze wzrostem ilości wierzchołków łamanej.
2 Model ten stosuje się też w innych badaniach. Na przykład w fizyce molekularnej do opisu zmian układu
atomów w cząsteczkach.
14
Rysunek 2.1: Ruch wybranego fragmentu liny przeprowadzamy na zasadzie analogii do ruchu wału
korbowego.
nych, jest tzw. efekt motyla. W ramach teorii chaosu wykazuje się, że trzepot motylich skrzydeł po jednej
stronie planety może być po pewnym czasie powodem huraganu po drugiej stronie.
15
zadaniem karkołomnym lub po prostu niewykonalnym.
Metody Monte Carlo wykorzystują moc obliczeniową komputerów do badania ogromnej
przestrzeni stanów złożonych układów w sposób przypadkowy, dając układom możliwość
„błądzenia” po tej przestrzeni, zachowując przy tym prawa obowiązujące dla układu w każ-
dym ze stanów i zapewniając, że przejście pomiędzy stanami jest możliwe. Wiele różnych
stanów układu wykazuje podobieństwa i takie „przemiatanie” po ich przestrzeni daje moż-
liwość przyjrzenia się (zbadania, wykonania obliczeń) szerokiej gamie różnych możliwych
realizacji stanów tego układu. Wyniki można wykorzystać do obliczenia średnich wielkości
zmiennych systemu, ich momentów statystycznych, a także, poprzez zbadanie wielu możliwo-
ści i arbitralne ustalenie prawdopodobieństw zajść wybranych procesów w układzie, dotarcie
do stanów specjalnie dla badacza interesujących. W związku z tymi zaletami metody Monte
Carlo są bardzo szeroko stosowane w fizyce komputerowej, a także w informatyce w zagadnie-
niach optymalizacyjnych. Stosuje się je też do przybliżonego rozwiązywania złożonych ukła-
dów równań opisujących skomplikowane systemy, a zwłaszcza do całkowania, różniczkowania
itp. gdzie przewaga algorytmów Monte Carlo w porównianiu do innych metod numerycznych
staje się wyraźnie widoczna wraz ze wzrostem liczby wymiarów badanego systemu.
Naturalnie w programie komputerowym korzysta się z tzw. pseudolosowych rozkładów
liczb, co oznacza, że symuluje się numerycznie generowanie zmiennej losowej zgodnie okre-
ślonym rozkładem. Generator liczb pseudolosowych powinien być w odpowiedni sposób prze-
testowany dla wielu generowanych liczb, aby poza właściwościami rozkładu nie pojawiały się
w nim inne zależności.4 Źle dobrany generator może wpłynąć na zachowanie układu podczas
symulacji, gdyż możliwe jest pojawienie się korelacji pomiędzy jego ukrytymi zależnościa-
mi, a zachowaniem systemu, które w naturalnych warunkach (gdzie mamy do czynienia z
rzeczywistymi zmiennymi losowymi) by nie wystąpiło.
W pracy niniejszej wykorzystano metody Monte Carlo do sprawdzenia, czy tak losowo
„wędrujące” po swych przestrzeniach dozwolonych stanów węzły gordyjskie rozplątują się,
czy nie, a więc, czy przechodzą do konformacji trywialnych. Okazuje się, że tak, ale nie dla
każdego wydłużenia węzła gordyjskiego z konformacji idealnej nastąpiło to w czasie trwania
symulacji. Wszystko wskazuje na to, że poniżej pewnej długości węzła, prawdopodobieństwo
rozplątania w „rozsądnym” czasie jest albo zerowe albo tak małe, że nie warto na to czekać.
Więcej na ten temat w rodziale 6 przedstawiającym wyniki badań węzłów gordyjskich.
4 Można je wychwycić, na przykład, badając momenty statystyczne, czyli odchylenia od średnich, jak
odchylenie standardowe. Przykładowo - dla zmiennej losowej z rozkładem równomiernym średnie odchylenie
dodatnie musi być równe ujemnemu.
16
2.2.3 Procesy stochastyczne, procesy Markowa
Proces stochastyczny to funkcja losowa, czyli funkcja matematyczna, której wartości le-
żą w przestrzeni zdarzeń losowych. Innymi słowy, pewnej wielkości (jakiemuś człowiekowi,
liczbie, chwili czasu, punktowi płaszczyzny) przypisane jest zdarzenie losowe (wzrost, losowo
wybrana liczba, wartość waluty wg notowań giełdowych, liczba rzeczywista). Matematycznie,
proces stochastyczny jest zazwyczaj definiowany jako rodzina zmiennych losowych:
(Xt , t ∈ T ) (2.1)
najszerszym miejscu. Zagadnienie jest jednak pod względem geometrycznym znacznie bardziej złożone.
6 Na przykład okazuje się, że gdy pętla okalająca „guzeł” węzła przejdzie z powrotem na drugą stronę i w
ten sposób uwolni się, to dalej węzeł poddany BONO bardzo szybko rozplątuje się do konformacji trywialnej.
17
Rysunek 2.2: Węzeł gordyjski 611 6 o długości 257 przed- i po zastosowaniu algorytmu
Metropolisa-Hastingsa (około 10 tysięcy udanych gięć), w którym uprzywilejowano gięcia oddalające od
siebie segmenty liny o maksymalnie odległych indeksach (dla indeksu k takim segmentem jest ten o indeksie
k + n/2, gdzie n jest ilością segmentów liny.
Uruchamiając symulację BONO, czyli badając pewien szczególny proces Markowa dla
wybranego węzła, pozwalamy mu „błądzić” po przestrzeni stanów, mając nadzieję, że po
wystarczająco długim czasie, nastąpi rozplątanie węzła z konformacji gordyjskiej. Jeśli jest
to możliwe, to na pewno nastąpi to po czasie nieskończonym, ale tak długo czekać nie chcemy
(i nie możemy). Jeśli przestrzeń możliwych stanów układu jest bardzo duża w porównaniu
do podzbioru tej przestrzeni, który nas szczególnie interesuje, przejście do tego podzbioru w
czasie symulacji może okazać się nieosiągalne. Algorytm Metropolisa-Hastingsa został zaim-
plementowany w programie w celu wymuszenia „podróży” węzła w pżybliżonym kierunku
stanu o określonej geometrii. Na przykład, jeśli chcemy rozsunąć od siebie dwa końce węzła
gordyjskiego w programie, to ręczne manipulacje (wyginanie wybranych fragmentów liny)
zajęłyby bardzo dużo czasu. Zastosowanie algorytmu Metropolisa-Hastingsa (opisanego po-
krótce w dalszych akapitach) na domowym komputerze pozwala to osiągnąć w czasie rzędu
kilku sekund (rys. 2.2).
W skrócie: algorytm Metropolisa-Hastingsa to algorytm „próbkujący” kolejne stany pro-
cesu Markowa i odrzucający je lub akceptujący na bazie określonego rozkładu gęstości praw-
dopodobieństwa stanów względem wybranej zmiennej, którą obliczamy dla stanu poprzed-
Ten sam proces, ale przebiegający w odwrotnym kierunku jest tak mało prawdopodobny, że gdyby nawet
zaszedł, nikt rozsądny nie uwierzyłby, że wynik takiej symulacji nie został spreparowany. Czy szanownemu
czytelnikowi zawiązały się kiedyś spontanicznie sznurowadła?
18
niego i następnego (próbkowanego). Rozkład prawdopodobieństwa można dowolnie wybrać,
ale aby algorytm dobrze oddawał procesy fizyczne, powinien być to jakiś charakterystyczny i
realny rozkład końcowy (np. w wypadku energii całowitej układu - rozkład Boltzmanna dla
układu cząsteczek, Fermiego dla elektronów itp). Nie będziemy tu wnikać w podstawy teore-
tyczne (dość złożone). Działanie algorytmu można przedstawić tak, by w kontekście badania
węzłów, było intuicyjnie zrozumiałe, omówione ono zostanie na poniższym przykładzie.
Aby uzyskać efekt rozsunięcia fragmentów liny wewnątrz węzła, przypisuje się mu para-
metr E analogiczny do potencjalnej energii odpychania kulombowskiego (i nazywany dalej
energią). Każdemu fragmentowi liny przyporządkowany jest nieruchomy „ładunek” bliżej
nieokreślonego rodzaju (ale mógłby to być ładunek elektrostatyczny), który z ładunkiem
każdego innego fragmentu liny oddziałuje odpychająco. Inaczej mówiąc, energia potencjalna
takiego oddziaływania jest dodatnia i maleje wraz z odległością. 7 Przyjmuje się, że energia
ta jest odwrotnie proporcjonalna do wybranej potęgi odległości a całkowita energia węzła
dana jest wzorem:
n n
X X a
E= Ei j = w, (2.2)
rij
i6=j i6=j
gdzie Ei j jest energią pary punktów o indeksach i i j, rij jest odległością tej pary, a jest
jakimś współczynnikiem proporcjonalności, a w - dobieralnym wykładnikiem potęgi odległo-
ści. Poprzez wybór wykładnika tej potęgi, można regulować stosunek wkładu do sumarczynej
energii odpychania w węźle, pochodzący od sąsiednich fragmentów i od fragmentów oddalo-
nych. Prawdpodobieństwo P (E1 , E2 ) przejścia z układu o energii E1 do układu o energii E2
określa stosunek czynników boltzmanowskich
−E2
exp kb T
E1 − E2
u= = exp (2.3)
exp −E1 kb T
kb T
układu przed i po zmianie (w ustalonej temperaturze), przy czym jeśli ten stosunek jest
większy lub równy 1, to przyjmuje się prawdpodobieństwo równe 1:
(
1, E2 6 E1
P (E1 , E2 ) = (2.4)
u, E2 > E1
Losuje się następnie liczbę z rozkładem równomiernym na przedziale od 0 do 1 i jeśli licz-
ba ta jest mniejsza od P (E1 , E2 ), przyjmuje się stan o energii E2 . A więc jeśli energia układu
maleje lub nie zmienia się, akceptujemy taki ruch. Jeśli jest większa, wtedy akceptujemy z
7 Gradient tej energii wzdłuż prostej łączącej środki ładunków jest siłą oddziaływania skierowaną przeciw-
nie względem środka odcinka łączącego te ładunki. Stąd odpychający kierunek siły.
19
Rysunek 2.3: Węzeł gordyjski 611 6 o długości 257 przed- i po zastosowaniu algorytmu
Metropolisa-Hastingsa (około 100 tysięcy udanych gięć), w którym uprzywilejowano gięcia oddalające od
siebie bliskie segmenty liny, nadając każdej parze punktów energię odpychającą silnie malejącą wraz z
odległością (jak d−8 , gdzie d to odległość pary punktów).
20
Rysunek 2.4: Węzeł 311 3 luźny i bardziej zaciśnięty (kilka sekund działania algorytmu SONO.SP)
21
Rysunek 2.5: Węzeł 311 3, w zupełnie przypadkowej konformacji, przed skalowaniem i przeskalowany o
zaledwie 1% w dół. Pojawienie się ciemnoczerwonego koloru na fragmentach liny oznacza przekrycia.
nim etapie zaciskania zmniejsza fluktuacje długości wynikające z dyskretności modelu i nierównomiernej,
segmentowej, powierzchni liny (patrz paragraf 5.2).
22
Rysunek 2.6: Zasada ściągania węzła polega na prostowaniu łuków liny. Oczywistym jest, że odległość d2
dwóch punktów liny, które wcześniej były na łuku, po prostowaniu łuku i równomiernym rozmieszczeniu na
jego cięciwie, jest mniejsza niż początkowa d1 .
łuków bez przesuwania innych fragmentów liny nie może trwać bez końca i gdyby nie inne
współpracujące mechanizmy algorytmów z rodziny SONO, skracanie liny skończyłoby się na
tym etapie.9 W algorytmie BASONO najważniejszym z takich mechanizmów jest „randomi-
zacja” konformacji liny, a więc losowe jej zniekształcenie wskutek gięć węzła wykonanych z
użyciem algorytmu BONO (jeśli zastosuje się algorytm Metropolisa-Hastingsa to te losowe
gięcia mogą prowadzić do zwiększenia regularności węzła - paragraf 2.2.4, rys. 2.3). Jeśli
węzeł nie jest jeszcze do tego momentu maksymalnie zaciśnięty, prowadzą one do rozsunięcia
bliskich przekrycia fragmentów, tak, że dalsze prostowanie łuków staje się znowu możliwe
(rysunek 2.7).
Jest to sposób bardziej wydajny niż skalowanie, w wyniku którego następuje niechciane
wydłużenie węzła, a jak wiadomo, BONO nie zmienia długości liny. Stosowane są więc na
zmianę tryby zaciskania i wyginania, skąd bierze się nazwa algorytmu.
Dodatkową istotną zasadą działania algorytmu BASONO jest takie zniekształcanie wę-
zła poprzez gięcia między fazami prostowania, że średnia odległość dwóch sąsiadujących
fragmentów liny jest maksymalizowana. Osiąga się to, uruchamiając procedurę algorytmu
Metropolisa-Hastingsa podczas działania fazy BONO (opisana w paragrafie 2.2.4). Uprzywi-
lejowane są te udane (bez przekryć) gięcia, w czasie których gięty fragment liny znajduje się
bliżej środka pomiędzy fragmentami sąsiednimi. Takie ruchy akceptowane są z prawdopodo-
bieństwem równym 1. Ruchy oddalające fragment liny od tak określonego środka przyjmo-
9 W przypadku SONO.SP do mechanizmów tych należy wyrównywanie segmentów liny oraz rozsuwanie
przekryć po ściąganiu węzła. Oba z nich również działają w ramach algorytmu BASONO.
23
Rysunek 2.7: Ściąganie liny w algorytmach SONO i SONO.SP prowadzi często do szybkiego zablokowania
się algorytmów wskutek wyprostowania wszystkich możliwych łuków (obrazek pierwszy). Zastosowanie po
tej fazie losowych gięć, powoduje rozsunięcie fragmentów liny (obrazek drugi) i umożliwia dalsze ściąganie
aż do ponownego zablokowania (obrazek trzeci).
24
Rozdział 3
25
Rysunek 3.1: Przykładowy układ kartezjańskich przestrzeni trójwymiarowych, pomiędzy którymi
wprowadzamy transformację ortogonalną (szczegóły w tekście).
Niech dany będzie zbiór n punktów. Położenie i-tego punktu Ai o masie mi w kartezjań-
skim trójwymiarowym układzie współrzędnych Ox1 x2 x3 opisuje wektor, który oznaczymy
ri , a w drugim układzie Ωx01 x02 x03 punkt ten wskazuje wektor oznaczony r0 i .1 Położenie
początku układu współrzędnych Ωx01 x02 x03 w układzie Ox1 x2 x3 dane jest wektorem rΩ , jak
pokazuje rysunek 3.1:
Z rysunku 3.1 oraz poprzednich założeń wynika równość
ri = rΩ + r0i . (3.1)
3
X 3
X 3
X
xji ej = xjΩ ej + xki e0k (3.2)
j=1 j=1 k=1
1 Umówmy się, że w tej pracy wektory i punkty zapisujemy czcionką pogrubioną a zmienne skalarne
kursywą. Ponadto, z uwagi na wielość indeksów dla zmiennych, niech dolny indeks oznacza numer lub indeks
punktu bądź wektora ale w przypadku wersorów niech będzie indeksem współrzędnej; natomiast indeksem
współrzędnej w przypadku wektorów i punktów jest indeks górny. Dodatkowo niech ej stanowią wersory
układu Ox1 x2 x3 , a e0k są wersorami układu Ωx01 x02 x03 . Składowe macierzy i tensorów indeksowane są u
dołu dla estetyki i przejrzystości (nieelegancko wyglądają 2 górne indeksy)
26
lub inaczej
przy czym w drugim wypadku obowiązuje nas konwencja sumacyjna Einsteina. Zgodnie
z tą konwencją, która będzie dla zwięzłości zapisu stosowana w niniejszej pracy, sumowanie
przebiega po wymiarach przestrzeni, w której znajdują się punkty (czyli u nas od 1 do 3),
po wskaźnikach, które w danym wyrażeniu dwukrotnie się powtarzają.
W celu otrzymania m-tej składowej xm 1 2 3
i wektora ri w układzie Ox x x , należy wyrażenie
(3.3) pomnożyć skalarnie przez wektor jednostkowy em . Otrzymujemy wówczas:
gdzie δmj jest deltą Kroneckera (równą 1, gdy m = j, a w przeciwnym wypadku równą
0) i gdzie
jeśli α = ^ Oxm , Ωx0k jest kątem pomiędzy kierunkami osi: Oxm oraz Ωx0k . Prawo
gdzie Pmk0 są cosinusami kątów pomiędzy osiami układu Ox1 x2 x3 oraz układu Ωx01 x02 x03 .
Mnożąc zależność 3.3 przez e0m otrzymujemy podobnie
gdzie β = ^ Ωx0m , Oxk jest kątem pomiędzy kierunkami osi: Ωx0m oraz Oxk .
Jak widać, zależność (3.7) jest rozwiązaniem równania (3.6) względem składowych x0i m
wektora r0i w układzie Ωx01 x02 x03 . Różniczkując kolejno równania (3.6) i (3.7), otrzymujemy:
∂x0m
= Pm0 k , (3.9)
∂xk
∂xm ∂x0k
= Pmk0 = δik Pmk0 = Pmi0 , (3.10)
∂x0i ∂x0i
27
Zwróćmy teraz uwagę, że składowe wektora r0i w układzie Ox1 x2 x3 stanowią różnice
xi m −xΩ m , a w układzie Ωx01 x02 x03 są współrzędnymi x0i m . Gdyby wektor r0i nie był zaczepiony
w punkcie Ω (ani dla odmiany w punkcie O), wówczas składowe xm m
i − xΩ przeszłyby w
0m
∆xm
i = xi2
m
− xm
i1 , a składowe xi w ∆x0i m = x0i2 m − x0i1 m .
Na podstawie wzorów (3.7) i (3.6) oraz pamiętając o (3.9) i (3.10) stwierdzamy, że:
W pracy tej przyjmę konwencję, że [Mij ] oznacza składowe Mij zebrane w macierz, gdzie
zmieniają się indeksy i (wiersz macierzy) oraz j (kolumna). Natomiast w przypadku wekto-
rów w = [wi ], gdzie wi oznacza i-tą składową wektora w. Podobnie wiersz macierzy możemy
potraktować jak wektor, np. [M1j ] oznaczać będzie pierwszy wiersz macierzy M = [Mij ].
W związku z tym wzór (3.14) wiąże się z faktem, że macierz składowych transformacji
P = [Pmj 0 ] z układu odniesienia do primowanego jest macierzą transponowaną do macie-
rzy transformacji odwrotnej (z układu primowanego do układu odniesienia) PT = [Pj 0 m ]. W
wypadku omawianych macierzy składowych transformacji ortogonalnych spełniona jest więc
zależność następująca:
P−1 = PT (3.15a)
lub inaczej
−1
[Pmj 0 ] = [Pj 0 m ] , (3.15b)
a więc macierz odwrotna do danej jest równa swojej transpozycji (stąd w programie
komputerowym, zamiast szukać algebraicznie macierzy odwrotnej do danej macierzy prze-
28
kształcenia ortogonalnego, wystarczy zamienić jej indeksy). Macierze spełniające podaną
wyżej własność, nazywa się macierzami ortogonalnymi.
0j
ri = [ri m –rA m ] · [Pmj 0 ] = [Pj 0 m ] · [ri m –rA m ] . (3.16)
29
racanego układu. Wtedy jego rzutowanie na wybraną oś drugiego układu (w tym wypadku
układu odniesienia), jest równe kosinusowi pomiędzy jedną a drugą osią, a zarazem, zgod-
nie z rozważaniami z poprzedniego paragrafu 3.1, jest to również jeden ze współczynników
transformacji pomiędzy układami.
Dla znalezienia pierwszej trójki kosinusów ustalamy najpierw, wokół której osi obracamy
układ Ax01 x02 x03 , a więc który wersor wyznaczać będzie oś obrotu. U nas niech będzie to
Ax03 w układzie obracanym (zwyczajowo nazwalibyśmy go Az 0 ). Wersorem tej osi jest e03 .
Jest to więc jednoznaczne z ustaleniem indeksu j 0 = 3, czyli również wyborowi trzeciej ko-
lumny macierzy [Pmj 0 ] lub trzeciego wiersza macierzy transponowanej do [Pmj 0 ] czyli [Pj 0 m ].
Następnie dzielimy po prostu współrzędne wektora rAB przez jego długość, dostając w ten
sposób składowe wektora jednostkowego, czyli wersora. Mamy więc już tym samym szukane
kosinusy, czyli trójkę składowych transformacji. Opisuje to poniższy wzór (3.17) 2 .
m
rAB rm
Pm30 = = p mAB m . (3.17)
|rAB | rAB · rAB
Mając dane współrzędne wersora e03 leżącego na osi wyznaczonej przez punkty A i B,
z iloczynu wektorowego tego wersora przez dowolny nierównoległy doń wektor wyznaczyć
można wersor prostopadły do wersora e03 , a w więc skierowany tak, jak oś prostopadła do
wybranej osi obrotu Ax03 . Jego składowe będą jednocześnie, podobnie jak poprzednio, skła-
dowymi macierzy transformacji ale o zmienionym indeksie j 0 6= 3. Aby uzyskać te składowe,
wystarczy wektorowo pomnożyć wersor obrotu e03 przez dowolny wektor rd , pod warunkiem,
że nie będzie to wektor zerowy lub równoległy do tego wersora. Następnie składowe tak uzy-
skanego wektora dzieli się przez jego długość. Formuła matematyczna realizująca opisany
powyżej algorytm wyraża się wzorem (3.18) poniżej 3 .
e03 × rd
e0j6=3 = . (3.18)
|e03 × rd |
Mając ustalone dwa prostopadłe do siebie wektory jednostkowe (w tym jeden - e03 - leżą-
cy na osi obrotu), z łatwością uzyskamy brakujący trzeci, mnożąc je przez siebie wektorowo.
2 Pamiętajmy przy tym, że na mocy konwencji sumacyjnej w nawiasie pod pierwiastkiem mamy sumę
kwadratów (co wynika z twierdzenia Pitagorasa).
3 Wybór wektora r , przez jaki przemnażamy wersor e0 w układzie odniesienia jest, jak powiedziano, dowol-
d 3
ny. Innymi słowy - możemy wybrać nieskończoną ilość nieekwiwalentnych kartezjańskich układów związanych
osią Ax (ściślej: z dowolną wybraną osią) z obracanym zbiorem punktów. Tylko jeden wersor - u nas e03 -
03
jest z góry jednoznacznie zdefiniowany: zaczepiony w punkcie A i wskazujący punkt B. Ale - co jest ważne z
punktu widzenia programisty - w czasie pisania kodu, należy zachować ostrożność i upewnić się, że ten dowol-
ny wektor nie jest równoległy do wersora e03 . W przeciwnym razie wynikiem mnożenia wektorowego będzie
oczywiście wektor zerowy, a dzielenie składowej przez jego długość zaowocuje błędem niedozwolonej opera-
cji matematycznej, co w najlepszym wypadku spowoduje wyjątek krytyczny, a prawdopodobnie spowoduje
zawieszenie się programu.
30
Aby wersory były względem siebie tak zorientowane, jak to się zwykle przyjmuje w mechanice
klasycznej, a więc by tworzyły układ prawoskrętny (jeśli kąt dodatni na płaszczyźnie wyzna-
czonej przez dwie osie odmierzany jest przeciwnie do ruchu wskazówek zegara, to dodatni
kierunek trzeciej osi jest w stronę obserwatora), przyjmę indeks drugiego z otrzymanych
wersorów e0j jako równy j 0 = 2 i wtedy trzeci wersor e01 otrzymujemy z iloczynu wektorowego
Współrzędne tego wersora w układzie odniesienia, czyli pierwszą kolumnę macierzy trans-
formacji [Pmj 0 ] lub (na mocy wcześniejszych stwierdzeń) pierwszy wiersz macierzy transfor-
macji odwrotnej [Pj 0 m ] uzyskamy wedle znanej formuły na iloczyn wektorowy, traktując
wiersze lub kolumny macierzy jako wektory:
Oczywiście ekonomiczniej jest uzyskać w wyniku obliczeń albo wiersze jednej macierzy,
albo kolumny drugiej, a nie obliczać obie macierze oddzielnie. Jedną macierz uzyskamy z
drugiej szybciej w wyniku transpozycji, która jest jedynie zamianą indeksów.
Otrzymaliśmy w ten sposób w nieruchomym układzie odniesienia wersory układu (trzy
współrzędne dla każdego wersora), mającego podlegać obrotowi. Ich składowe są zarazem,
jak kilkukrotnie zaznaczono, współczynnikami przekształcenia z układu odniesienia Ox1 x2 x3
do obracanego Ax01 x02 x03 lub odwrotnie, czyli składowymi macierzy przekształcenia wekto-
ra ri0 j wskazującego i-ty punkt. W procesie przechodzenia z jednego układu do drugiego
−1 T
[Pmj 0 ] = [Pj 0 m ] = [Pmj 0 ] . (3.22)
Obrotu i-tego punktu wokół osi Ax03 dokonuje się już na wektorze ri0 j . Obliczony
31
on został przy pomocy równania (3.16). Równanie to wyraża w tym wypadku tymczasowe
(niejako wirtualne) przekształcenie ortogonalne: przesunięcie środka A obracanego układu
Ax01 x02 x03 , w którym znajdują się wybrane punkty o wektor −rA do środka O układu od-
niesienia Ox1 x2 x3 . Następnie dokonuje się obrotu wybranego zbioru wektorów wskazujących
punkty. Wykonuje się go przy pomocy jednej z macierzy [Pmj 0 ] lub [Pj 0 m ] (wybór zależy od
tego, czy mnożymy lewo- czy prawostronnie, a więc czy mnożymy macierz przez wektor, czy
wektor przez macierz).4 Dopiero wówczas w celu dokonania rotacji wokół jednej z wybra-
nych osi o kąt ψ - można zadziałać na wektor ri0 j (wskazujący wybrany punkt) właściwą
macierzą. Działanie oznacza tu iloczyn wewnętrzny macierzy przez wektor. Postać macierzy
rotacji uzależniona jest od tego, wokół której osi punkt ten obracamy. Poniżej podane są
macierze obrotu o kąt ψ dla kierunków, odpowiednio, Ax01 , Ax02 , Ax03 5 :
1 0 0
Rx (ψ) = [Rxjm (ψ)] = 0 cos ψ − sin ψ , (3.23a)
0 sin ψ cos ψ
cos ψ 0 − sin ψ
Ry (ψ) = [Ryjm (ψ)] = 0 1 0 , (3.23b)
sin ψ 0 cos ψ
cos ψ − sin ψ 0
Rz (ψ) = [Rzjm (ψ)] = sin ψ cos ψ 0 . (3.23c)
0 0 1
Powrotu do układu odniesienia dokonuje się poprzez przekształcenie odwrotne i przesu-
nięcie odwrotne (czyli o wektor rA ) w podanej kolejności (a więc w kolejności odwrotnej do
uprzedniego wykonania tych działań w (3.16)). Ostatecznie cała formuła matematyczna na
wektor i-tego punktu ri (ψ) = [ri m (ψ)] w układzie odniesienia po obrocie o kąt ψ względem
wybranej osi Ax03 przyjmuje postać:
4 Całe to przekształcenie to nazwane jest wirtualnym, ponieważ po obrocie dookoła wybranej osi przywra-
camy stan poprzedni, a więc wykonujemy przekształcenia odwrotne. Pojawia się tu zagadnienie „dualizmu”
wykonywanych przekształceń. Każde z nich jest wykonywane względem jakiegoś punktu odniesienia. Np.
przesunięcie układu punktów o wektor możemy raz potraktować jako rzeczywiste przesunięcie, a innym ra-
zem jedynie jako zmianę układu odniesienia. W tym wypadku chwilowo zmieniamy układ odniesienia tak,
żeby na układ punktów zadziałać macierzą obrotu wokół jednej z trzech głównych osi układu. Po obrocie
wracamy z całym zbiorem punktów do współrzędnych w starym układzie.
5 Zwyczajowo w układzie odniesienia są to obroty wokół osi Ox, Oy ,Oz, stąd notacja macierzy w równa-
32
ri (ψ) = rA + PT · Rz (ψ) · r0i (ψ) =
(3.24a)
= rA + PT · Rz (ψ) · P · (ri –rA ) ,
[ri m (ψ)] = [rA m ] + [Pmj 0 ] · [Rzjk (ψ)] · [Pj 0 m ] · [ri m –rA m ] , (3.24b)
M = M1 · M2 · M3 . . . (3.25a)
i zastąpić
v2 = v1 · M1 · M2 · M3 . . . (3.25b)
przez
v2 = v1 · M (3.25c)
Tak więc kilka mnożeń przy pomocy kilku macierzy można zastąpić jednym mnożeniem w
tej samej przestrzeni. Jeśli jednak - tak jak jest w ogólnym przypadku obrotów wokół dowolnej
osi (patrz równanie (3.24b))- mamy, oprócz mnożeń, także dodawanie lub odejmowanie, to
sprawa się komplikuje. Zastąpienie kilku działań jednym należy poprzedzić zwiększeniem
ilości współrzędnych wektorów o jedną, i przeniesienie wektorów do układu współrzędnych
jednorodnych, a następnie zdefiniowaniu macierzy realizującej dodawanie lub odejmowanie
do współrzędnych z układu trójwymiarowego. Podamy przykładowo realizację dodawania
wektora w2 = [p, q, r, 0] do wektora w1 = [x, y, z, 1], mnożąc wektor w1 przez odpowiednią
macierz dodającą Md (p, q, r, 0). Czwarta współrzędna w1 , przyjęta tutaj za równą 1, jest
dodatkową współrzędną, po przeniesieniu do układu jednorodnego.
33
x p 1 0 0 p
y q 0 1 0 q
z + r = Md (p, q, r, 0) · w1 = 0 0 1
w1 + w2 = · w1 (3.26)
r
1 0 0 0 0 1
Jeśli mamy tak zdefiniowaną macierz dodającą wybrany wektor, możemy dodawanie wek-
tora zastąpić mnożeniem przez macierz w przestrzeni o zwiększonej liczbie wymiarów. Macie-
rze przekształceń ortogonalnych przenosimy do tej przestrzeni, dodając jeden (u nas czwarty)
wiersz i jedną (czwartą) kolumnę o wszystkich składnikach tej kolumny i wiersza równych
zeru, poza jednym, leżącym na przekątnej. I tak, na przykład, macierz obrotu Rz (ψ) po
zwiększeniu liczby wierszy i kolumn przyjmie postać:
cos ψ − sin ψ 0 0
sin ψ cos ψ 0 0
Rz4 (ψ) = [Rz4jm (ψ)] =
0
. (3.27)
0 1 0
0 0 0 1
Następnie zespół działań, na przykład takich, jak we wzorze (3.24a) możemy zastąpić
mnożeniem przez jedną tylko macierz powstałą z pomnożenia macierzy działań cząstkowych
wzoru (3.24a) przez siebie, jak pokazują równania (3.25a) oraz (3.25c). Oszczędność czasu wy-
nikająca z takiego postępowania w programie komputerowym w wypadku równania (3.24a)
jest znacząca, pomimo działań przeprowadzonych w większej liczbie wymiarów, ponieważ
zamiast trójkrotnego mnożenia macierzy o wymiarach 3 × 3, przez wektor trójwymiarowy, co
daje razem 27 mnożeń zmiennoprzecinkowych, mamy jedno mnożenie macierzą o wymiarach
4 × 4 przez wektor czterowymiarowy, co daje razem 16 mnożeń.
34
Rozdział 4
Paragrafy 4.2, 4.3 oraz 4.4 zostały opracowany częściowo w oparciu o pracę 1 wymienioną w
bibliografii.
35
takie przekształcenie (brak degeneracji stanów, charakterytycznej dla mechaniki kwantowej).
To drugie przekształcenie nie może jednak polegać na przesunięciach jakichkolwiek punktów
liny względem siebie, na zmianie konformacji. Po dokonaniu wydłużenia fragmentu liny i/lub
gięcia, traktujemy linę chwilowo jak ciało doskonale sztywne. W grę wchodzą więc jedynie
transformacje ortogonalne całego zbioru punktów liny, czyli jego obrót o odpowiedni kąt
i/lub przesunięcie tego zbioru.
Na potrzeby niniejszej pracy podamy teraz kilka definicji i wyprowadzimy prawa zmien-
ności pędu oraz krętu dla zbioru punktów materialnych, który wraz z wartością promienia
przekroju r stanowi o modelu liny.
Niech iloczyn
n
!
X
s= mi rS (4.2)
i=1
n
! n
X X
x1S e1 + x2S e2 + x3S e3 = mi x1i e1 + x2i e2 + x3i e3 .
mi (4.3)
i=1 i=1
Jest to równoznaczne z równaniami, które określają składowe środka masy x1S , x2S i x3S ,
co jest treścią twierdzenia o momentach statycznych:
Pn
mi xji
xjs = Pi=1
n (4.4)
i=1 mi
Moment statyczny układu n mas jest iloczynem współrzędnej środka ciężkości przez masę
całego układu. W jednorodnym polu ciężkości, którego przybliżenie dobrze charakteryzuje
otaczające nas warunki, środek masy pokrywa się ze środkiem ciężkości. Założenie o jedno-
rodnym polu grawitacyjnym dotyczy całej niniejszej pracy.
36
4.3 Zasada zachowania pędu - stałość pochodnej czaso-
wej momentu statycznego
Przejdźmy teraz do wyprowadzenia prawa zmienności pędu. Przez pęd p układu n punktów
materialnych rozumie się sumę iloczynów mas przez ich prędkości vi :
n
X
p= mi vi (4.5)
i=1
Jeśli masy mi nie ulegają zmianie w czasie, to pęd jest pochodną momentu statycznego
po czasie. Stąd
ds
p= . (4.6)
dt
To prowadzi do stwierdzenia, że
n
X n
X
p = vS mi = mi vi . (4.7)
i=1 i=1
Widać stąd, że pęd układu jest iloczynem prędkości vS środka masy układu przez jego ma-
sę całkowitą. Aby otrzymać jedno z najważniejszych twierdzeń mechaniki – prawo zmienności
pędu, zróżniczkujemy na początku równanie (4.7) względem czasu. Otrzymujemy wówczas
n
dp X dvi
= mi (4.8)
dt i=1
dt
Suma po prawej stronie równania (4.8) jest sumą sił działających na układ, co wynika z
trzeciej zasady dynamiki Newtona. Siły te można podzielić na na siły zewnętrzne Fzi oraz
siły wewnętrzne Fwi (siły wzajemnego oddziaływania punktów materialnych). Mamy więc
stąd:
n n n
dp X X X
= (Fzi + Fwi ) = Fzi + Fwi . (4.9)
dt i=1 i=1 i=1
Pn
Suma i=1 Fwi równa się zeru ze względu na trzecie prawo Newtona, co zostanie teraz
pokazane. Jeżeli punkt i-ty działa siłą Fij na j-ty punkt, to j-ty punkt oddziałuje na i-
ty przeciwnie skierowaną, ale równą co do wartości siłą Fji . Wszystkie siły wewnętrzne
działające na punkt o indeksie j można zsumować, dostając
37
n
X
Fwj = Fij . (4.10)
i6=j
n n n n
X X X 1X
Fwi = Fij = Fji = (Fji + Fij ) = 0. (4.11)
i=1
2
i6=j i6=j i6=j
Suma jest wypadkową sił działających na układ z zewnątrz, a suma sił wewnętrznych,
jak widać, równa się zeru. Możemy więc równanie 4.7 zapisać ostatecznie jak poniżej:
dp
= F, (4.12)
dt
gdzie
n
X
F= Fzi . (4.13)
i=1
Pn
Równanie (4.12) wyraża prawo zmienności pędu. Jeżeli suma sił zewnętrznych i=1 Fzi
działających na układ równa się zeru, to pęd p nie zmienia się, a gdy nie zmienia się masa to
i prędkość środka masy vS jest stała. Różniczkując równanie (4.7) po czasie t otrzymujemy
n
!
X dp
mi aS = = F. (4.14)
i=1
dt
Z równań (4.7) oraz (4.14) można wywnioskować, że środek masy zachowuje się tak,
jak gdyby w nim była skupiona cała masa układu. Prawo ruchu środka masy wyraża więc
równanie (4.14).
Jeśli więc chodzi o zasadę zachowania pędu, ostatecznie można stwierdzić, zgodnie z rów-
naniem (4.14), że skoro prędkość początkowa środka masy zbioru punktów liny jest zerowa,
to przy założeniach, jakie przyjmujemy, że na linę nie działają siły zewnętrzne, zerową po-
zostanie przez cały czas, czyli nie może się też przesuwać środek masy układu. Stąd każda
zmiana konformacji, która przesuwa środek masy układu punktów liny o wektor drS powin-
na być następnie „cofnięta” przesunięciem o wektor drS całego zbioru punktów, co staje się
oczywiste, gdy zróżniczkujemy po czasie równanie (4.1).
38
4.4 Zasada zachowania momentu pędu zbioru punktów
materialnych
Rozważmy ponownie ten sam układ n punktów materialnych. Obieramy dowolny punkt prze-
strzeni. Zaczepiając w tym punkcie wektory położenia mas, możemy wyznaczyć momenty pę-
dów punktów. Momentem pędu (lub krętem) K układu punktów nazywamy sumę momentów
pędów wszystkich jego punktów. Jeśli więc prędkość i-tego punktu oznaczymy zwyczajowo
vi to:
n
X n
X
K= ri × pi = ri × mi vi . (4.15)
i=1 i=1
n
dK X dvi
= vi × mi vi + ri × mi . (4.16)
dt i=1
dt
Jak wiadomo, iloczyn wektorowy jednego wektora przez drugi wektor równoległy do niego
daje zero, więc pierwszy składnik pod znakiem sumy znika, drugi zaś (w wypadku niezmien-
nych mas puktów) jest sumą momentów sił działających na punkty materialne, zatem:
n
dK X
= ri × (Fzi + Fwi ) . (4.17)
dt i=1
Pn
Sumę i=1 ri × Fwi można przekształcić następująco:
n
X n
X n
X
ri × Fwi = ri × Fij = rj × Fji =
i=1 i6=j i6=j
n n
1X 1X
= (ri × Fji + ri × Fij ) = ri × (Fji + Fij ) = 0. (4.18)
2 2
i6=j i6=j
n
dK X
= ri × (Fzi ) . (4.19)
dt i=1
Równanie (4.19) wyraża prawo zmienności krętu, które mówi, że pochodna krętu po czasie
jest sumą momentów sił zewnętrznych działających na układ.
Przechodzimy teraz do bardziej złożonego zagadnienia - usunięcia powstającego podczas
39
infinitezymalnych zmian konformacji liny wektora krętu dK układu jej punktów. W pierwszej
chwili całkowity moment pędu
K = 0, (4.20)
ponieważ przyjmujemy, że układ punktów znajduje się w bezruchu. Ponieważ nie występu-
ją siły zewnętrzne Fzi i zgodnie z równaniem (4.19), nie ma momentów tych sił, zewnętrznych
względem układu punktów:
n
dK X d (vi )
= ri × mi = 0. (4.21)
dt i=1
dt
Równanie powyższe można pomnożyć obustronnie przez dt, dostając tym samym
n
X
dK = ri × mi dvi = 0, (4.22)
i=1
a więc kręt układu pozostaje stały i równy zero przez cały czas trwania zmian konformacji
liny.
Po dokonaniu zginania względem wybranej osi, punkty liny przechodzą z położeń ri(1) =
ri w nowe położenia
n n
X X dri
K= ri × mi vi = mi ri × = 0. (4.24)
i=1 i=1
dt
W symulacji gięcia liny nie interesuje nas czas przechodzenia liny z jednej konformacji
do drugiej, a jedynie sama przestrzeń możliwych konformacji i ciągów transformacji, które
te konformacje łączą. Można przyjąć, że przy przejściu bezpośrednio z jednego ułożenia liny
do drugiego, układy te dzieli infinitezymalnie krótki czas dt, ale nic nie stoi na przeszkodzie,
by był on różny, w zależności od tego, w jakiej konformacji lina w danym momencie się
znajduje i do jakiej przechodzi. Liczy się tylko to, czy taka transformacja jst możliwa, czy
nie. Prędkość zmiany konformacji może być więc zmienna, lecz to nie ona ma tutaj znaczenie.
40
Przy tak zdefiniowanym problemie (sprawdzenie, czy węzeł się rozplątuje, czy nie, a jeśli tak,
to w jakich warunkach) i dla modelu określonego w paragrafach 1.3, 1.4 i 5.2, bezcelowe
może wydawać się używanie czasu i jego pochodnej. Jednak z uwagi na definicję momentu
pędu układu punktów, daną wzorem (4.15) w której występują prędkości punktów, będące
pochodnymi po czasie z wektorów ich położeń, zakładamy że dwie konformacje - przed i po
gięciu - dzieli czas dt, który uznajemy za infinitezymalny. Dzielenie przez ten infinitezymalny
czas możemy w równaniu (4.24) wyłączyć przed znak sumy. Dostajemy wówczas
n
1 X
K= mi (ri × dri ) = 0 (4.25)
dt i=1
Pn
i jeśli zadbamy o to, by suma i=1 mi (ri × dri ) w równaniu (4.25) była zawsze równa
zeru, to tym samym spełniamy zasadę zachowania momentu pędu dla układu n punktów
materialnych, którego początkowy kręt wynosił zero. Jeśli dla dwóch układów tych samych
punktów, suma ta nie znika, oznacza to pojawienie się momentu pędu, jeśli różnica między
układami powstała w czasie dt.
41
ciał doskonale sztywnych, że wzajemne względne położenia punktów w czasie jej trwania nie
zmieniają się. Podsumujmy ten wstęp. Aby spełnione były zasady zachowania - pędu oraz
momentu pędu - nieruchomego zbioru punktów, postępowanie związane z pojedynczą infi-
nitezymalną transformacją tego zbioru (w szczególności - z gięciem zbioru o nieskończenie
mały kąt względem dowolnej osi) powinno być następujące:
3. Wykonujemy obrót zbioru punktów wokół środka masy z użyciem transformacji orto-
gonalnej w celu spełnienienia zasady zachowania momentu pędu.
n
! n n n
! n
X X X X X
mi rS = mi ri = mi (rS + r0i ) = mi rS + mi r0i , (4.26)
i=1 i=1 i=1 i=1 i=1
z czego wynika, że
n
X
mi r0i = 0. (4.27)
i=1
1 W ruchu kulistym ciała doskonale sztywnego jeden z punktów jest nieruchomy, a więc każdy inny punkt
42
Rysunek 4.1: W efekcie ruchu wybranej osi Θ układu, początkowo przechodzącej przez punkt A, po
skomplikowanym torze tAB w ruchu kulistym, oś uzyskuje położenie oznaczone Θ0 , w którym przechodzi
przez punkt B. To samo położenie wybranej osi uzyskujemy obrotem o kąt α. Jednak jeśli w trakcie ruchu
osi Θ, kąty między tą osią, a innymi dowolnymi (niezaznaczonymi) osiami układu mają pozostać
niezmienione, to w ogólności nie oznacza to (wyłącznie) obrotu o kąt α wszystkimi punktami wokół tej
samej osi (zaznaczonej linią przerywaną).
Jak wynika z rysunku 3.1, a także ze wzorów (3.1) oraz (3.6), położenie środka ciężkości
rS(2) po obrocie wektorów r0i(1) = r0i do nowych położeń r0i(2) (wokół środka wskazywanego
wektorem rS(1) = rS ) można wyrazić wzorem
n
! n
! n
X X X
mi rS(2) = mi rS(1) + mi r0i(2) . (4.28)
i=1 i=1 i=1
Jeśli więc wykażemy, że po obróceniu wektorów r0i(1) wokół środka masy do nowych po-
Pn
łożeń r0i(2) wielkość i=1 mi r0i(2) będzie nadal równa zeru, to tym samym dowiedziemy, że
podczas obrotów wokół środka masy układu moment statyczny, a więc i położenie środka
masy, nie zmienia się.
Zauważmy na początek, że każde wypadkowe przekształcenie w ruchu kulistym ciała
sztywnego, dowolne złożenie przekształceń infinitezymalnych, można uzyskać jedną trans-
formacją ortogonalną, wykonywaną na wektorach r0i wskazujących punkty tego ciała i za-
czepionych w jego nieruchomym punkcie (u nas jest to środek masy). Wynika to z rozwa-
żań z paragrafu 3.1, na temat transformacji ortogonalnych. Przypomnijmy, że mają one tę
właściwość, że nie zmieniają odległości między punktami układu, a więc zarówno długości
dowolnych wektorów, jak i kątów pomiędzy nimi. W związku z powyższym, dowolne złożone
43
Rysunek 4.2: Po obrocie z rys. 4.1 układ ma jeszcze jeden stopień swobody. W ogólności, aby uzyskać efekt
orientacji układu obracanego, jaki wynika z ruchu po torze tAB z rys. 4.1, należy jeszcze obrócić układem o
kąt β wokół osi Θ0 (danej tutaj wersorem e03 ), która jako pierwsza uległa przemieszczeniu. Każdą
skomplikowaną transformację w ruchu kulistym da się więc uzyskać przy pomocy dwóch obrotów, z których
każdy jest przekształceniem ortogonalnym. Oczywistym więc jest, że suma tych przekształceń również jest
transformacją ortogonalną
przekształcenie składające się z wielu obrotów (na przykład takie, jak na rys. 4.1) można
ostatecznie zastąpić jedną transformacją ortogonalną układu wektorów i wersorów (które to
wersory odpowiadają konkretnym osiom).
Niech składowe Γjk będą składowymi przekształcenia obrotowego w ruchu kulistym wek-
torów r0i(1) w położenia r0i(2) wokół punktu S danego wektorem rS . Składowe x0k
i(1) wektora
0
ri(1) niech będą dane w dowolnym układzie współrzędnych - np. w układzie odniesienia,
w którym dane się współrzędne wektora rS . Zgodnie z powyższymi rozważaniami oraz z
równaniem (3.6), nowe składowe x0j
i(2) w układzie odniesienia dane będą wzorami
x0j 0k
i(2) = xi(1) Γjk . (4.29)
Pn
Sumę i=1 mi r0i(2) można rozpisać na poszczególne składowe:
n
X n
X
mi r0i(2) = mi x01 0 02 0 03 0
i(2) e1 + xi(2) e2 + xi(2) e3 =
i=1 i=1
n
X n
X n
X
= e01 mi x01 0
i(2) + e2 mi x02 0
i(2) + e3 mi x03
i(2) (4.30)
i=1 i=1 i=1
mi x0j
Pn
Jeśli suma ta ma być równa zeru, to składnik i=1 i(2) musi znikać, dla j przyjmują-
44
cego dowolną z trzech wartości: 1,2,3. Podobnie można rozpisać zależność (4.27), otrzymując
następujące równości:
n
X n
X n
X
mi x01
i(1) = 0, mi x02
i(1) = 0, mi x03
i(1) = 0. (4.31)
i=1 i=1 i=1
n n
mi x0j
X X
i(2) = mi x0k
i(1) Γjk =
i=1 i=1
n
X
= mi x01 02 03
i(1) Γj1 + xi(1) Γj2 + xi(1) Γj3 =
i=1
n
! n
! n
!
X X X
= mi x01
i(1) Γj1 + mi x02
i(1) Γj2 + mi x03
i(1) Γj3 , (4.32)
i=1 i=1 i=1
45
gdzie dα, dβ oraz dφ to infinitezymalne skalary, z których dα i dβ są dane. W związku z
równością
π
cos x + = − sin (x), (4.34)
2
napiszmy dalej, że
h i
[Φ1k ] = cos (dφ), − sin (dα), − sin (dβ) (4.35)
Rozwijając funkcje cos (x) oraz sin (x) w szereg Taylora wokół argumentów x równych
zero i zaniedbując potęgi x wyższe niż druga, dostajemy odpowiednio
x2
cos (x) ≈ 1 − + ..., sin (x) ≈ x + . . . . (4.36)
2
dε dη 1
gdzie dane są kąty dα, dβ, dγ. Składowe dδ, dε i dη znajdziemy z warunku ortogonalności
macierzy (3.15a). A więc macierz transponowana do tej macierzy równa się jej odwrotności
ΦT = Φ−1 , czyli:
T −1
1 −dα −dβ 1 −dα −dβ
dδ 1 −dγ = dδ 1 −dγ . (4.39)
dε dη 1 dε dη 1
Na podstawie powyższej równości, dostajemy dziewięć równań na składowe macierzy
transponowanej do Φ.2 Równania te mogą być sprzeczne dla niezerowych skończonych zmien-
nych. Na przykład, jak widać w równaniu (4.39) element pierwszy kolumny i wiersza macierzy
2 Rachunki, pozwalające znaleźć macierz odwrotną do danej są ogólnie znane, więc nie będziemy tu ich
przytaczać.
46
transponowanej do ΦT wynosi 1. Natomiast w macierzy odwrotnej Φ0 = Φ−1 wynosi on
1 + dγ · dη
Φ011 = . (4.40)
1 + dα · dδ + dγ · dη + dα · dγ · dε − dβ · dδ · dη
Zauważmy jednak, że ponieważ iloczyny w mianowniku i liczniku równania (4.40) dotyczą
wielkości nieskończenie małych, możemy je zaniedbać i w ten sposób dostajemy Φ011 = 1, a
więc zgodność elementów hmacierzy
i ΦT oraz Φ0 o indeksach j = 1 oraz k = 1. Dla elementu
ΦT12 = dδ macierzy ΦT = ΦTjk , dostajemy odpowiednik w postaci
dα − dβ · dη
Φ012 = . (4.41)
1 + dα · dδ + dγ · dη + dα · dγ · dε − dβ · dδ · dη
Jeśli, jak w poprzednim wypadku, uprościmy powyższe wyrażenie, zaniedbując iloczyny
wielkości infinitezymalnych, to z równości ΦT = Φ−1 lub inaczej ΦTkj = Φjk = Φ0kj dla j = 2
oraz k = 1 dostaniemy równość dδ = dα. Podobnie dε = dβ oraz dη = dγ. Ostatecznie
macierz obrotu o nieskończenie mały kąt przybiera postać
1 −dα −dβ
Φ = Φ (α, β, γ) = dα 1 −dγ (4.42)
dβ dγ 1
Poszukajmy teraz wektora dφ, który jest równoważny kątowi obrotu macierzą Φ. Wektor
ten leży na osi obrotu, a jego wartość jest wartością kąta obrotu, a więc jednoznacznie
identyfikuje on infinitezymalny obrót. W celu wyznaczenia wektora dφ, zauważymy, że punkt
47
3
leżący na osi obrotu nie zmieni swego położenia.
h Innymi słowy
i obrót poprzez mnożenie
1 2 3
razy macierz Φ przeprowadza wektor dφ = dφ , dφ , dφ w ten sam wektor, co jest
równoważne zapisowi wyrażonemu poniższym równaniem (4.44).
h i
Φ · dφ – dφ = 0, 0, 0 . (4.44)
Rozpisując powyższe równanie macierzowe na układ trzech równań na składowe dφ1 , dφ2 ,
dφ3 wektora dφ i rozwiązując ten układ względem jednej ze składowych, dostaniemy stosunki
składowych wektorów leżących na osi obrotu. Uzależniając, przykładowo, dwie pozostałe
składowe wektora dφ od składowej dφ1 , otrzymamy:
dβ dα
dφ dφ1 = dφ1 , −dφ1 dφ1
, . (4.45)
dγ dγ
Jeśli teraz przyjmiemy, że kwadrat całkowitego kąta obrotu wokół osi na której leżą
wszystkie możliwe wektory dφ dφ1 równy jest (zgodnie z twierdzeniem Pitagorasa) sumie
dα2 + dβ 2 + dγ 2 (4.46)
kwadratów obrotów o trzy kąty, każdy wokół innej osi układu (jest to słuszne, jeśli kąty
dα, dβ oraz dγ są infinitezymalne), to ułożyć możemy w końcu równanie na wektor dφ o
długości równej kątowi obrotu:
dφ φ1 · dφ φ1 = dα2 + dβ 2 + dγ 2 .
(4.47)
Nietrudno sprawdzić, że obrót wektora r0i o infinitezymalny kąt poprzez mnożenie razy
macierz Φ i odejmowanie wektora, takie jak na końcu wzoru (4.43), zastąpić można jednym
działaniem wektorowym4 :
3 A więc składnik wyrażony w równaniu (4.43) i biorący się spod sumy z równania (4.25) będzie równy
zeru.
4 Warto też zwrócić uwagę, że dzieląc równanie (4.49) przez infinitezymalny czas dt, w którym zachodzi
dφ
obrót, otrzymujemy wzór na prędkość liniową w ruchu obrotowym, gdzie = ω jest wektorem prędkości
dt
kątowej.
48
dr0i = Φ · r0i – r0i = dφ × r0i . (4.49)
W związku z tym suma z równania (4.25) dla układu n punktów obracanych wokół środka
masy danego wektorem rS wynosi
n
X n
X
mi (ri × dri ) = mi (rS + r0i ) × (dφ × r0i ) , (4.51)
i=1 i=1
Ponieważ mnożenie wektorowe jest rozdzielne względem dodawania, sumę powyższą roz-
piszemy jako
n
X n
X n
X
mi (ri × dri ) = mi (rS × (dφ × r0i )) + mi (r0i × (dφ × r0i )) . (4.52)
i=1 i=1 i=1
Pierwszy składnik tej sumy po rozpisaniu (ponownie i dwukrotnie wykorzysta się prawo
rozdzielności iloczynu wektorowego)
n n
!
X X
mi (rS × (dφ × r0i )) = rS × mi (dφ × r0i ) =
i=1 i=1
n
!! (4.53)
X
= rS × dφ × mi r0i
i=1
znika, ponieważ przyjęto, co mówi równanie (4.27). Mamy więc ostatecznie uproszczony
Pn
wzór na sumę i=1 mi (ri × dri ), występującą w równaniu (4.25) wyznaczoną dla układu
punktów materialnych obracanego o kąt φ. Wzór ten jest prawdziwy w wypadku nierucho-
mego środka masy:
n
X n
X
mi (ri × dri ) = mi (r0i × (dφ × r0i )) . (4.54)
i=1 i=1
49
wtedy, gdy wektory r0i oraz dφ są równoległe, czyli gdy punkty wskazywane wektorami r0i
leżą na osi obrotu o kąt dφ.
Pn
Aby dowieść że suma i=1 mi (ri × dri ) 6= 0, jeśli nie wszystkie jej składniki są jedno-
cześnie równe zerom (co zachodzi, jak pokazano, jedynie wtedy, gdy wszystkie punkty leżą
na osi obrotu), pomnożymy teraz dowolny składnik mi (ri × dri ) skalarnie przez wektor kąta
obrotu dφ i sprawdzimy znak takiego iloczynu:
Biorąc pod uwagę wzór podający równowartość potrójnego iloczynu wektorowego trzech
wektorów a, b, c:
(a × b) × c = (a · c) b – (b · c) a, (4.56)
W wyrażeniu tym λ jest kątem pomiędzy wektorami r0i oraz dφ. Wynika stąd, że dla
dowolnego doboru tychże wektorów, wielkość mi (ri × dri ) · dφ 0. A więc prawdą jest, że
Z twierdzenia tego wynika, że jeśli przy doborze niezerowego wektora kąta dφ nie wszyst-
kie pary wektorów r0i oraz dφ są równoległe (czyli, gdy nie wszystkie punkty wskazywane
Pn
wektorami r0i leżą na osi obrotu o kąt dφ), to wtedy suma i=1 mi (ri × dri ) 6= 0, co kończy
dowód.
Dowiedziono tym samym, że obroty wokół środka masy o infinitezymalne kąty powodują w
ogólnym wypadku powstanie niezerowego (również infinitezymalnego) całkowitego momentu
Pn
pędu, co jednoznacznie wynika z pojawienia się niezerowej wartości sumy i=1 mi (ri × dri ).
Przypomnijmy, że o jednoznaczności tej mówi równanie (4.25), jeśli z nieskończenie małym
obrotem tego układu punktów, związany jest upływ czasu dt.
50
4.6 Macierz bezwładności - usuwanie momentu pędu ob-
rotem wokół środka masy
Każdy ze składników mi (r0i × (dφ × r0i )) sumy z równania (4.54) zastąpić można iloczynem
pewnej macierzy Ii przez wektor dφ. Jeśli wektor r0i ma składowe oznaczone x0i 1 , x0i 2 , x0i 3 =
[x0i , yi0 , zi0 ], to nietrudno sprawdzić, że tę symetryczną macierz Ii zdefiniować można nastę-
pująco:
02
yi + zi0 2 −x0i yi0 −x0i zi0
Ii = mi −x0i yi0 x0i 2 + zi0 2 −yi0 zi0 . (4.59)
Patrząc na równanie (4.25) i porównując z (4.54), biorąc pod uwagę powyższą definicję
(4.59) oraz to, co zostało powiedziane na początku niniejszego paragrafu, można napisać, że
dri dφ
K(S)i = ri × mi vi = mi ri × = Ii · = Ii · ω, (4.60)
dt dt
gdzie K(S)i jest momentem pędu pojedynczego punktu materialnego o masie mi i poło-
żeniu danym wektorem ri = rS + r0i w ruchu obrotowym wokół nieruchomego punktu (S),
a ω jest wektorem chwilowej prędkości kątowej ruchu obrotowego, wokół osi przechodzącej
przez ten nieruchomy punkt (dany wektorem rS ).
Tak zdefiniowana macierz jest macierzą bezwładności punktu materialnego o masie mi
oraz współrzędnych x0i 1 , x0i 2 , x0i 3 = [x0i , yi0 , zi0 ].
Pn
Sumę i=1 mi (ri × dri ) można więc zapisać jako iloczyn I · dφ sumy macierzy I =
Pn 5
i=1 Ii przez wektor kąta dφ :
n n
!
X X
mi (ri × dri ) = Ii · dφ = I · dφ. (4.61)
i=1 i=1
Pn
We wzorze (4.61) suma macierzy bezwładności I = i=1 Ii = [Ipq ] jest macierzą bez-
władności układu punktów, której elementy zdefiniować można następująco:
n
X
δjm x0i j x0i m δpq − x0i p x0i q ,
Ipq = (4.62)
i=1
gdzie δjm oraz δpq są deltami Kroneckera. W definicji (4.62) współrzędne x0i 1 , x0i 2 , x0i 3
odnoszą się, jak zwykle, do wektora r0i wskazującego punkt o indeksie i.
Pn
Przedstawienie sumy i=1 mi (ri × dri ) dla układu punktów materialnych w postaci
5 Ze względu na symetrię macierzy I, kolejność mnożenia jest nieistotna, a więc I · dφ = dφ · I.
51
(4.61) ma pewną istotną zaletę. Wiadomo (rówanie (4.25)), że aby wyeliminować moment
pędu między dwiema konformacjami liny (układami punktów), jeśliby zmiana pomiędzy nimi
zachodziła w czasie dt, tak określona suma musi znikać. Jeśli dokonamy transformacji i po-
jawia się niezerowa jej wartość, to gdy obliczymy w programie macierz I 6 , łatwo znajdziemy
kąt −dφ, o jaki należy obrócić układem punktów liny, aby tak zdefiniowana suma powstała
ze znakiem przeciwnym, a więc aby tym samym, poprzez ten obrót wyzerować ją i zapewnić
1 Pn
stałość momentu pędu K = mi (ri × dri ) = 0 układu. Ponieważ
dt i=1
n
X
mi (ri × dri ) = I · dφ, (4.63)
i=1
to
n
X
−1
dφ = I · mi (ri × dri ) , (4.64)
i=1
gdzie I−1 jest odwrotnością macierzy bezwładności układu punktów względem środka
masy. Wynika stąd jasno, że obrót układu punktów o kąt –dφ daje wektor przeciwnie skie-
Pn
rowany do otrzymanego uprzednio w wyniku gięcia liny, a więc − i=1 mi (ri × dri ) Suma
ich obydwu równa się więc zeru.
Podsumowując: wykonując gięcie układu punktów o infinitezymalny kąt względem wy-
branej osi, obracamy dwoma podzbiorami punktów względem siebie (jeśli kąt jest infinite-
zymalny, można dokonać obrotu jednego z nich - byleby efekt w postaci całkowitego kąta
gięcia był ten sam) i w ogólnym wypadku (czyli w wypadku braku symetrii zwierciadlanej
Pn
gięcia) dostajemy niezerową wartość sumy i=1 mi (ri × dri ), która pojawia się w równaniu
(4.25). Oznacza to, że jeśliby ta zmiana następowała w czasie, to pojawiłby się moment pę-
du. Aby tego uniknąć (a więc by spełniona była zasada zachowania momentu pędu), trzeba
wyzerować tę sumę, działając przekształceniem dającym ją ze znakiem przeciwnym, czyli
Pn
− i=1 mi (ri × dri ) w taki jednak sposób, aby nie zmieniać wzajemnych położeń punktów
układu (naruszyłoby to układ punktów traktowany po gięciu jako zbiór punktów należących
do ciała doskonale sztywnego). Zapewnia to infinitezymalna transformacja ortogonalna, bę-
dąca obrotem wokół osi danej wektorem −dφ, zdefiniowanym w (4.64), o kąt o wartości
będącej długością tego wektora.
Uwaga: Podczas transformacji liny w programie komputerowym, infinitezymalna war-
Pn
tość wektora sumy i=1 mi (ri × dri ), oczywiście nie wystąpi. Zawsze będziemy mieli do
Pn
czynienia ze skończoną wartością wielkości wektorowej i=1 mi (ri × ∆ri ). W związku z
tym obliczony kąt obrotu
6 Nie nastręcza to żadnej trudności, choć zajmuje sporo czasu procesora.
52
n
X
∆φ = I−1 · mi (ri × ∆ri ) , (4.65)
i=1
n
X
I · ∆φ ≈ mi (ri × ∆ri ) . (4.66)
i=1
Pn
Suma i=1 mi (ri × ∆r2i ) obliczona po takim obrocie jest mniejsza o kilka rzędów wiel-
Pn
kości (w zależności od wyboru punktów i kąta gięcia) od początkowej i=1 mi (ri × ∆ri )
ale, w ogólności, nie znika. Wynika to z tego, że obrót „powrotny”, o kąt -∆φ, mający na
celu usunięcie momentu pędu, obliczony jest na podstawie macierzy bezwładności obliczo-
nej po gięciu o skończony kąt. Jej składowe różnią się więc od składowych macierzy przed
gięciem o skończone wartości. Inaczej mówiąc - w czasie rzeczywistego gięcia układu punk-
tów, gdy kąt gięcia zmienia się w sposób ciągły od zera do pewnej skończonej wartości,
macierz bezwładności również zmienia się w sposób ciągły i to (w ogólnym przypadku) w
dość skomplikowany sposób. W programie komputerowym dobrym rozwiązaniem jest zasto-
sowanie średniej z macierzy bezwładności przed i po gięciu, co z reguły zmniejsza różnicę
Pn Pn
i=1 mi (ri × ∆ri ) − I · ∆φ kilkukrotnie. Niemniej jednak suma i=1 mi (ri × ∆r2i ) ob-
liczona po obrocie „powrotnym” nadal nie będzie równa zeru. Na szczęście każdy kolejny
obrót, mający na celu jej wyzerowanie, zmniejsza ten wektor o kilka rzędów wielkości, tak,
że możemy dowolnie zbliżyć się do wartości równej zeru.7
7 Wyznaczanie macierzy bezwładności, różnic między układami i obroty zajmują jednak sporą ilość czasu
procesora, więc szukać należy stosownego kompromisu pomiędzy dokładnością, a czasem trwania tych po-
mocniczych transformacji. W pracy chodziło bowiem o rozplątanie węzłów, a nie o to, by zadbać o położenie
węzła z dokładnością do wartości kąta i tak niedostrzegalnej „gołym okiem”.
53
Rozdział 5
Program symulacyjny
GordianKnotDisentangler
54
5.1 Kod źródłowy programu
Własny kod źródłowy autora pracy (wraz z trzema małymi programami pomocnicznymi 2 )
liczy wraz z komentarzami ponad 7000 linii i rozdzielony został na dwadzieścia trzy pliki3 .
Został on napisany obiektowo, aby można było z łatwością tworzyć obiekty zdefiniowanych
klas i dodawać te obiekty do innych klas jako składowe. Autor starał się dla każdej klasy stwo-
rzyć przejrzysty interfejs, aby inny programista, mógł, w razie potrzeby, stosunkowo szybko
zorientować się w sposobie jej użytkowania. Kod źródłowy jest też w znaczej części skomento-
wany, aby ułatwiać modyfikacje, dodawanie nowych funkcji, wnoszenie poprawek itp (np. po
dłuższej przerwie pracy z kodem lub dla kogoś kto nie miał z nim jeszcze wcale do czynienia).
Dodatkowo, wszędzie tam, gdzie było to możliwe i użyteczne, zdefiniowane zostały szablony
(ang. templates) klas i funkcji, aby móc parametryzować powstawanie obiektów klas szablo-
nowych. Np. obiekt klasy szablonowej Histogram można z łatwością stworzyć dla dowolnego
typu, dla którego zdefiniowane zostały podstawowe operatory arytmetyczne (mnożenie, dzie-
lenie, dodawanie, odejmowanie) i relacje (większy, mniejszy, większy lub równy, mniejszy lub
równy) oraz operator umieszczania danej w standardowym strumieniu wyjściowym.
Dokładne omówienie działania programu (czyli w jaki sposób zakodowano jego funkcjo-
nalność) jest w tej pracy niemożliwe. Zostaną jednak pokrótce przedstawione najważniejsze
klasy składowe oraz wymienione ich najistotniejsze funkcje lub grupy tych funkcji (paragraf
5.3). Najpierw jednak opisany zostanie sposób przedstawienia węzła w pamięci komputera i
wynikające z tego konsekwencje.
mocniczych histogramów opisujących duże ilości gięć w celu optymalizacji oraz do wczytywania informacji o
pliku z węzłami i wybranym węźle w pliku poza programem głównym.
3 Dlatego kod źródłowy programu autor podaje w formie elektronicznej, a nie drukowanej. Znajduje się
55
układzie odniesienia. W związku z tym krzywa środkowa w programie zastąpiona jest ła-
maną, której wierzchołki przechowywane są w pamięci komputera i to na nich dokonuje się
transformacji.
Odległości między środkami każdej pary sfer o sąsiednich numerach w ciągu są w takie
same i nie zmieniają się w czasie symulacji rozplątywania węzła (jeśli nie zażyczy sobie tego
użytkownik programu). W takiej sytuacji całkowita długość węzła w dowolnym momencie
jest po prostu iloczynem ilości elementów ciągu przez odległość pomiedzy środkami dwóch
dowolnych sfer. Dla uproszczenia promień każdej ze sfer przyjmuje wartość równą 12 . Wartość
ta byłaby promieniem minimalnego (o minimalnej powierzchni) przekroju liny idealnej w
dowolnym jej punkcie, jednak ponieważ sfery rozstawione są w pewnych odległościach od
siebie, lina taka ma średnią grubość mniejszą niż grubość sfery i należy to uwzględnić w
czasie opracowywania wyników.
Sfery, jak powiedziano, są nieskończenie twarde i nieodkształcalne, a więc jeśli dwie sfery
nie przekrywają się, żaden ruch nie może sprawić by ich środki znalazły się we wzajemnej
odległości mniejszej niż suma promieni tych sfer. Jest to modelowa implementacja faktu,
że jeśli materiał jest doskonale twardy, to próba jego odkształcenia wywołuje nieskończone
siły, a więc odkształcenie takie jest niemożliwe. Jeśli jednak dwie sfery od początku się prze-
krywają (środki są w odległości mniejszej niż suma promieni) to w żadnym wypadku nie
mogą przestać się przekrywać. (Można sobie wybrazić, że powierzchnia sfery jest jednocze-
śnie polem nieskończenie wysokiego potencjału o infinitezymalnej grubości). Łatwo zapewnić
spełnienie obu wspomnianych warunków przy odpowiednio sformułowanych założeniach co
do reprezentacji modelu liny.
Przyjmuje się więc, między innymi, że promień krzywizny dowolnego łuku, na którym
leżą środki trzech dowolnych sfer reprezentacji liny w pamięci komputera, musi być większy
lub równy promieniowi przekroju węzła, jak to przedstawia rys. 5.1. Podobnie prawdziwej
liny nie da się wygiąć w łuk o promieniu mniejszym niż pewien minimalny promień (warunki
takie odpowiadają definicji modelu liny idealnej w pkt. 1.2).
W czasie symulacji zachowanie liny musi być więc zgodne przede wszystkim z dwiema
zasadami: o nieprzekrywaniu się sfer formujących linę i o tym że promień łuku wytyczonego
przez środki trzech dowolnych sąsiadujących sfer (o numerach k, k +1, k +2 dla dowolnego k)
jest zawsze większy lub równy promieniowi przekroju liny. Oczywiście, jeśli ciąg takich sfer
ma dobrze oddawać powierzhnię liny, to muszą być one rozmieszczone wystarczająco gęsto i
w takiej sytuacji każda sfera liny (oprócz końcowych, jeśli lina nie ma połączonych końców)
może przekrywać się z pewną ilością sąsiednich sfer (patrz rys. 5.2).
Jednak liczba tych przekrywających się sąsiadek jest mniejsza niż ilość m sąsiadek po obu
stronach (dla indesków malejących i rosnących), których i tak nie trzeba sprawdzać. Liczba
56
Rysunek 5.1: Lina idealna modelowana jest w programie przy pomocy jednakowych sfer. Krzywa środkowa,
oznaczona linią przerywaną, zagięta jest w łuk o minimalnym promieniu. Długość tego promienia r jest
równa promieniowi sfery.
Rysunek 5.2: Krzywa środkowa liny tworzy najciaśniejszy możliwy okrąg o promieniu r, równym
promieniowi sfery, z których tworzy się model liny. Odległość między segmentami (środkami sfer) wynosi s.
Na okręgu tym łuk o cięciwie długości s można odłożyć m razy. Liczba ta jest wartością całkowitą z x danej
wzorem (5.1), widocznym u góry rysunku, co wynika z tego, że cięciwa okręgu odpowiada łukowi o kącie
równym α. Całkiem przypadkowo na tym rysunku liczba x jest bardzo bliska swej wartości całkowitej m.
57
ta nie zmienia się w czasie symulacji i wynosi tyle, ile mieści się sfer na linie zaciśniętej w
okrąg o minimalnym promieniu. Promień tego okręgu równy jest promieniowi przekroju liny
r, a środki sfer leżą na nim w równych odległościach s od siebie. Nietrudno obliczyć, że jeśli
odległości między środkami sfer wynoszą s, promień przekroju liny r, to odcinek o długości
s możemy na tym okręgu odłożyć w przybliżeniu
π
x= s . (5.1)
arc sin
2r
razy. Ilość m sąsiadujących sfer, których nie trzeba sprawdzać jest częścią całkowitą z
liczby x:
m = bxc. (5.2)
Podsumowując innymi słowy: jeśli zadbamy o to, żeby żaden fragment liny nie przekraczał
minimalnego promienia krzywizny, to jednocześnie wiemy, że żadne sfery na najciaśniejszym
okręgu, które nie powinny na siebie nachodzić, nie przekrywają się. Dlatego właśnie kilku
sąsiadek każdej sfery nie musimy sprawdzać pod kątem przekryć z innymi sąsiadkami, a te,
które mają prawo przekrywać się, są w tej liczbie zawarte.
O tym, że opisany model taki dobrze oddaje właściwości liny idealnej, najlepiej przekonać
się w sposób intucyjny i obserwując wybrany węzeł stworzony z takiej liny w czasie jej
zaciskania lub innych jego transformacji. Można też podać pewne przesłanki uzasadniające
wybór takiego modelu.
Na wstępie można zauważyć, że właściwą powierzchnię modelu liny tworzą jedynie te
fragmenty powierzhni sfer, które są widoczne z zewnątrz (z odległości od sfery większej niż jej
promień), a więc te, które dla konkretnej sfery występują pomiędzy okręgami wyznaczonymi
przez jej przecięcia z dwiema sąsiednimi sferami. Jeśli odległości między środkami sfer nie są
dostatecznie małe, wtedy powierzchnia liny jest w widoczny sposób pofalowana, złożona z
segmentów o zmiennym wzdłuż liny promieniu przekroju (podobnie jak u dżdżownicy - patrz
rys. 5.3). Można jednak pokazać, że jeśli odległość między środkami sfer nadal zmniejsza się,
wtedy segmenty te przechodzą (w granicy) w fragmenty powierzhni walców lub fragmenty
torusów o infinitezymalnej długości, a powierzchnia utworzona z tych fragmentów przechodzi
w powierzchnię gładką o ustalonym promieniu przekroju. A więc jeśli model liny o skończonej
długości, utworzylibyśmy z nieskończonej ilości sfer, wtedy model taki byłby równoważny
modelowi liny idealnej, opisanej w paragrafie 1.2. Oczywiście dla celów symulacji należy
tak dobrać skończoną ilośc segmentów (a więc i sfer) liny, żeby zachowanie tego modelu
dobrze oddawało przewidywane zachowanie modelu liny idealnej, ale i tak, by symulacja
trwała możliwie krótko. W praktyce dobiera się więc odległość środków sfer mniejszą niż ich
58
Rysunek 5.3: Model liny tworzy się ze sfer rozstawionych w równych odległościach wzdłuż krzywej
środkowej liny. Sfery te tworzą widoczne segmety. Węzeł Gordyjski (311 3)A o długości całkowitej około 105
(przy średnicy równej 1) przedstawiony został przy pomocy odpowiednio: 2500, 1000, 500, 250 oraz 125
segmentów (wartości przybliżone).
Rysunek 5.4: Kolejne etapy gięcia węzła, niedozwolonego dla nieskończenie twardej liny. Jeśli kąt gięcia jest
za duży, to etapy pośrednie, na których widać przekrycia, nie wystąpią i fragment liny „magicznie”
przeniknie na drugą stronę innego fragmentu.
promień. Na rys. 5.3 można zobaczyć, że dobór taki jest dobrze uzasadniony wizualnie.
W związku z tak zdefiniowaną reprezentacją węzła, należy mieć na uwadze pewne nie-
bezpieczeństwa, które z niej wynikają. Na przykład po dokonaniu gięcia liny, sprawdza się,
czy nie nastąpiło przekrycie. Jeśli jednak dobrany kąt gięcia był za duży, to mogło zdarzyć
się tak, że dwa fragmenty liny „przeniknęły” przez siebie i po gięciu nie ma przekrycia (rys.
5.4).
Może to spowodować nierealne rozplątanie węzła i jest niedopuszczalne. Oczywiście taka
sytuacja nie mogłaby mieć miejsca w linie rzeczywistej, gdzie kąty zmieniają się w sposób
ciągły, a nie skokowo. W praktyce więc trzeba w czasie symulacji wyznaczać maksymalny
„bezpieczny” kąt gięcia. Ustala się go zgrubnie na podstawie maksymalnych wymiarów węzła i
promienia przekroju liny. Jeśli maksymalna odległość dowolnego punktu węzła od jego środka
59
wynosi Rmax a promień przekroju r to maksymalny kąt gięcia
r
αmax = arc sin . (5.3)
Rmax
Przy tak zdefiniowanym maksymalnym kącie gięcia i stosowaniu jeszcze dla bezpieczeń-
stwa niepełnej jego wartości (np. 0.99 · αmax ), nie ma możliwości, by podczas zginania węzła
dwa fragmenty liny w „magiczny” sposób przeniknęły przez siebie.
Na koniec tego rozdziału istotna uwaga: każda symulowana lina, węzeł oraz wynik
1
w tej pracy dotyczył liny o promieniu przekroju równym r = 2,
a więc lina zawsze miała
grubość d = 1. Wyniki są jednak reprezentatywne dla wszystkich konformacji liny, których
stosunek l/d jest taki sam, jak w wypadku omawianych przykładów oraz wyników.
• liczba przekrywających się sfer i listy (parami oraz osobno) indeksów wierzchołków, w
których sfery te mają swoje środki,
Do wyznaczania tych i innych własności węzła służą odpowiednie funkcje składowe klasy
Knot3D, których jest w sumie ponad 70.4 Można je podzielić na grupy o podobnym prze-
4 Funkcjonalność niektórych z nich jest powielona, ale zdefniowano je dla wygody. Na przykład można
użyć funkcji Skaluj(5.0) co zwiększy pięciokrotnie odległości pomiędzy wierzchołkami, albo użyć specjalnie
w tym zdefiniowanego operatora mnożenia i jeśli węzeł nazywa się W napisać w ramach kodu W = W ∗ 5.0.
60
znaczeniu:
• funkcje wczytywania węzła z pliku i zapisu do pliku, obie w wersji binarnej i tekstowej
oraz funkcja informacyjna wypisująca dane węzła w trybie konsolowym (tekstowym)
programu.
61
Algorytm działania generatora liczb pseudolosowych typu całkowitego dodatniego z prze-
działu h0, M AXi, na bazie którego działa obiekt opisywanej klasy, jest bardzo prosty i da
się streścić całkowicie w kilku punktach:
4. LOSOWANIE: Przypisujemy: b = a · (b − q · l) − r · l.
6. WYNIK: Liczba b jest pseudolosowa i należy do przedziału h0, M AX). Aby wygenero-
wać następną liczbę, z tak uzyskanym wynikiem wracamy do punktu 3.
Nie dla każdego zestawu liczb określonych w pierwszym punkcie dostajemy dobry (wy-
starczająco losowy) generator. Obiekty klasy Losowania powstają dla początkowych wartości
liczb równych: seed = 1002360, a = 16807, m = 2147483647, q = 127773, r = 2836. Wybór
m = M AX = 2147483647 jest podyktowany faktem, że jest to w przybliżeniu połowa warto-
ści maksymalnej liczby typu long int (maksymalna wartość numerycznego typu całkowitego
dodatniego dla większości kompilatorów 32-bitowych wynosi 232 − 1 = 4294967295).
Tak określony generator liczb pseudolosowych typu całkowitego jest prosty, a więc szybki,
co jest ważne dla działania programu symulacyjnego. Mimo to, jego testy dla setek miliardów
wygenerowanych liczb wykazały, że rozkład tych liczb na przedziale h0, M AXi jest wystar-
czająco równomierny.
Mając już daną liczbę pseudolosową b z określonego przedziału h0, M AXi, można z ła-
twością otrzymać pseudolosową reprezentację zmiennoprzecinkową liczby rzeczywistej P o
62
rozkładzie równomiernym na przedziale hOD, DOi, gdzie OD i DO są dowolnymi liczbami
rzeczywistymi. Uzyskujemy ją według prostego wzoru:
b−1
P = OD + · (DO − OD) . (5.4)
M AX
Oczywiście, ponieważ liczba b jest całkowita, dla tak określonego przedziału, nie otrzy-
mujemy rozkładu ciągłego lecz dyskretny o M AX możliwych elementach. Ponieważ jed-
nak w programie liczba ta wynosi M AX = 2147483647, to 1/M AX = 1/2147483647 ≈
0.0000000004656613. Oznacza to „ziarnistość” rozkładu dopiero dla dziewiątej cyfry znaczą-
cej reprezentacji zmiennoprzecinkowej liczby rzeczywistej, czyli w ogólnym wypadku bardzo
dobrą.
Obiekt klasy Losowania może jeszcze wygenerowć zmienną pseudolosową o rozkładzie
gaussowskim. Jeśli dana jest średnia rozkładu Gaussa S i jego odchylenie standardowe O,
oraz mamy dane dwie liczby losowe c oraz d o rozkładzie równomiernym na przedziale h0, 1i,
to z podanych wzorów (5.5a) i (5.5b) otrzymamy dwie liczby G1 oraz G2 o rozkładzie Gaussa
określonym liczbami S i O:
√
G1 = S + O · cos (2πc) · −2 · ln d, (5.5a)
√
G2 = S + O · sin (2πc) · −2 · ln d. (5.5b)
63
klasy informuje o numerze przedziału, w którym wystąpiła maksymalna liczba zliczeń, inna
- podaje tę wartość.
Klasa Histogram ma też zdefiniowany operator przekazujący wszystkie swoje składowe
do standardowego strumienia danych wraz z krótkim opisem tekstowym, a więc można prze-
kazać histogram w trybie tekstowym (na przykład) na ekran lub do pliku. Operator ten wy-
korzystany jest w funkcji zapisującej do pliku w wersji tekstowej. Dostępna jest też binarna
wersja funkcji, zapisująca histogram do pliku pod określoną nazwą oraz funkcja wczytująca
z określonego pliku binarną wersję histogramu.
Tworzenie histogramów podczas symulacji miało na celu określenie, jaki jest rozkład
szerokości przedziałów wyznaczonych przez punkty gięć oraz kątów gięć, które dla danego
węzła udają się bez przekryć. Pozwoliło to na zwiekszenie szybkości symulacji, ponieważ
po obliczeniu histogramów, uzyskane w ten sposób rozkłady stosuje się dalej w programie.
Parametr określający szybkość symulacji wzrasta wówczas o jeden-dwa rzędy wielkości w
porównaniu do losowań parametrów gięć z rozkładami równomiernymi.5 Szczegóły omówione
zostały w paragrafie 5.5 niniejszego rozdziału.
jego danych w jedną strukturę służy osobna klasa KnotSimData. Tworzy ona histogramy z tablicy, w której
zapisano określoną ilość udanych gięć węzła wraz z ich parametrami - punktem początkowym i końcowym
giętego przedziału oraz wartością kąta gięcia.
6 Oczywiście nie są to obrazki. Węzeł z każdej klatki można obracać i oglądać z każdej strony a także
„ręcznie” dokonywać na nim manipulacji - gięć, skalowania itp. lub rozpocząć od tego węzła nową symulację
działania algorytmu BONO, SONO lub BASONO. Jej wyniki dopisane zostaną do końca bieżącego lub innego
wybranego pliku.
64
Dla opisywanej klasy zostały też zdefiniowane funkcje składowe, dzielące duże pliki na
mniejsze lub łączące mniejsze w większe oraz zapisujące pod nową nazwą węzły z pliku wej-
ściowego ale z mniejszą częstotliwością, np. co drugi, co trzeci itp. Daje to możliwość zmniej-
szenia całkowitej ilości klatek animacji w pliku wynikowym. Jest to użyteczne zwłaszcza,
gdy sąsiednie klatki wejściowego pliku symulacyjnego różnią się tylko nieznacznie i obejrze-
nie każdej z nich nie jest konieczne do badania procesu rozplątywania węzła.
65
Wagi te można zmieniać i tak kontrolować w dość wyrafinowany sposób zachowanie się węzła
podczas symulacji.
1
N= (n · (n − 1) − n · m) (5.6)
2
sprawdzeń. A więc gdy m n (ma to miejsce dla każdego interesującego węzła), czas
trwania wszystkich sprawdzeń zależy w tej prostej wersji algorytmu w przybliżeniu kwadra-
towo od ilości segmentów.
Dla wspomnianego węzła gordyjskego w konformacji (311 3)A o długości całkowitej 106.6,
długość segmentu (odległość między środkami dwóch najbliższych sąsiadujących sfer) wynosi
wystąpiły przekrycia ani nie przekroczono maksymalnej krzywizny. Wynik ten był ponad 10 razy lepszy niż
bez optymalizacji, o której mowa w następnym paragrafie 5.5.
66
Wzór (5.2) daje w takim wypadku m = 17. Dla n = 584 i m = 17 dostajemy ze wzoru
(5.6) wartość 165272. Oznacza to N ≈ 1.65 · 105 iloczynów skalarnych wektorów odległości
punktów A i B za każdym razem, gdy sprawdzamy przekrycia najprostszą wersją algorytmu.
Jeśli chcielibyśmy dokonać 8 · 109 prób gięć, to czas zużyty na samo znajdowanie wektora
rAB i jego iloczynu skalarnego w prostej pętli (nie licząc transformacji węzła, sprawdzania
krzywizny i innych niezbędnych czynności) na wspomnianym procesorze z zegarem 1.4 GHz
trwałoby
130
8 · 109 · 1.65 · 105 · = 1.716 · 108 (5.8)
109
sekund czyli prawie 5.5 roku.8 Dzięki zastosowaniu opisanych pokrótce w następnych
akapitach (dość oczywistych) ulepszeniach algorytmu wykrywania przekryć, symulacja roz-
plątywania wspomnianego węzła trwała na tym samym procesorze nieco ponad 200 godzin.
Najistotniejsze ulepszenie algorytmu wykrywania przekryć jest następujące.9 W zbiorze
punktów liny, który rozpatrujemy, znajdują się środki sfer o promieniach r, formujących
model liny o promieniu przekroju r. Środki te leżą w wierzchołkach łamanej zamkniętej o
odcinkach równych s (rysunek 5.5).
Załóżmy, że sprawdzamy wzajemną odległość punktu A o indeksie i od punktów liny o in-
deksach j 6= i. Ponieważ mamy do czynienia z konformacją zamkniętą liny, indeks k + n ≡ k,
gdzie n jest ilością wszystkich wierzchołków zamkniętej łamanej, wzdłuż której rozstawiono
sfery. Wiemy, że nie musimy już sprawdzać określonej wzorem (5.2) ilości sąsiednich sfer,
bo zadbaliśmy o to, by żaden fragment węzła nie przekroczył maksymalnej krzywizny. Nie
sprawdzamy więc indeksów od i−m/2 do i+m/2. Jeśli odległość d między parą punktów jest
większa niż 2r, to wiadomo, że między tymi dwoma sferami nie wystąpiło przekrycie. Pamię-
tajmy jednak, że wierzchołki łamanej ustawione są wzdłuż liny w ciąg i środki najbliższych
sąsiadek znajdują się w odległości s od siebie. Jeśli d 2r niezależnie od ułożenia liny, a
więc nawet w najbardziej niekorzystnym wypadku, wzdłuż odcinka AB możemy, zaczynając
od punktu B rozstawić w odległościach s od siebie pewną ilość sfer ustawionych w ciąg, który
nie dosięgnie punktu A. Sytuację objaśnia rysunek 5.5.
Odległość d wcale nie musi być dużo większa niż 2r. Z rysunku 5.5 widać, że ilość m2
tych sfer, nie licząc tej, która ma środek w B, jest wartością całkowitą z liczby mR , danej
wzorem (5.9):
d − 2r
mR = . (5.9)
s
8 A więc sprawdzenie na domowym komputerze, czy ten jeden węzeł rozplącze się, nie byłoby możliwe w
67
Rysunek 5.5: Sfery o tych samych promieniach r, modelujące linę, rozstawione są w wierzchołkach łamanej
o odcinkach równych s (długości segmentów). Sprawdzamy przekrycie sfery o indeksie i, której środek leży
w punkcie A ze sferą o indeksie j (środek w punkcie B). Odległość między nimi równa jest d, co jest
długością odcinka AB i jest to najkrótsza łamana, jaką możemy pomiędzy nimi poprowadzić (kolor
jasnozielony). W związku z tym, niezależnie od ułożenia liny, wiemy, że sfery o indeksach j + 1, j + 2, j + 3,
j + 4 oraz j + 5 na pewno nie będą się przekrywać ze sferą o indeksie i. To samo tyczy się sfer o indeksach
j − 1, j − 2, j − 3, j − 4 oraz j − 5. Sfery poprowadzone po najkrótszej łamanej, oznaczono na
pomarańczowo. Są one przesunięte na odcinek łączący sfery o indeksach i oraz j z pewnej szczególnej
łamanej o większej długości (kolor ciemnobłękitny). Przesunięcie sfer symbolizują jasnobłękitne strzałki.
Stąd wiadomo, że nie musimy już sprawdzać pod kątem przekryć ze sferą daną środkiem
w punkcie A, tych sfer których środki mają indeksy od j − (m2 − 1) do j + (m2 − 1).
Ponieważ najczęściej punkty o indeksach maksymalnie oddalonych od siebie (o n/2, gdzie
n to ilość wszystkich punktów), są również najbardziej odległe w przestrzeni, to od nich
zaczynamy sprawdzanie przekryć z daną sferą. Następnie sprawdzamy pozostałe indeksy,
zaczynając tym razem i za każdym następnym od tych, które są najbardziej oddalone od
dotychczas sprawdzonych. W ten sposób znacznie szybciej sprawdza się wszystkie przekrycia
w porówaniu z prymitywną wersją algorytmu.
Następne, bardziej oczywiste, ale również ważne, usprawnienie wynika z faktu, że po
transformacji wykonanej na punktach o indeksach od k do k + p, wiemy, że tylko te punk-
ty zmieniły swoje wzajemne położenia. Nie musimy więc sprawdzać przekryć pozostałych
punktów, które podlegały, co najwyżej, transformacjom ortogonalnym (a więc nie zmieniają-
cym wzajemnych odległości i kątów). W szczególności, gdy sprawdza się przekrycia po gięciu
danym osią przechodzącą przez punkty o indeksach k i k + t (a więc w trakcie działania
kluczowego dla pracy algorytmu BONO), wiadomo, że nie zmieniają wówczas wzajemnych
położeń punkty łamanej o indeksach w przedziale domkniętym od k +1 do k +t−1. Podobnie
punkty w pozostałym przedziale domkniętym o indeksach od k + t + 1 do k + n − 1 również
68
nie zmieniają swych wzajemnych położeń. Musimy jedynie sprawdzić przekrycia punktów o
indeksach z jednego przedziału z punktami o indeksach z drugiego przedziału. Stąd, zamiast
sprawdzać w przybliżeniu
p1 = n · (n − 1)/2 (5.10)
p2 = (t − 2) · (n − t − 2) (5.11)
p2 (t − 2) · (n − t − 2)
= =
p1 n · (n − 1)/2
(5.12)
(n/2 − 2) · (n − n/2 − 2) (n/2) · (n − n/2) 1
= ≈ = .
n · (n − 1)/2 n · n/2 2
w wyrażeniach obecnych w tym zdaniu odjemne 1 oraz 2 nie mają większego znaczenia.
69
5.5 Implementacja algorytmu BONO
W paragrafie niniejszym omówione są sposoby przyspieszenia symulacji BONO, użyte w
programie. Oczywistym, jest, że zależy nam, aby symulacja zakończyła się jak najszybciej, a
więc, aby w jednostce czasu, program dokonał na węźle jak największej liczby gięć. I tu należy
zaznaczyć, że chodzi o gięcia udane, ponieważ nieudane, czyli takie, po których następują
przekrycia, są odrzucane i przywracany jest stan węzła sprzed takich gięć. W punkcie 5.4,
pokazano jak przyspieszyć wykrywanie przekryć po gięciu, natomiast tutaj omówi się, jak
uzyskano statystyczne zwiększenie parametru, nazywanego zmianą węzła Z.
Jak powiedziano, zależy nam, aby stosunek gięć udanych do wszystkich prób był maksy-
malny, aby węzeł szybko zmieniał się w czasie rzeczywistym symulacji. Ale jeśli każde z tych
gięć będzie związane z bardzo małym kątem, to obserwowana sumaryczna zmiana węzła w
czasie będzie mała. Dlatego chcemy, aby wartość bezwzględna kąta gięcia |α| była jak naj-
większa (ale nie większa niż maksymalny bezpieczny kąt gięcia αmax określony równaniem
5.3). Jednocześnie zależy nam na tym, aby przy każdym gięciu, swoje położenia względem
innych zmieniała jak największa liczba punktów (sfer) liny. Wiąże się to z wyborem możliwie
dużego przedziału gięcia p, zdefiniowanego jak poniżej dla dwóch indeksów i oraz j:
gdzie mod oznacza dzielenie modulo, a n jest całkowitą ilością segmentów. Interesuje nas
wartość absolutna różnic indeksów i − j lub j − i. W konformacji zamkniętej liny wybieramy
mniejszą z tych dwóch wartości (funkcja min), gdyż gniemy względem siebie zawsze dwa
przedziały o pij B oraz pji = n − pij B segmentach. Dzielenie modulo zapewnia, że wartość
p należy do przedziału h0, n − 1i. Na końcu odejmujemy wartość 1, ponieważ, gdy odległość
indeksów wynosi 2, to podczas gięcia zmienia się położenie tylko jednego punktu względem
reszty (jego indeks znajduje się pomiędzy indeksami i oraz j). Dla większych odległości -
podobnie - ilość punktów zmieniających swe położenia jest mniejsza o 1 od mniejszej z dwóch
odległości między indeksami. Wartość p mniejsza niż 0 (równa −1) nie ma sensu fizycznego,
ponieważ indeksy wskazują wówczas ten sam punkt i oś gięcia nie jest zdeterminowana.
Załóżmy, że mamy daną wartość przedziału gięcia pk podczas k-tego udanego gięcia węzła
o n segmentach. Definiujemy wówczas zmianę węzła Zk jako:
pk · |αk |
Zk = max 0, , (5.14)
n
gdzie αk , jest kątem gięcia. Wielkość ta jest jest dobrym wyznacznikiem tego, jak mocno
zmienia się węzeł podczas k-tego gięcia, gdyż jest tym większa, im większy kąt gięcia αk
70
oraz im większy przedział pk . Zmiana węzła Zk jest zawsze dodatnia lub równa zeru (dzięki
funkcji max), a jej maksymalizacja dla wielu gięć prowadzi do szybszych rzeczywistych obser-
wowalnych zmian węzła. Dzielenie przez n sprawia, że dla dwóch ireprezentacji konformacji
tego samego węzła, różniących się jedynie ilością segmentów, zmiana węzła przy gięciu w
tych samych punktach geometrycznych węzła jest w przybliżeniu niezależna od n.
Podczas symulacji ważne jest nie jedno szczególne gięcie, lecz ich tysiące, miliony oraz
P
sumaryczna zmiana węzła ∆Z = k Zk w rzeczywistym czasie symulacji ∆t, czyli średnia
szybkość zmiany węzła vZ w jednostce czasu:
∆Z
vZ = . (5.15)
∆t
Parametr ten obserwowano przy dokonywaniu optymalizacji algorytmu. Sposób tej opty-
malizacji opisano w następnych akapitach.
Oczywiste jest, że gięcia o dużej zmianie Z będą się udawać rzadziej, a małej - częściej.
Wynika to z geometrii węzła i tego, że im większy kąt gięcia αk , tym większe prawdo-
podobieństwo przekrycia. To samo tyczy się przedziału pk . Można spodziewać się pewnego
rozkładu prawdopodobieństwa, że gięcie o określony kąt, albo dla określonego przedziału uda
się, ale wyznaczenie go w sposób teoretyczny jest zadaniem bardzo trudnym. Rozkład ten
można zbadać dla N udanych gięć i wyznaczyć w bardzo prosty sposób, opisany w krokach
następującego algorytmu:
1. Dla k-tego gięcia, losuje się kąt αk z przedziału h−αmax , αmax i z rozkładem równo-
miernym na tym przedziale.
3. Jeśli pk zdefiniowane w równaniu (5.13) dla tych indeksów jest mniejsze od 1, powtarza
się poprzedni krok 2., aż do skutku.11
4. Dokonuje się gięcia o kąt αk względem osi przechodzącej przez punkty o indeksach ik
i jk .
przechodzi przez sąsiednie sfery i występuje jedynie obrót wszystkich punktów wokół tej osi, ale bez gięcia.
71
8. Zwiększa się wartość k o 1.
Histogramy tworzy się dla indeksów początkowych przedziału ik , dla wartości szerokości
przedziału pk , dla kątów gięcia αk oraz dla poszczególnych zmian węzła Zk . Przykłado-
wo, na rysunkach: 5.6, 5.7, 5.8 oraz 5.9 przedstawiono histogramy wyznaczone dla losowań
z rozkładami równomiernymi dla węzła gordyjskiego typu (311 3)A o n = 584 segmentach
wydłużonego z konformacji idealnej o około 2.49% do długości l = 106.6 (patrz rys. 6.2).
Histogramy powstały dla N = 500 tys. udanych gięć. Wartość ta stanowiła zaledwie około
2.7% wszystkich prób. Każdy rysunek opatrzony jest dość obszernym komentarzem, który
omawia strukturę histogramu i jej zależność od wielkości specyficznych dla symulacji BONO.
Mając dane tak wyznaczone rozkłady prawdopobieństw dla wymaganych parametrów
gięć, można przystąpić do losowania gięć w czasie trwania symulacji BONO zgodnie z tym
rozkładami. Jeśli analiza jest słuszna, powinno oszczędzić to czas procesora zużywany wcze-
śniej na próbkowanie gięć z parametrami, które zmniejszały prawdopodobieństwo gięcia.
Losowanie liczb dla rozkładów określonych histogramami wykonuje się następująco:
Parametry dla każdego k-tego gięcia generowane są zgodnie z poniżej opisanym sposobem:
algorytmu, który znajduje się powyżej, losuje się liczbę z zakresu h0, par · bazai, gdzie par jest pewnym
eksperymentalnie dobranym parameterem dodatkowym spełniającym zależność: par ∈ h0, 1i.
72
Rysunek 5.6: Histogram zliczeń dla konformacji początkowej węzła gordyjskiego (311 3)A o n = 584
segmentach, wydłużonego z konformacji idealnej o około 2.49% do długości l = 106.6. Histogram powstał
dla N = 500 tys. udanych gięć i równomiernego rozkładu losowego dla indeksu pierwszego punktu ik , przez
który przechodzi oś gięcia. Na osi poziomej numery wszystkich indeksów ik , na osi pionowej - ilości zliczeń.
Jak widać, rozkład wynikowy nie jest równomierny. Dla punktów o niektórych indeksach ilość udanych gięć,
gdy oś przechodzi przez te punkty, jest ponad cztery razy większa niż dla innych. Wynika to z geometrii
węzła, ale nawet przybliżone wyznaczenie tej zależności w sposób teoretyczny byłoby bardzo trudne. Widać
też, że z uwagi na symetrię węzła, pewna struktura tego histogramu, widoczna dla pierwszej połowy
indeksów, powtarza się w drugiej połowie w niemal identycznej formie. Środek węzła przypada około
ik = 116 oraz ik = 408.
4. Wartość kąta gięcia αk obliczamy z ilorazu ±Zk /pk . Jeśli wartość |αk | jest większa niż
αmax , przyjmujemy wartość αk = ±αmax .
Efekt gięcia z tak wygenerowanymi rozkładami parametrów jest zaskakująco dobry: szyb-
kość zmiany węzła w czasie (definicja (5.15)) dla węzła gordyjskiego typu (311 3)A o n = 584
i o długości l = 106.6 wzrasta około 45 razy, co przypuszczalnie można uznać za równoznacz-
ne z czterdziestopięciokrotnym skróceniem czasu trwania symulacji13 . Jest to związane ze
wzrostem stosunku ilości gięć udanych do ilości wszystkich prób, ale widocznie nie tylko z
tym, ponieważ stosunek ten wzrasta mniej razy - 13-14-krotnie - z około 2.7% do około 37%.
Oznaczać to musi, że wzrasta także statystyczna wartość Zk .
13 Nie ma tu pewności, ponieważ wybór parametrów z innym rozkładem w tym procesie Markowa może
mieć znaczący wpływ na przebieg całej symulacji. Z całą jednak pewnością szybkość symulacji (odwrotnie
proprocjonalna do czasu trwania rozplątywania węzłów) wzrasta w przypadku każdego węzła przynajmniej
kilku-kilkunastokrotnie.
73
Rysunek 5.7: Histogram zliczeń w przedziałach pk dla konformacji początkowej węzła gordyjskiego (311 3)A
o n = 584 segmentach, wydłużonego z konformacji idealnej o około 2.49% do długości 106.6. Histogram
powstał dla 500 tys.udanych gięć i równomiernego rozkładu losowego dla szerokości giętych przedziałów
pk ∈< 1, n/2 >. Na osi poziomej - szerokości przedziałów pk , przy których udały się gięcia. Na osi pionowej
- ilości zliczonych udanych gięć dla tych przedziałów. Należy zwrócić uwagę, że skala osi pionowej jest
logarytmiczna. Rozkład wynikowy pokazuje że prawdopodobieństwo, że gięcie będzie udane dla p ∈ h1, 30i
maleje w przybliżeniu wykładniczo wraz ze wzrostem p. Autor sprawdził, że około 80% wszystkich udanych
gięć przypada dla p < 15, a 90% dla p < 28.
Rysunek 5.8: Histogram zliczeń w przedziałach αk dla węzła gordyjskiego (311 3)A o n = 584 segmentach
wydłużonego z konformacji idealnej o około 2.49% do długości l = 106.6. Histogram powstał dla N = 500
tys. udanych gięć i równomiernego rozkładu losowego dla kątów αk ∈ h−αmax , αmax i (αmax zdefiniowano
w równ. (5.3)). Na osi poziomej - zakresy kątów αk przy których udały się gięcia, na osi pionowej - ilości
udanych gięć dla tych zakresów. Wartość maksymalna wynosi ok. 2.9 · 104 . Należy zwrócić uwagę, że skala
osi pionowej jest logarytmiczna. Rozkład wynikowy pokazuje, iż prawdopodobieństwo, że gięcie będzie
udane szybko maleje wraz ze wzrostem |αk |. Jak widać, jest ono (w przybliżeniu) symetryczne, czyli kąty
ujemne są tak samo prawdopodobne jak dodatnie o tych samych wartościach bezwzględnych, czego należało
się spodziewać. Granice histogramu wyznaczone są przez ±αmax ≈ 0.175. Wartość ta zmieniała się
nieznacznie w czasie symulacji tych 500 tys. gięć (rozmiar węzła nieznacznie się zmieniał) i stąd pewne
rozmycie tych granic.
74
Rysunek 5.9: Histogram zliczeń, dla węzła gordyjskiego (311 3)A o n = 584 segmentach wydłużonego z
konformacji idealnej o około 2.49% do długości l = 106.6. Histogram stworzono dla zmiany węzła Zk przy
k-tym gięciu, zdefiniowanej równaniem (5.14). Na osi poziomej - zakresy Zk przy których udały się gięcia,
na osi pionowej - ilości udanych gięć dla tych zakresów. Wartość maksymalna wynosi ok. 1.29 · 104 . Rozkład
wynikowy pokazuje że prawdopodobieństwo, że gięcie będzie udane, szybko maleje wraz ze wzrostem Zk .
Histogram wykreślono dla zakresu Zk w którym udało się 92.8% wszystkich gięć. Interesująca może
wydawać się „schodkowa” struktura histogramu ze schodkiem pojawiającym się dla wielokrotności Zk
równej około 0.175. Wyjaśnić można ją, gdy zauważy się, że 0.175 to wartość bardzo bliska kątowi αmax
(zdefiniowanemu w równ. (5.3)), obserwowanemu na rys. 5.8, który stanowi granice zakresu dozwolonych
kątów dla tego węzła. Liczba Zk jest zawsze wielokrotnością kąta αk oraz liczby pk (dzieloną jeszcze przez
stałą całkowitą n). Liczba pk przyjmuje tylko wartości całkowite. Dla małych wartości: pk = 1, 2, 3, 4...
ilość udanych gięć wraz z jej wzrostem bardzo gwałtownie maleje (patrz rys. 5.7). Jednocześnie
P gięcia dla
tak małych przedziałów pk mają największy wkład do sumarycznej zmiany węzła ∆Z = Z w całym
k k
dozwolonym przedziale kątów ±αmax , gdyż niezależnie od kąta αk , stosunkowo rzadko powodują powstanie
przekryć. Wszystko to razem wzięte tłumaczy schodkową strukturę histogramu. Struktura ta byłaby mniej
widoczna dla liny modelowanej większą liczbą segmentów, a dla liny idealnej znikałaby całkowicie.
Wskazuje to na niedoskonałość modelu i „kwantowe” efekty takiej reprezentacji liny w programie.
Histogram powstał dla N = 500tys. udanych gięć.
75
5.6 Implementacja algorytmu BASONO
W paragrafie niniejszym krótko opisze się sposób działania ulepszonego algorytu zaciska-
nia węzłów. Przypadkowo odkryty przez autora 14 spósób zaciskania, prowadzi z pomocą
użytkownika programu do konformacji bliskiej minimalnej dla najbardziej skomplikowanego
z badanych węzłów - 611 6 w czasie krótszym niż 5 minut, gdy wcześniej, na komputerze
klasy PC, trzeba było czekać na to godzinami. Dla mniej złożonych węzłów, do konformacji
zbliżonej do idealnej, dochodzi się w czasie jeszcze krótszym.
Idea BASONO opisana została w rozdziale 2 w paragrafie 2.2. Przypomnijmy, że aby
zacisnąć węzeł, prostuje się jego łuki, jakie tworzy lina w stanie luźnym (algorytm SONO).
Powoduje to skracanie liny. Dochodzi się wówczas częstokroć do konformacji nieidealnej, w
której łuków już się dalej prostować nie da (patrz rys. 2.7). Można wtedy uruchomić algo-
rytm BONO, który porozsuwa od siebie fragmenty liny, tworząc znowu konformację z łukami
do prostowania. W trakcie BASONO stosuje się na zmianę SONO i BONO w sposób au-
tomatyczny. Dodatkowo, dzięki zastosowaniu algorytmu Metropolisa-Hastingsa, zaciskanie
możemy rozpocząć od bardziej regularnej konformacji, gdy fragmenty liny wewnątrz skom-
plikowanych „guzłów” są już od siebie możliwie daleko oddalone (rys. 2.2 w paragrafie 2.2.4).
Przy zastosowaniu tych wszystkich zabiegów na zmianę, można znacząco skrócić czas
zaciskania skomplikowanego węzła do konformacji bliskiej idealnej względem czasu, jakie-
go potrzebował SONO z kilkunastu (czasem) godzin do jednej-dwóch godzin (a czasem do
kilkunastu minut). Przy czynnym zaangażowaniu użytkownika, który „raz po raz” reguluje
parametry algorytmu Metropolisa-Hastingsa (wybór sposobu oblicznia energii i temperaturę)
czas ten spada do godziny lub kilku-kilkunastu minut.
Okazuje się, że zastosowanie dodatkowego „wybiegu” może 15 zredukować czas zaciskania
dość skomplikowanych węzłów do konformacji bliskich idealnym najwyżej kilku minut. Istota
tego wybiegu została odkryta przypadkowo i związana była z wprowadzeniem do programu
możliwości płynnej regulacji ilości segmentów węzła (patrz rys. 5.3). Algorytm ten (jak i
proces skalowania węzła) zabezpieczony jest przed takim zwiększeniem długości segmentów,
utworzonych przez sfery modelujące linę, że grubość sfery jest mniejsza niż długość segmentu.
Inaczej mówiąc, sąsiednie sfery zawsze przynajmniej minimalnie się stykają (rys. 5.10).
Prawie każda zmiana ilości segmentów wskutek działania tego niedoskonałego algorytmu,
prowadzi do skracania węzła, co objaśnia rysunek 5.11.16 .
Jak pokazano na rysunku 5.11, długość łamanej przy zmniejszaniu ilość sfer maleje, po-
dobnie przy zwiększaniu. W drugim wypadku otrzymujemy dodatkowo efekt wygładzenia
14 W ostatnich dniach pisania pracy magisterskiej...
15 Przy obecności użytkownika programu na chwilę obecną, lecz zostanie to poprawione.
16 Nie stanie się tak tylko wtedy, gdy zwiększamy ilość segmentów całkowitą ilość razy)
76
Rysunek 5.10: Dwa obrazki fragmentów liny poluźnionego mocno węzła. Program nie zezwala na dowolne
oddalenie sfer modelujących linę. Dwie sąsiednie sfery muszą zawsze pozostawać w kontakcie.
Rysunek 5.11: Zmiana ilość wierzchołków łamanej, po której, w wierzchołkach tych, rozstawione są środki
sfer, modelujących linę. Stare położenia wierzchołków i łamana zaznaczone na czerwono a nowe na
niebiesko. Zaczynając w punkcie A, zwiększamy długość segmentów, przez co maleje ich ilość. Zaczynając w
punkcie B, zwiększamy ilość segmentów, zmniejszając ich długość. W obu wypadkach nowa łamana „ścina”
wierzchołki starej i wypadkowa długość łamanej maleje.
77
węzła, czym można, np., usunąć fragmenty, w których przekracza on lokalnie maksymalną
dozwoloną krzyiznę. Ponieważ algorytm ścina wierzchołki starej łamanej definiującej (wraz z
promieniem sfery) węzeł w programie i przesuwa je ku środkom łuków, po jego użyciu mogą
pojawić się przekrycia. Dla każdego przekrycia dwóch sfer, rozsuwa się wówczas ich środki,
wzdłuż odcinka łączącego te środki, na odległość większą niż podwojona długość promienia.
Tak „sztucznie” usunięte przekrycie może spowodować przekrycie z innymi sferami, więc
procedurę powtarza się aż do całkowitego wyeliminowania nachodzenia na siebie sfer (dla
bardzo wielu przekryć i mocno zaciśniętego węzła, nie zawsze jest to możliwe i wtedy pro-
gram, niestety, może się zawiesić). Wykorzystujemy tutaj więc efekt ścinania wierzchołków,
który doskonale działa wraz prostowaniem łuków SONO i wyginaniem BONO. Dodatkowo i
może to jest najważniejsze, zmniejszenie ilości sfer przyspiesza działanie wszystkich algoryt-
mów, bo komputer pracuje wtedy z mniejszą ilością danych. Jednocześnie, ponieważ sąsiednie
sfery zawsze się stykają a inne nie zbliżają się na odlełgość mniejszą wartość promienia (w
rzeczywistości przekrycia są bardzo małe, stanowią zaledwie ułamek promienia), typ węzła
jest zawsze zachowany. Nic nie szkodzi też, aby w dowolnym momencie symulacji, zatrzymać
ją, zaznaczyć dwa wybrane punkty i dokonać ręcznego gięcia, poprawiając do woli geome-
trię węzła. Dodatkowy, bardzo dobry efekt skracający linę, otrzymujemy, skalując co chwilę
nieznacznie węzeł, przy czym przekrycia po skalowaniu usuwa ten sam, opisany przed chwi-
lą, mechanizm. Otrzymujemy więc, dla małej ilości sfer, bardzo szybko konformacje węzłów
minimalne, lub bardzo do nich zbliżone, które są nadal tymi samymi węzłami, choć pozornie
wyglądają jak bezładna masa kulek. Następnie stopniowo zwiększamy tę ilość, uzyskując
węzły „porządnie” wyglądające. Etapy działania algorytmu dla węzła 611 6 pokazuje rysunek
5.12.
Przy pomocy opisanych metod, które wszystkie razem nazywam tutaj BASONO, w ciągu
kilkunastu minut „zabawy” i dalszych kilku minutach pozostawionych domowemu kompu-
terowi na „dokończenie sprawy”, udało się autorowi pracy uzyskać konformację węzła 611 6
o długości około 170.055 przy 692 segmentach. Najlepszy dotąd wynik dla SONO.SP, po
kilkunastu godzinach działania procesora na domowym komputerze i dla 680 segmentów17 ,
wynosił około 170.502, ale, jak się okazuje, była to konformacja minimalna lokalnie. Istnie-
je bowiem konformacja mocniej zaciśnięta, która różni się wyraźnie od poprzedniej wersji
znacznie mniejszą symetrią. Oba węzły, w porównaniu, pokazuje rysunek 5.13.
17 Statystycznie im mniej segmentów, tym łatwiej wykorzystać segmentację modelu liny w celu jej skrócenia.
Lina stworzona ze sfer o promieniu r ma mniejszą objętość niż „pełna” lina idealna o tym samym promieniu.
78
Rysunek 5.12: Mechanizmy BASONO w akcji: A) zaczynamy od jakiejś „brzydkiej” konformacji węzła 611 6
o długości około 550, B) stosujemy automatycznie na zmianę SONO/BONO, efekt - po kilku sekundach
długość węzła spada do około 270; na tym etapie wybieramy też (kliknięcia myszą) dwa punkty (jasno- i
ciemnobłękitny przy górnej pętli) i prowadzimy przez nie oś gięcia, C) wygięliśmy węzeł względem
uprzednio manualnie zdefiniowanej osi, punkty gięcia dostały nieco czerwonego „barwnika”, co oznacza
przekroczenie krzywizny, ale nie przejmujemy się tym - wierzchołki i tak zostaną ścięte, a łuki -
wyprostowane, D) węzeł ten jest efektem działania jednocześnie BONO, SONO i algorytmu zmniejszania
ilości segmentów, jego długość jest teraz mniejsza niż 170, ilość segmentów - bliska minimalnej, E) znów
wybieramy dwa punkty i gniemy względem osi, która przez nie przechodzi, w celu dowolnej modyfikacji
geometrii węzła, F) na tym etapie zaczynamy stopniowo skalować węzeł, wielokrotnie o 1% w dół, stale
przy włączonych algorytmach BONO i SONO, działających automatycznie, G) doszliśmy do długości około
164; przy tak małej ilości segmentów, która teraz jest minimalna, nie jest to nic nadzwyczajnego, H)
skalowanie o 1% w dół przy wyłączonych innych algorytmach automatycznie ujawnia, że węzeł znajduje się
w konformacji, w której jest bardzo niewiele miejsca na ruch - ciemnoczerwony kolor oznacza przekrycia, I)
użycie algorytmu BONO rozsuwa przekrycia automatycznie, taki sam efekt daje regulacja ilości segmentów,
J) efekt kilkukrotnego skalowanie węzła w dół przy działających innych algorytmach; węzeł dodatkowo
obrócono, żeby obejrzeć go z innej strony i dodano mu nieco segmentów, jego długość wzrosła do około 168,
K) zaczynamy teraz znacznie zwiększać ilość segmentów - z nieco bezkształtnej bryły zaczyna wyłaniać się
struktura zaciśniętego węzła o długości około 172, wartość ta wzrasta przy zwiększaniu ilości segmentów;
wszystkie algorytmy są stale aż do końca, włączone, aby bez przerwy szukać lokalnych minimów długości,
L),M),N) - trzy różne widoki osiągniętego efektu; ilość segmentów zwiększyliśmy do ostatecznej wartości
około 800, długość wynosi mniej-więcej 173.7, gdy minimalna osiągnięta dla tego węzła - 170.06 (porównaj
rys. 5.13); wszystkie te czynności razem wzięte, gdy nabierze się nieco wprawy, mogą zająć na domowym
komputerze - dosłownie - 2 minuty.
79
Rysunek 5.13: Przy użyciu BASONO i obserwacji wizualizacji wyników jego działania, oraz po chwili
„zabawy” parametrami algorytmów, uzyskuje się konformacje mocniej zaciśnięte, niż te, do których
prowadzi sam algorytm SONO po wielu godzinach samotnej pracy procesora. Seria rysunków przedstawia
ten sam węzeł gordyjski 611 6 zaciśnięty przy pomocy SONO (trzy górne widoki) oraz BASONO (trzy dolne
widoki). Pierwszy węzeł reprezentowany jest przy użyciu 680 segmentów i znajduje się w lokalnym minimum
długości - około 170.502. Drugi składa się z 692 segmentów i osiągnął długość 170.055 (patrz przypis nr 17
w tym paragrafie). Wątpliwym jest jednak, by było to minimum globalne długości tego węzła gordyjskiego,
gdyż osiągnięto je w ciągu zaledwie kilkunastu minut. Widać wyraźne różnice pomiędzy obiema
konformacjami. Ciekawe jest to, że krótszą okazuje się ta z nich, która ma widocznie mniejszą symetrię.
80
Rozdział 6
Spontaniczne rozplątywanie
węzłów gordyjskich - wyniki
Rozdział ten prezentuje wyniki setek godzin symulacji przeprowadzonych głównie na domo-
wym komputerze klasy PC z procesorem 32-bitowym Intel Celereon M z zegarem 1.46MHz
oraz 1MB pamięci podręcznej (cache). Pokazano istotne szczegóły procesu rozplątywania i
przybliżone zależności czasów rozplątywania od wydłużeń węzłów z konformacji idealnych dla
czterech wybranych konformacji gordyjskich o arbitralnie dobranych ilościach segmentów. W
związku z tym krótkim wstępem, kilka spraw wymaga uściślenia:
81
na przedziale ciągłym (z dokładnością numeryczną, która jest w pełni wystarczają-
ca). Stąd przestrzeń stanów węzła można również uznać za ciągłą, jak w przypadku
prawdziwej liny. Należy jedynie pamiętać, że segmentowość liny ma wpływ na średnią
grubość węzła. W konformacjach zbliżonych do idealnych, segmentowość ta wpływa
więc znacznie na parametr względnego wydłużenia z konformacji idealnej. Wyniki bo-
wiem uznajemy za niezmiennicze względem węzłów, w których równomiernie (razy tę
samą wartość różną od zera) przeskalowano zarówno grubość liny idealnej d i wektory
jej punktów (stąd i długość l).
• Proces rozplątywania wszystkich węzłów składa się z dwóch etapów, znacznie różnią-
cych się czasem trwania (ilością udanych gięć). Pierwszy etap, to przejście jednej z
dwóch pętli węzła, zarzuconej na któryś z dwóch „guzłów” na drugą stronę. W inte-
resujących przypadkach, gdy rozplątanie węzła jest stodunkowo trudne, etap ten zwią-
zany jest z czasem trwania, z reguły, kilka (1-3) rzędów wielkości dłuższym niż etap
późniejszy. W tym następnym etapie węzeł rozplątuje się już całkowicie do konforma-
cji pojedynczej pętli (trywialnej). Czas rozplątania węzła rozumie się więc jako ilość
gięć tego pierwszego etapu, ponieważ ona to silnie zależy od wydłużenia węzła. Osobno
bada się zależność trwania rozplątywania drugiego etapu, która jest znacznie słabiej
zależna od małych wydłużeń wzlędnych z konformacji idealnych.
82
Rysunek 6.1: Sposób poprowadzenie liny badanych węzłów gordyjskich (311 3)A oraz (311 3)B .
Tworzy się je zasadniczo z węzła trywialnego, wiążąc węzeł trójlistny z „podwójnej” liny i za-
rzucając na niego pętlę (patrz rysunek 1.4). Omówione zostaną dwa podtypy węzła typu 311 3,
nazywane tutaj (311 3)A oraz (311 3)B , a różniące się szczegółami w kwestii poprowadzenia
liny, które widać na rysunku 6.1.
Pierwszy z nich (311 3)A jest o tyle ciekawy, że przy stosunkowo szczegółowej reprezentacji
(n = 584 segmentów), udało się go rozplątać w sposób całkowicie spontaniczny z konformacji
wydłużonej o zaledwie około 2.49% (względem konformacji o minimalnej uzyskanej długo-
ści).2 Proces tego rozplątywania opatrzony został serią ilustracji i można go traktować jako
modelowy dla wszystkich węzłów gordyjskich zaplątywanych w opisany w pierwszym roz-
dziale (patrz rysunek 1.4) sposób. Dodatkowo pokazano histogramy dla tego samegu typu
węzłów ale o roznych długościach stworzone dla parametrów 0.5mln udanych gięć.
Drugi typ węzła - (311 3)B wyróżniono, ponieważ najprawdopodobniej ustalono wąski
przedział, w którym znajduje się dolna granica jego możliwości rozplątania, co wzkazywałoby,
że zależność ta jest progowa. Szczegóły znajdują się w dwóch następujących paragrafach tego
rozdziału.
2 Była to jedna z najdłuższych (a prawdopodobnie najdłuższa) symulacja, trwająca 200-300 godzin pracy
83
Rysunek 6.2: Początkowa konformacja węzła gordyjskiego (311 3)A o 584 segmentach, wydłużonego z
konformacji idealnej o około 2.49% do długości 106.595.
6.1.1 Konformacja A
Rysunek 6.2 przedstawia początkową konformację węzła (311 3)A o długości 106.59 i n =
584 segmentach. Minimalna długość, jaką udało się dla tego węzła i tylu segmetów uzyskać
wyniosła około 104, a więc wspomniany rysunek nie różni się w sposób łatwy do zauważenia
od wersji dla węzła maksymalnie zaciśniętego. Serie obrazków na rysunkach 6.3 oraz 6.4
pokazuje udany proces rozplątywania tego węzła. Obrazki mówią same za siebie, ale dla
jasności zostały opatrzone dodatkowym komentarzem.
Następne cztery rysunki: 6.5, 6.6, 6.7 oraz 6.8 to porównanie histogramów parametrów
udanych gięć dla węzłów typu (311 3)A o czterech różnych długościach: około 106.6, 110.4,
117, 130 oraz 147. Warto porównać je jeszcze z rysunkami 5.6, 5.7, 5.8 oraz 5.9 (paragraf
5.5) histogramów dla najkrótszej rozplątanej wersji tego węzła (długość około 106.59), któ-
re omówiono obszerniej i z osobna w przypisach do ilustracji. Podobnie w przypisach do
przedstawionych serii histogramów znajduje się omówienie widocznych zależności - struktur
histogramów od długości węzłów.
Wykresy na rysunku 6.9 pokazują zależność czasów rozplątywania węzłów od ich długości
oraz od względnego wydłużenia z konformacji o długości zbliżonej do minimalnej. W obu
przypadkach skala osi pionowej jest logarytmiczna. Czas rozplątywania mierzony jest ilością
udanych gięć. Pokazane są wykresy dla obu etapów rozplątywania - przed (rysunek 6.9) i po
(rysunek 6.10) przejściu pętli na drugą stronę „guzła”. W przypisach do ilustracji znajdują
się stosowne komentarze.
84
Rysunek 6.3: Historia w obrazkach pierwszego etapu rozplątywania węzła (311 3)A o n = 584 segmentach i
długości l = 106.595 (wydłużenie o około 2, 49% względem konformacji o minimalnej uzyskanej długości).
Każda klatka historii ukazuje ten sam moment w dwóch widokach dla „kamer” patrzących z obu
przeciwległych stron węzła. Liczba przy klatce (pomiędzy dwoma widokami) oznacza miliony udanych gięć,
jakie węzeł ma za sobą. Całkowite zsunięcie się pętli z dolnej części węzła nastąpiło w ciągu 500 tys.
udanych gięć, następujących po ostatniej klatce. Ten końcowy proces zsuwania się pętli można zawsze
szybko odtworzyć. Jego szczegóły pokazuje rys. 6.4.
85
Rysunek 6.4: Drugi etap rozplątywania węzła z rys. 6.3. Liczba przy każdym obrazku ponownie oznacza
miliony udanych gięć, jakie węzeł ma za sobą. Historia zaczyna się 500 tys. (+0.08 mln = 80 tys.) udanych
gięć po ostatnim obrazku z rys. 6.3 i w porównaniu do etapu pierwszego jest znacznie bardziej „burzliwa”.
Gdy tylko pętla zsunie się z „guzła”, uwolniony fragment liny uzyskuje dużą swobodę i stopniowo wsuwa się
do wewnątrz węzła, podczas gdy w „guźle” tym zwiększają się stopniowo odległości między fragmentami
liny. Następuje poluźnienie i dalej - całkowite rozplątanie tej poluźnionej części węzła. Przez ten czas druga
część węzła, uzyskując nieco wolnej liny, również zaczyna się poluźniać, by w końcu podzielić losy pierwszej.
Następuje całkowite rozplątanie węzła gordyjskiego do konformacji w sposób oczywisty trywialnej.
Proporcje na całym rysunku nie są zachowane (ale autor starał się je zachować dla możliwie długich serii
kolejnych obrazków).
86
Rysunek 6.5: Histogramy zliczeń dla punktów ik , przez które przechodzi oś gięcia dla opisywanego w tym
paragrafie węzła. Na osi poziomej numery wszystkich indeksów ik , na osi pionowej - ilości zliczeń. Środek
węzła przypada w okolicach ik = 116 oraz ik = 408. Każdy z histogramów opatrzony jest oznaczeniem
długości węzła l. Widać dobrze, że wraz z poluźnianiem węzła, histogramy „rozmazują” się i stopniowo
znika silna zależność prawdopodobieństwa powodzenia gięcia od wyboru pierwszego punktu jego osi
(danego indeksem k-tego gięcia ik ). Jednocześnie wzrasta częstotliwość udanych gięć dla osi przechodzącej
przez środek węzła (względem innych przedziałów ik ), czego należałoby się spodziewać. Histogramy
wykonano dla 500 tys. gięć z rozkładem naturalnym.
87
Rysunek 6.6: Histogramy zliczeń w przedziałach pk dla opisywanego w tym paragrafie węzła. Na osi
poziomej - szerokości przedziałów pk , przy których udały się gięcia. Na osi pionowej - ilości zliczonych
udanych gięć dla tych przedziałów. Każdy z histogramów opatrzony jest oznaczeniem długości węzła l.
Wraz z jej wzrostem histogramy wygładzają się, bo coraz częściej udają się gięcia o dużym pk . Widać, że
ilość względna ilość zliczeń dla najmniejszych pk spada w najdłuższym węźle o rząd wielkości względem
węzła najkrótszego. A więc gięcia o małym pk mają wraz ze wzrostem l malejący wkład do wszystkich
udanych gięć. Należy zwrócić uwagę, że skala osi pionowej pierwszego wykresu obejmuje jeden rząd
wielkości więcej. Histogramy wykonano dla 500 tys. gięć z rozkładem naturalnym.
88
Rysunek 6.7: Histogramy zliczeń w przedziałach αk dla opisywanego w tym paragrafie węzła. Na osi
poziomej - zakresy kątów αk przy których udały się gięcia, na osi pionowej - ilości udanych gięć dla tych
zakresów. Granice histogramów wyznaczone są przez ±αmax i rozmywają się wraz ze wzrostem długości
węzła, gdyż jego geometria może ulegać większym zmianom, niż dla węzłów ciaśniejszych. Wartość αmax ,
jak się okazuje, maleje wraz ze wzrostem poluźnienia węzła. Oznacza to, że mimo, iż liny jest więcej, średni
promień maksymalny węzła zmniejsza się. Jest to interesujący wynik, wskazujący na to, że węzeł podczas
fluktuacji dąży do zajmowania jak największej objętości. Dlaczego? Maksymalną objętość przy ustalonych
wymiarach liniowych uzyskuje kula i zależność od tych wymiarów jest sześcienna. Tymczasem objętość liny
wzrasta wraz z jej długością tylko liniowo. Węzeł „stara się” zmaksymalizować objętość zajmując
statystycznie przestrzeń, która dąży do symetrii sferycznej, przez co wyraźnie zmniejsza swoje średnie
maksymalne wymiary liniowe. Histogramy wykonano dla 500 tys. gięć z rozkładem naturalnym.
89
Rysunek 6.8: Histogram zliczeń dla zmian Zk węzła, opisywanego w tym paragrafie. Na osi poziomej -
zakresy Zk przy których udały się gięcia, na osi pionowej - ilości udanych gięć dla tych zakresów. Skale
pionowe są niewspółmierne, ponieważ na histogramach zmieniają się zarówno skale osi poziomej jak i
szerokości przedziałów Zk . Struktura schodkowa wykresów (patrz przypis do rys. 5.9) jest jeszcze dość
wyraźnie widoczna na trzecim z nich. Można jednak zauważyć, jak stopniowo znika wraz ze wzrostem
długości węzła, gdyż, z uwagi na więcej swobody w węźle poluźnionym, względny wkład do Zk gięć o
małym pk silnie maleje. Znacznie częściej udają się gięcia o większe kąty oraz dla dłuższych fragmentów
liny (co jest jednoznaczne z większym średnim pk dla udanego gięcia). Histogramy wykonano dla 500 tys.
gięć z rozkładem naturalnym. Szerokości dobrano tak, że na każdym z wykresów znajduje się około 95%
wszystkich zliczeń.
90
Rysunek 6.9: Pierwszy etap rozplątywania węzła. Zależność ilości gięć od długości węzła (pierwszy wykres)
oraz od jego względnego wydłużenia z konformacji bliskiej idealnej o długości około 104 (wykres drugi).
Widać, że przy zbliżaniu się do konformacji maksymalnie zaciśniętej, ilość gięć rośnie szybciej niż
wykładniczo. Jest to przesłanka na korzyść hipotezy, że istnieje taka niezerowa wartość względnego
wydłużenia, poniżej której węzeł nie rozplącze się.
91
Rysunek 6.10: Drugi etap rozplątywania węzła - po zsunięciu się pętli. Zależność ilości gięć do czasu
całkowitego rozplątania od długości węzła (pierwszy wykres) oraz (wykres drugi) od jego względnego
wydłużenia z konformacji bliskiej idealnej o długości około 104 . Zależność jest mniej regularna niż na
poprzednich wykresach (rys. 6.9) z uwagi na duży nieporządek tego procesu (patrz rys. 6.3). Widać jednak
wyraźny wzrost ilości niezbędnych do rozplątania gięć, wraz ze spadkiem względnego wydłużenia. Jak
wskazują dalsze wyniki dla innych węzłów, prawdopodobnie wzrost ten dotyczy tylko bardzo niewielkich
wydłużeń i związany jest tym, że szybkość rozluźniania się węzła po pierwszym etapie zależy silnie od
stopnia tego poluźnienia.
92
Rysunek 6.11: Początkowa konformacja węzła (311 3)B o długości 106.4. Minimalna uzyskana dla tego węzła
długość wynosi około 105, a długości dwóch opisanych w tym paragrafie węzłów - 106.4 oraz 105.74. Ze
wzlędu na te niewielkie różnice, ilustracja jest reprezentatywna dla obu z nich.
6.1.2 Konformacja B
Następujące plansze i pokazują w skrócie proces rozplątywania węzła (311 3)B o 300 segmen-
tach. Przy tej ilości segmentów najkrótsza uzyskana wersja miała l ≈ 105. Gdy jego długość
wynosiła około 106.4, udało się go rozplątać po około 500 · 106 gięciach (rysunek 6.12). Gdy
długość ta zmalała do około 105.74, czyli o zaledwie około 0.63%, nie udało się tego wę-
zła rozplątać podczas 2 · 109 gięć. Na podstawie przebiegu drugiej symulacji, autor pracy
podejrzewa, że węzeł (311 3)B przy wydłużeniu 105.74 nie rozplącze się z tak uzyskanej kon-
formacji. Uzasadnienie tej hipotezy znajduje się w przypisie pod rysunkiem 6.13, a rysunek
6.11 ukazuje węzeł (311 3)B w konformacji maksymalnie zaciśniętej.
93
Rysunek 6.12: Proces rozplątywania węzła (311 3)B o długości około 106.4. Liczby pod obrazkami dotyczą
odpowiednich węzłów i oznaczają ilość gięć w milionach, jakie węzeł ma za sobą. Ostatnie dwie „klatki” są
oddalone o bardzo małą liczbę gięć, więc dotyczy ich ta sama liczba.
94
Rysunek 6.13: Proces (nie)rozplątywania węzła (311 3)B o długości około 105.74. Liczby przy obrazkach
dotyczą odpowiednich węzłów i oznaczają ilość gięć w milionach, jakie węzeł ma za sobą. Czerwonym
okręgiem autor zaznaczył (po dokładnym obejrzeniu węzła z każdej strony) miejsce, gdzie
prawpodobieństwo zsunięcia się pętli wygląda na największe. Zwórćmy jednak uwagę na ruchy węzła i
„licznik czasu”. Od setnego miliona gięć prawie nic się nie dzieje. Wygląda na to, że węzeł trafił w jakieś
minimum (lokalne lub globalne - nie wiadomo) i przebywa w nim 20 razy dłużej niż trwała „podróż” do
tego stanu z konformacji początkowej. Wskazuje to wyraźnie na możliwość, lecz nie daje pewności, że
przekroczono próg długości węzła, przy którym może nastąpić jego spontaniczne rozplątanie.
95
Rysunek 6.14: Układ liny luźnego węzła 511 5.
96
Rysunek 6.15: Zależność długości czasu rozplątywania węzła 511 5 od długości liny.
97
Rysunek 6.16: Układ liny luźnego węzła 611 6.
98
Rysunek 6.17: Zależność długości czasu rozplątywania węzła 611 6 od długości liny. Widać, że jest ona
bardziej przypadkowa niż dla prostszych typów węzłów gordyjskich. Oczywiście spełniona jest zależność, że
czas rozplątywania rośnie, gdy maleje długość węzła. Proszę zwrócić uwagę, że węzeł potrzebuje około
300mln. gięć, aby rozplątać się z konformacji o wydłużeniu względnym (aż) 60%. Krótka dyskusja tego
wyniku znajduje się w ostatnim rozdziale podsumowującym wyniki symulacji.
99
Rysunek 6.18: Zależność długości czasu rozplątywania węzła 611 6 od długości liny w drugim etapie, po
zsunięciu pętli. Przy tak dużym wydłużeniu względnym, zmiana tego wydłużenia nie ma widocznego
wpływu na prawdopodobieństwo rozplątania węzła w określonym czasie. Zależność jest, w zasadzie
przypadkowa. Jednocześnie z wykresów na 6.17 widać, że długość trwania pierwszego etapu silnie zależy od
długości węzła.
100
Rozdział 7
Celem pracy było zbadanie procesu rozplątywania węzłów gordyjskich i sprawdzenie, czy kon-
formacje gordyjskie, jeśli je poluźnić, przechodzą wskutek fluktuacji do postaci trywialnych.
Następnym celem było ustalenie, o jakie wartości należy wydłużyć konformacje gordyjskie,
aby przeszły spontanicznie do postaci trywialnych.
Pierwszy cel zakończył się sukcesem. Jak należało się tego spodziewać - węzły gordyjskie,
wskutek błądzenia losowego po swej przestrzeni stanów, rozplątują się w sposób spontaniczny.
Zbadano dość szczegółowo konformację węzła gordyjskiego (311 3)A , i udało się przeprowadzić
symulację, w której wydłużony o zaledwie około 2.5% ze swej postaci maksymalnie zaciśniętej
węzeł rozplątuje się jedynie wskutek fluktuacji. Analiza wyników pokazuje, że przejście pętli
węzła na drugą stronę „guzła” (zaplątanego zgrubienia liny) jest przełomowym momentem
procesu rozplątywania węzłów i można je określić mianem swoistego „przejścia fazowego”,
po którym następuje wyraźna zmiana charakterystycznych cech procesu rozplątywania. Roz-
plątywanie węzłów gordyjskich badanego typu można więc podzielić na dwa etapy - przed
i po przejściu pętli. Pierwszy etap może trwać tysiące razy dłużej niż drugi, gdzie czas jest
mierzony ilością losowych gięć węzła.
Dzięki histogramom sporządzonym dla parametrów udanych gięć węzłów podczas pierw-
szego - dłuższego - etapu rozplątywania, określono dość dobrze charakterystyki procesu wie-
lokrotnych gięć i ich zależności od długości węzła. Ciekawym spostrzeżniem dla przebadanych
węzłów i godnym dalszego badania jest wyraźna ujemna zależność maksymalnych liniowych
wymiarów węzła od wydłużenia liny (obserwowana pośrednio - z histogramów dla kątów
udanych gięć, których granice ustalane są w każdym kroku symulacji węzła na podstawie
101
jego maksymalnych wymiarów). Widać wyraźnie, że przy wydłużaniu liny, maksymalne i
średnie liniowe wymiary węzła maleją, względem konformacji o krótszej linie (oczywiście
tylko jeśli węzeł nie rozplącze się w tym czasie). Hipotezą dobrze tłumaczącą ten pozorny
paradoks, jest ta o dążeniu węzła wskutek fluktuacji do zajmowania statystycznie jak naj-
większej przestrzeni. W konformacjach ciasnych, objętość zajmowana przez linę jest mniejsza
niż w luźnych ale wskutek specyfiki zaciśniętych węzłów, przyjmują one z reguły kształt, w
którym największe z wymiarów są około dwa razy większe niż wymiary najmniejsze (węzeł
badanego typu dzieli się na dwie symetryczne części rozstawione wzdłuż jednej osi i w tym
kierunku jego wymiar jest z reguły około 2 razy większa niż grubość mierzona w poprzek
tych symetrycznych części). Hipoteza ta tłumaczyć może trudność rozplątania mocno (nawet
60%) poluźnionych konformacji bardziej złożonych węzłów typu 611 6. Każda z części węzła
dąży do zmaksymalizowania zajmowanej przestrzeni i dlatego prawdopodobieństwo, że pętla
przeskoczy na drugą stronę jest relatywnie małe.
Jeśli chodzi o drugi cel - odnalezienie wartości progowych, przy których węzły przesta-
ją się rozplątywać, autor musi przyznać, że w sposób jednoznaczny nie udało mu się dla
badanych węzłów określić, czy takie wartości występują. Wynika to czasu trwania symula-
cji dla ciasnych węzłów. Poza tym, z uwagi na losowy charakter procesów, niezależnie od
czasów ich trwania, nigdy nie ma pewności, czy węzły się zaraz nie rozplączą. Pokazano jed-
nak jedną konformację - (311 3)B - co do której podejrzewa się, że nie rozplącze się wcale
oraz konformację o około 0.63%, która się rozplątała. Autor podejrzewa, że w tej kwestii
dobrym podejściem mogłaby być ścisła analiza matematyczna, jeśli w ogóle jest możliwa.
Pokazana została natomiast silna zależność czasu rozplątywania węzłów gordyjskich od ich
długości. Czas rozplątywania węzłów rośnie szybciej niż wykładniczo, wraz z liniowym spad-
kiem względnego wydłużenia z konformacji bliskich idealnym. Mogłoby to wskazywać, że
rozplątanie węzłów poniżej pewnego progu długości nie jest możliwe, a na pewno jest bardzo
mało prawdopodobne. Nie dotyczy to drugiego etapu, gdzie w przypadku dużych wydłużeń
wzlędnych, czas całkowitego rozplątania prawie nie zależy od długości liny.
Poza celami głównymi pracy, udało się (przypadkowo) uzyskać pożyteczny efekt uboczny
- opracowanie (stosunkowo do poprzednich) bardzo efektywnego czasowo algorytmu zaci-
skającego węzły dowolnych typów, skracającego czas ich zaciskania o 2 - 3 rzędy wielkości
względem dotychczasowych algorytmów zaciskania idających w krótkim czasie lepsze wyniki
(węzły o krótszej linie).
102
Bibliografia:
4. P.G. Tait, On Knots I. Trans. Roy Soc. Edinburgh 28, 145-190 (1876-7), pierwsza z
trzech oryginalnych prac Taita poświęconych klasyfikacji węzłów, dostępna pod adre-
sem:
www.maths.ed.ac.uk/˜ aar/knots/knotsi.pdf.
5. P.G. Tait, On Knots II. Trans. Roy Soc. Edinburgh 32, 327-342 (1883-4), druga praca
Taita poświęcona klasyfikacji węzłów, pełny tekst dostępny pod adresem:
www.maths.ed.ac.uk/˜ aar/knots/knotsii.pdf.
6. P.G. Tait, On Knots III. Trans. Roy Soc. Edinburgh 32, 493-506 (1884-5), trzecia praca
Taita, dostępna pod adresem:
www.maths.ed.ac.uk/˜ aar/knots/knotsiii.pdf.
7. V.F.R. Jones, The Jones Polynomial, 2005, praca poświęcona wielomianom Jonesa,
autorstwa ich odkrywcy, dostępna pod adresem internetowym:
math.berkeley.edu/˜ vfr/jones.pdf
103