Download as pdf or txt
Download as pdf or txt
You are on page 1of 109

Spontaniczne rozplątywanie węzłów gordyjskich

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

2 Cel i metodologia badań 13


2.1 Cel pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Algorytm BONO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Metoda crankshaft motions . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 Metody Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 Procesy stochastyczne, procesy Markowa . . . . . . . . . . . . . . . . . 17
2.2.4 Algorytm Metropolisa-Hastingsa . . . . . . . . . . . . . . . . . . . . . 17
2.3 Konformacja idealna węzła fizycznego - algorytm BASONO . . . . . . . . . . 21

3 Przekształcenia w fizyce węzłów - narzędzia matematyczne 25


3.1 Transformacje ortogonalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Obroty wokół wybranej osi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Zasady zachowania pędu i momentu pędu w fizyce węzłów 35


4.1 Zasady zachowania podczas zmian konformacji liny . . . . . . . . . . . . . . . 35
4.2 Moment statyczny zbioru punktów . . . . . . . . . . . . . . . . . . . . . . . . 36

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

5 Program symulacyjny GordianKnotDisentangler 54


5.1 Kod źródłowy programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Reprezentacja liny w programie i ograniczenia . . . . . . . . . . . . . . . . . . 55
5.3 Najważniejsze klasy i funkcje składowe . . . . . . . . . . . . . . . . . . . . . . 60
5.3.1 Klasa Knot3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.2 Klasa Losowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.3.3 Klasa Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.3.4 Klasa KnotPliker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.3.5 Klasa KnotSimulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.4 Wykrywanie przekryć . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.5 Implementacja algorytmu BONO . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.6 Implementacja algorytmu BASONO . . . . . . . . . . . . . . . . . . . . . . . 76

6 Spontaniczne rozplątywanie węzłów gordyjskich - wyniki 81


6.1 Węzły w konformacji 311 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.1.1 Konformacja A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.1.2 Konformacja B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.2 Węzły w konformacji 511 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.3 Węzły w konformacji 611 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7 Istotne wnioski płynące z pracy, podsumowanie 101

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

W pracy badano teoretycznie skomplikowany charakter dynamiki złożonych topologicznie


obiektów geometrycznych - modeli obiektów o dużym (przekraczającym 100:1) stosunku
długości do szerokości. Skorzystano z prostych modeli, które umożliwiły wyznaczenie spe-
cyficznych ich własności. Podejście to może być przydatne do opisu zachowania wszelkich
obiektów, których grubość znacznie przekracza szerokość a w szczególności do opisu zacho-
wania molekuł białek i DNA we wnętrzach jąder komórek biologicznych. W pracy niniejszej
traktowano obiekty takie jako konformacje liny idealnej zaplątanej w skomplikowane posta-
cie tzw. węzłów gordyjskich i z użyciem symulacji komputerowych badano ich zdolności do
spontanicznego przejścia w konformacje trywialne pod wpływem fluktuacji ich geometrii.
Omówiona została też kwestia zgodności symulacji procesu rozplątywania węzłów z zasadą
zachowania pędu i momentu pędu. Sformułowane zostały takie warunki, aby zasady te były
spełnione (zwłaszcza dla celów wizualizacji). Opracowane zostały algorytmy opierające się
na metodach Monte Carlo umożliwiające symulację rozplątywania węzłów gordyjskich a tak-
że zwiększające szybkość symulacji zaciskania węzłów o dwa rzędy wielkości. Pokazano, że
złożone konformacje gordyjskie mogą samoistnie pod wpływem fluktuacji (np. termicznych)
przejść do postaci węzła trywialnego, który to wynik ma też znaczenie w dziale matematyki
- tzw. topologii rozmaitości. Uzyskane wyniki wskazują, że niewielka względna (mniejsza niż
1%) zmiana długości liny węzła gordyjskiego może decydować o możliwości jego przejścia do
konformacji trywialnej lub nie, a więc że prawdopodobieństwo tego przejścia ma charakter
progowy. Proces ten w przypadku liny idealnej wiąże się z uwolnieniem dużej ilości liny, co
może mieć istotne znaczenie dla funkcjonowania makromolekuł białek i DNA w komórkach
biologicznych. Wspomniana zależność wskazuje na możliwość istnienia takich makromolekuł,
w tym DNA, których części lub całe molekuły upakowane w konformacjach gordyjskich pod
wpływem zmian temperatury i spowodowanego nimi wydłużenia, rozplątują się do prost-
szych postaci. W tych prostszych postaciach znaczna część łańcuchów atomowych z których
te makromolekuły są zbudowane, upakowanych wcześniej w postaciach węzłów gordyjskich,
mogłaby być uwalniana i udostępniana tym samym dla procesów biologicznych takich jak
transkrypcja RNA, translacja i innych istotnych procesów biomolekularnych.
Wstęp:

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

idealnej, którą zdefiniowano w paragrafie 1.2.

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ą”

zależność grubości d i długości l:

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).

Rysunek 3: Węzeł czy niewęzeł? Oto jest pytanie...

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

fizycznym rozumieniem problemu.

5
Rozdział 1

Węzły fizyczne

1.1 Elementy klasycznej teorii węzłów


Zadaniem tego paragrafu jest przedstawienie w możliwie największym skrócie podstaw ma-
tematycznej teorii węzłów, która nazywana tu jest klasyczną. Podane zostanie kilka ścisłych
definicji, ale nie będziemy się na nich zbytnio koncentrować. Ważne jest tu intuicyjne zrozu-
mienie kwestii, stąd każda definicja zostanie opatrzona krótkim komentarzem i/lub rysun-
kiem. Zainteresowanych bliżej tym tematem, autor odsyła do bibliografii podanej na końcu
pracy.

1.1.1 Definicja węzła, projekcja węzła


Teoria węzłów definiuje węzły jako podzbiory przestrzeni R3 homeomorficzne z okręgiem. Uj-
mując to w prostych słowach - węzeł to jednowymiarowa nie krzyżująca się krzywa zamknięta
(o połączonych końcach) w przestrzeni trójwymiarowej. Za fizyczną reprezentację węzła ma-
tematycznego możemy więc uznać dowolnie zapętlony sznur o obu końcach połączonych. Na
rysunku 1 we wstępie do pracy pokazano dwuwymiarowe projekcje dwóch typów węzłów.
Aby nie tracić informacji o węźle podczas projekcji z 3D do 2D, należy ją tak przeprowadzić
(narysować), aby widać było w miejscu skrzyżowań fragmentów liny, który z nich idzie górą,
a który dołem. Dlatego też na projekcji nie powinno się krzyżować w jednym punkcie więcej
niż dwóch fragmentów liny.

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ą.

1.1.2 Równoważność węzłów, ruchy Reidemeister’a


Mówimy, że dwa węzły W1 i W2 są równoważne, gdy istnieje homeomorfizm przestrzeni R3
na siebie, który przeprowadza W1 i W2 . W prostych słowach: dwa węzły są równoważne (są
tego samego typu), gdy z ułożenia liny jednego z nich możemy przejść do ułożenia drugiego
przy pomocy typowych transformacji w R3 ale bez przecinania liny. Transformacje te to
przede wszystkim: wyginanie i prostowanie liny, przekładanie jej fragmentów przez inne jej
fragmenty (np. będące pętlami), zaciskanie, poluźnianie liny itp.
Ruchy Reidemeister’a to zbiór trzech najprostszych przekształceń projekcji węzła, które
nie zmieniają typu węzła poddanego projekcji i odpowiadają transformacjom w R3 , wspo-
mnianym w poprzednim akapicie. Sprawę najlepiej wyjaśnia rysunek 1.1. Mając dane dwie
projekcje tego samego węzła, możemy przy pomocy takich transformacji przejść z jednej
projekcji do drugiej.

1.2 Definicja liny idealnej, przyjęty model


Dla celów niniejszej pracy przyjmiemy następującą definicję liny o promieniu r i długości l
oraz oznaczeniu L(r, l) (patrz rysunek 1.2)1 :
1 Zaznacza się przy tym, że definicja ta dotyczy liny idealnej, a więc abstrakcyjnego matematycznego

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,

3. przekroje liny są prostopadłe do jej środkowej,

4. każde dwa (nietożsame) przekroje liny posiadają najwyżej 1 punkt wspólny,

5. środkowa ma stałą długość l.

1.3 Właściwości geometryczne liny idealnej


Przyjęta definicja liny narzuca pewne geometryczne właściwości tak zdefiniowanej bryle. Wy-
mienimy kilka najbardziej oczywistych. Z warunków 2 i 3 w punkcie 1.2 wynika, że każdy
punkt środkowej odpowiada tylko jednemu przekrojowi. W związku z tym przekroje liny moż-
na ponumerować liczbami rzeczywistymi z zakresu h0, li i wszystkie punkty brzegu takiego
przekroju uważać za równoważne. Z warunków 2, 3, 4 można wywnioskować, że minimalny
promień krzywizny dowolnego punktu krzywej środkowej liny idealnej wynosi r (w przeciw-
nym razie istnieją przekroje mające wspólne odcinki).
Różne realizacje liny L(r, l) zgodnie z przyjętą definicją i niezmiennicze względem trans-
formacji ortogonalnych (transformacje takie nie zmieniają kątów między wektorami i odległo-
ści pomiędzy punktami przestrzeni - mowa o nich w rozdziale 3.1 niniejszej pracy), nazywać

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.

1.4 Właściwości fizyczne modelu liny idealnej


Dotychczas mówiliśmy o geometrycznych własnościach liny idealnej. Rozważania powyższe
były bardziej ścisłe od tych, które przedstawione zostały w niniejszym paragrafie. Symulacja
zachowania liny zgodnie z zasadami fizyki implikuje przyjęcie kilku dodatkowych założeń i
zmusza nas do odejścia od ścisłego formalizmu matematycznego. Odtąd pewne kwestie będą
dla ułatwienia rozważane fenomenologicznie, zgodnie z intuicją i tzw. zdrowym rozsądkiem2 .
2 Ocena poprawności tych rozważań pozostaje więc kwestią otwartą. W szczególności jeśli chodzi o algoryt-

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.

1.5 Węzły gordyjskie


Przyjmiemy tu następującą i niezbyt ścisłą (ale intuicyjnie zrozumiałą) definicję zaplątanych
na linie idealnej węzłów gordyjskich3 :

• są to zamknięte konformacje liny idealnej,

• 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,

• ale które z fizycznego punktu widzenia wyglądają jak węzły nietrywialne

• 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

Cel i metodologia badań

2.1 Cel pracy


Celem pracy było przebadanie kilku wybranych konformacji gordyjskich węzłów zapląta-
nych na linie idealnej pod kątem możliwości ich spontanicznego rozplątania do konformacji
trywialnej w wyniku fluktuacji geometrii liny oraz wyznaczenie minimalnych długości przy
których to rozplątanie może nastąpić. Badanie to wymagało działania na wybrane węzły
dwoma algorytmami - BONO i BASONO, których zasadnicze idee opisane są w następ-
nych paragrafach, natomiast istotne szczegóły implementacji numerycznej przedstawiono w
rozdziale 5 przybliżającym program komputerowy.

2.2 Algorytm BONO


Zasadnicza idea działania algorytmu BONO (ang. bend on no overlaps - wyginanie bez
przekryć) jest bardzo prosta:

1. Wybieramy (lub losujemy, używając wybranego rozkładu statystycznego) dwa punkty


przechodzące przez linę, determinując w ten sposób oś,

2. dokonujemy gięcia o pewien kąt (najczęściej losujemy jego wartość).

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.

2.2.1 Metoda crankshaft motions


Metoda ruchów wału korbowego, przy pomocy której następują gięcia, bierze swoją nazwę z
podobieństwa między ruchem fragmentu liny względem jej pozostałej części a ruchem wału
korbowego, w którym każdy punkt wału obraca się o ten sam kąt względem tej samej osi (rys.
2.1). Dokładniej – w naszym wypadku jest to obrót fragmentu liny względem dowolnej osi
przechodzącej przez dwa centralne punkty dwóch wybranych przekrojów liny. Innymi słowy
jest to uproszczony model gięcia w dwóch punktach. Jeśli ruchy te nie są duże (małe kąty
gięcia), stanowią dobre przybliżenie niewielkich zmian konformacji liny.2 Z takich małych
zmian stosowanych sekwencyjnie oraz niewielkich przemieszczeń wybranych punktów liny
względem siebie uzyskać można dowolną konformację (np. węzeł gordyjski), która dozwolona
jest geometrią liny.
Jak już powiedziano, transformacje dotyczą jedynie wybranych punktów zbioru, definiu-
jącego reprezentację liny. W programie komputerowym dane są one w postaci współrzędnych
wektorów położeń tych punktów.
1 Pomijając niedokładności numeryczne, których znikomy wpływ na długość liny i tak zmniejsza się, od-

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.

2.2.2 Metody Monte Carlo


Ponieważ wybór punktów oraz kątów gięcia liny odbywa się w sposób przypadkowy, dany
pewnym statystycznym rozkładem prawdopodobieństwa, BONO zalicza się do algorytmów
niedeterministycznych - probabilistycznych - typu Monte Carlo. Algorytmy tego typu stoso-
wane są najczęściej do rozwiązywania skomplikowanych problemów, gdzie metody determi-
nistyczne nie zdają egzaminu, ponieważ ich zastosowanie jest bardzo trudne, czasochłonne,
albo i jedno i drugie. Z sytuacjami takimi mamy do czynienia przede wszystkim w przypadku
zagadnień, w których badany układ, składa się z wielu elementów i stąd charakteryzuje go
duża liczba stopni swobody sprzężonych w pewien sposób przez określone właściwości ukła-
du. Zachowanie kilku obiektów oddziałujących ze sobą w nawet prosty sposób (np. zagad-
nienie ruchu trzech oddziałujących grawitacyjnie ciał) jest z reguły bardzo skomplikowane,
a rozwiązanie równań dla wszystkich przypadków - niemożliwe. Dodatkowo nawet bardzo
małe zmiany warunków początkowych (np. wynikające z niedokładności numerycznej) po
pewnej, dającej się z grubsza ustalić, liczbie kroków algorytmu prowadzą często do zupeł-
nie odmiennych stanów badanego układu.3 Numeryczne metody deterministyczne zakładają
użycie jedynie pętli warunkowych i w związku z tym ściśle określonego postępowania, tym-
czasem różnorakich warunków w rozległej przestrzeni stanów złożonych układów pojawia
się tak wiele, że napisanie algorytmu, który by się z nimi wszystkimi rozprawił, staje się
3 Znanym ogólnie (modnym) określeniem tego zachowania, opisywanego przez teorie układów chaotycz-

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)

gdzie: Xt - zmienna losowa, zaś T to zbiór indeksów procesu stochastycznego. Zmienne


muszą być określone na tej samej przestrzeni probabilistycznej. Zbiór wartości zmiennych
losowych Xt nazywamy przestrzenią stanów procesu stochastycznego, zaś pojedyncza
wartość zmiennej losowej to stan procesu stochastycznego.
W naszym wypadku węzłowi przypisujemy zdarzenie losowe - gięcie o losowy kąt. A więc
proces jego wielokrotnego gięcia jest procesem stochastycznym. Przestrzenią stanów węzła
jest zbiór wszystkich możliwych konformacji liny, na którym węzeł tej jest zawiązany lub
zaplątany.
Proces Markowa to ciąg zdarzeń, w którym prawdopodobieństwo każdego zdarzenia
zależy jedynie od wyniku poprzedniego. Typowym przykładem w fizyce jest proces opisujący
ruchy Browna.
W naszym wypadku to, czy określone gięcie węzła uda się czy nie, co jest przejściem do
innego stanu (zdarzenia), zależy tylko od obecnego stanu węzła, ponieważ podyktowane jest
tylko jego geometrią oraz wartością zmiennych losowych (punkty gięcia, kąt gięcia). A więc
proces realizowany algorytmem BONO jest także procesem Markowa.

2.2.4 Algorytm Metropolisa-Hastingsa


Zasadniczo, aby węzeł gordyjski rozplątał się, konieczne jest ponowne przejście jednej z pętli
liny węzła z rysunków 1.5 oraz 1.6 z powrotem na drugą stronę „guzła”. Jeśli guzeł ten jest
mały w stosunku do ilości liny na pętli5 , to jest to łatwo osiągalne podczas zupełnie spon-
tanicznego procesu, w którym stosuje się tylko cztery kroki algorytmu opisane w 2.2. Warto
zauważyć, że w skończonym czasie, nie każdy zbiór kolejnych stanów węzła jest jednakowo
prawdopodobny. Czyli nie każdy proces Markowa, rozumiany jako realizacja kolejnych gięć
algorytmem BONO jest jednakowo prawdopodobny w skończonym czasie.6
5 Na pierwszy rzut oka oczywiste jest, że obwód pętli musi być co najmniej równy obwodowi „guzła” w

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).

prawdopodobieństem u mniejszym od 1 lub odrzucamy z prawdopodobieństwem 1 − u. Po-


nieważ energia układu dwóch ładunków maleje, gdy oddalają się one od siebie, gięcia węzła,
które oddalają sąsiednie fragmenty liny od siebie, są uprzywilejowane. Minimum całkowitej
energii odpychania osiągane jest wówczas, gdy momenty sił odpychających, działające na
fragmenty węzła, są równe zeru. Wielokrotne zastosowanie takiej procedury sprawia, że wę-
zeł, „wędrując” zgodnie z tak ustalonymi regułami po przestrzeni stanów, przyjmuje postać
bardziej regularną. Efekt działania na wybranej konformacji węzła pokazuje rysunek 2.3.
Stosując wybrane rozkłady gęstości stanów oraz różne rodzaje energii (np. gdy jej znak
jest ujemny, mamy efekt przyciągania) możemy w dość wyrafinowany sposób kontrolować geo-
metrię węzła. Obserwując go i modyfikując odpowiednie parametry algorytmu Metropolisa-
Hastingsa, mamy większą kontrolę nad zachowaniem węzła i możemy zwiększyć prawdo-
podobieństwo jego rozplątania. Jesteśmy jednocześnie pewni, że działamy nadal w zakresie
algorytmu BONO (czyli dozwolonych transformacji liny idealnej).

20
Rysunek 2.4: Węzeł 311 3 luźny i bardziej zaciśnięty (kilka sekund działania algorytmu SONO.SP)

2.3 Konformacja idealna węzła fizycznego - algorytm


BASONO
Konformacja idealna to realizacja węzła fizycznego zawiązana na linie o minimalnej długości,
a więc obrazowo - maksymalnie zaciśnięta. Jeśli lina w konformacji węzła jest maksymalnie
zaciśnięta, mówimy o węźle idealnym i rozumiemy to tak, że żaden jej pojedynczy fragment
liny nie może wykonać ruchu, jeśli nie zmieni położenia jakiś inny fragment. W tych samych
warunkach zaplątania, mówimy również o idealnej konformacji gordyjskiej.
Do zaciskania węzłów do konformacji idealnych służą różne wersje algorytmu SONO (skrót
z języka ang. „shrink on no overlaps” oznacza „kurczenie bez przekryć”) opracowanego pier-
wotnie przez profesora Piotra Pierańskiego. Algorytm był dalej rozwijany w Zakładzie Fizyki
Komputerowej i Półprzewodników Wydziału Fizyki Technicznej Politechniki Poznańskiej i
znacznie zmodyfikowany przez doktora Sylwestra Przybyła (wersja algorytmu SONO.SP).
Nowa wersja algorytmu BASONO („bend and shrink on no overlaps” - wyginanie i kurcze-
nie bez przekryć) opracowana została przez autora pracy i łączy zasady działania algortymów
SONO.SP oraz BONO. Poprzez wprowadzenie wraz z BONO czynnika losowego i algoryt-
mu Metropolisa-Hastingsa do szukania bardziej regularnych pośrednich konformacji węzła,
zwiększa szybkość zaciskania węzła, zwłaszcza w początkowym etapie, ale przede wszyst-
kim zmniejsza prawdopodobieństwo przejścia węzła do konformacji o długości minimalnej
lokalnie, lecz nie idealnej.
Efektem działania algorytmów z rodziny SONO na węźle jest doprowadzenie go do kon-
formacji, w której dalsze zaciskanie nie jest już możliwe, gdyż albo doprowadziłoby do prze-
krywania się liny, albo do znikania jej fragmentów, jak to pokazuje rysunek 2 ze wstępu. Al-

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.

gorytm, oczywiście, zmniejsza całkowitą długość węzła, zachowując w wystarczająco dobrej


dokładności stałe odległości między punktami definiującymi węzeł (punktami, przez które
przechodzi jego środkowa). W odpowiednich warunkach takie zaciskanie węzła prowadzi do
jego idealnej konformacji, bądź konformacji nieznacznie oddalonej od idealnej.8
Główna zasada działania algorytmu BASONO, podobnie jak wypadku jego poprzedni-
ka SONO.SP, polega na minimalizacji długości każdego fragmentu liny oraz wykorzystaniu
wolnej przestrzeni w węźle do jego zaciśnięcia w taki jednak sposób, aby fragmenty liny nie
przekrywały się (rys. 2.4).
Zwykłe przeskalowanie węzła (proporcjonalne zmniejszenie długości każdego infinitezy-
malnego jej odcinka) w ogólnym przypadku jest dobrym rozwiązaniem jedynie w początkowej
fazie zaciskania. W dalszych etapach zaciskanie musi zachodzić nierównomiernie - inaczej dla
różnych fragmentów liny, co wynika ze złożoności geometrii węzła w przypadku ogólnym (rys.
2.5).
Stosuje się więc procedurę zwaną ściąganiem węzła, która polega na sukcesywnym skra-
caniu liny, poprzez prostowanie jej łuków, jeśli jest to w ogóle możliwe bez powstawania
przekryć. Prostowanie to realizowane jest dla wybranego fragmentu liny poprzez przesuwa-
nie punktów krzywej środkowej liny z jej łuku na odcinek łączący punkty przecięcia środkowej
przekrojami wyznaczającymi przedział liny do prostowania, jak pokazuje rysunek 2.6.
Wybór wyznaczonego dwoma przekrojami przedziału liny do prostowania jest losowy.
Odległości między przekrojami liny na łuku skracają się i tak uzyskuje się pożądany efekt
działania algorytmu, to jest skrócenie całkowitej długości liny. Jednakże takie „prostowanie”
8 Zwiększenie dokładności reprezentacji liny przez zwiększenie ilości punktów ją definiujących w ostat-

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).

wane są z prawdpodobieństwem mniejszym od 1. Mówiąc obrazowo, procedura ta wytwarza


więcej miejsca dla fazy prostującej (patrz też rys. 2.3). A więc lina ulega większemu skróceniu
aż do momentu ponownego „zablokowania się”.

24
Rozdział 3

Przekształcenia w fizyce węzłów


- narzędzia matematyczne

3.1 Transformacje ortogonalne


W paragrafie tym wprowadzone zostaną transformacje ortogonalne. Znajomość aparatu ma-
tematycznego, związanego z tymi przekształceniami, daje podstawy do pełnego zrozumienia
działania funkcji użytych w programie symulacyjnym (gięcie liny, usuwanie pędu i momentu
pędu) oraz dowodów wybranych twierdzeń, na których bazie funkcje te powstały.
Transformacje ortogonalne to takie liniowe przekształcenia przestrzeni metrycznych, w
których zachowane zostają odległości (metryki) pomiędzy dowolnymi punktami transfor-
mowanych części przestrzeni. Jest zrozumiałe, że przekształcenia te są podstawą mechaniki
klasycznej, z którą wiąże się część niniejszej pracy. Do liniowych transformacji ortogonalnych
zaliczają się bowiem zwykłe przesunięcia i obroty trójwymiarowych zbiorów punktów (ciał
doskonale sztywnych) oraz złożenia takich przesunięć i obrotów. Natomiast lina idealna jest
modelem liny rzeczywistej, składającym się z uporządkowanego (w ciąg, pierścień itp.) zbioru
punktów leżących na jej środkowej (środki sfer, tworzących powierzchnię liny w implemen-
tacji programu). Prawdą jest, że lina rzeczywista ze swej natury nie jest doskonale sztywna,
lecz wręcz przeciwnie – wiotka. Jednak dostatecznie małe zmiany konformacji liny idealnej,
z których składa się całe jej przekształcenie do innej postaci, można uznać za sekwencyjne
konfiguracje obrotów i przesunięć jej fragmentów, które to przybliżamy ideą ciała doskonale
sztywnego.
Paragraf ten został opracowany na podstawie pracy wymienionej w bibliografi (1). W
razie nieścisłości warto zajrzeć do tego dzieła.

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)

Równanie to można napisać w innej postaci, wyrażając poszczególne wektory za pomocą


sum iloczynów składowych i wersorów:

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

xi j ej = xjΩ ej + x0i k e0k , (3.3)

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:

xji δmj = xΩ j δmj + x0i k Pmk0 , (3.4)

gdzie δmj jest deltą Kroneckera (równą 1, gdy m = j, a w przeciwnym wypadku równą
0) i gdzie

Pmk0 = em e0k = cos α, (3.5)

jeśli α = ^ Oxm , Ωx0k jest kątem pomiędzy kierunkami osi: Oxm oraz Ωx0k . Prawo


transformacji współrzędnych można więc wyrazić następująco:

xi m = xΩ m + x0i k Pmk0 , (3.6)

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

xi j Pm0 j = xjΩ Pm0 j + x0i m , (3.7)

przy czym spełniona jest następująca zależność:

Pm0 j = e0m ej = cos β, (3.8)

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:

∆xi m = ∆x0i k Pmk0 , (3.11)

∆x0i m = ∆xi j Pm0 j . (3.12)

Spostrzec jeszcze można, że, z uwagi na własność funkcji trygonometrycznej cosinus i


na to, że kąty pomiędzy współrzędnymi w jednym i drugim układzie są takie same co do
wartości i orientacji, a różnią się jedynie znakiem:

cos ^ Oxk , Ωx0m = cos ^ Ωx0m , Oxk ,


 
(3.13)

prawdziwe jest również istotne twierdzenie

Pk0 m = Pm0 k (3.14)

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.

3.2 Obroty wokół wybranej osi


W ramach liniowych transformacji ortogonalnych, wyróżnić możemy obroty wokół wybranej
osi o dowolny kąt ψ, które niezbędne są do wizualizacji wybranego zbioru punktów. W naszym
wypadku jest to wybrany zbiór punktów liny. Chcielibyśmy bowiem mieć możliwość ogląda-
nia tego zbioru z każdej strony, pod wybranym kątem oraz obracania nim względem innych
punktów. Obroty są też niezbędne w procesie gięcia metodą crankshaft motions, ponieważ
wybieramy wtedy dwa podzbiory zbioru punktów i obracamy je względem siebie. Jak to wy-
nika z poprzednich rozważań (np. ze wzorów (3.3), (3.6), (3.11)), dowolne sekwencje obrotów
oraz przesunięć zbioru punktów wokół trzech prostopadłych osi, które są przekształcenia-
mi ortogonalnymi można złożyć w jedną transformację ortogonalną. Dlatego wprowadzone
zostanie dodatkowo narzędzie matematyczne – metoda dokonywania takich podstawowych
przekształceń geometrycznych w trójwymiarowej przestrzeni przy użyciu rachunku macie-
rzowo–wektorowego, który jest łatwy do zaimplementowania w programie komputerowym.
Niech dana będzie uporządkowana para AB punktów A i B (o współrzędnych danych w
przestrzeni odniesienia Ox1 x2 x3 ), przez które przechodzi oś obrotu, przy czym kierunek tej
osi wyznacza kolejność punktów (umówmy się, że zwrot osi wskazuje punkt B). Przyjmuje-
my, że oś obrotu pokrywa się z jedną z osi układu obracanego. Jeśli dokonamy przypisania:
Ω = A, to układem obracanym jest Ax01 x02 x03 i wtedy w celu znalezienia wartości współczyn-
ników transformacji Pmj 0 z układu odniesienia do obracanego, należy znać kosinusy kątów
pomiędzy osiami. Jest to dziewięć wielkości, które zebrać można w macierz przekształcenia
P = [Pmj 0 ]. Niezbędna jest również znajomość wektora przesunięcia do punktu A w układzie
odniesienia czyli rA . Wtedy dowolny wektor r0i wskazujący i-ty punkt w układzie obracanym
można określić (zgodnie ze wzorem (3.6)), wykonując rachunki wektorowo-macierzowe na
jego współrzędnych w układzie odniesienia. Te drugie określa poniższy wzór (3.16).

 0j
ri = [ri m –rA m ] · [Pmj 0 ] = [Pj 0 m ] · [ri m –rA m ] . (3.16)

We wzorze tym kropka między nawiasami kwadratowymi oznacza iloczyn wewnętrzny


macierzy przez wektor; iloczyn wewnętrzny związany jest z kontrakcją, czyli zawężeniem
ilości składowych do ilości równej w tym wypadku ilości składowych wektora. Współrzęd-
ne wersorów e0j układu obracanego (primowanego) w układzie odniesienia (nieprimowanym)
stanowią kosinusy pomiędzy tymi wersorami, a współrzędnymi układu odniesienia. Jest to
łatwe do zauważenia, jeśli pamiętamy, że wersor ma długość jednostkową i leży na osi ob-

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

e01 = e02 × e03 . (3.19)

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:

[P1j 0 ] = [P2j 0 ] × [P3j 0 ] =


h i
= P220 P330 − P230 P320 , P230 P310 − P210 P330 , P210 P320 − P220 P310 (3.20)

[Pj 0 1 ] = [Pj 0 2 ] × [Pj 0 3 ] =


h i
= P2 0 2 P3 0 3 − P2 0 3 P 3 0 2 , P20 3 P30 1 − P20 1 P30 3 , P20 1 P30 2 − P20 2 P30 1 (3.21)

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
 

i z powrotem niezbędne jest również przekształcenie odwrotne, które, jak wspomniano, z


uwagi na zależność (3.15a), przyjmuje postać macierzy transponowanej do danej macierzy
przekształcenia:

−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-

nach (3.23a), (3.23b) i (3.23c).

32
ri (ψ) = rA + PT · Rz (ψ) · r0i (ψ) =
(3.24a)
= rA + PT · Rz (ψ) · P · (ri –rA ) ,

lub całość działań w zapisie uwzględniającym wskaźniki:

[ri m (ψ)] = [rA m ] + [Pmj 0 ] · [Rzjk (ψ)] · [Pj 0 m ] · [ri m –rA m ] , (3.24b)

przy czym mnożeń dokonuje się w kolejności od strony prawej do lewej.


W programie komputerowym, gdzie w ciągu każdej sekundy należy dokonać wielu tysięcy
albo milionów mnożeń macierzy przez wektory danych, istotne staje się zastąpienie sekwen-
cyjnych działań danych rówaniem (3.24b) przez jedno działanie. Gdybyśmy mieli do czynienia
tylko z mnożeniami, to można zastąpić kilka mnożeń przez macierz, tworząc najpierw jedną
macierz, będącą wynikiem mnożenia przez siebie innych macierzy w odpowiedniej kolejności,
jak to pokazują równania (3.25a) i (3.25c) Jeśli wektor v2 powstaje w wyniku mnożenia
wektora v1 przez zespół macierzy M1 · M2 · M3 . . . to możemy zdefiniować:

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

Zasady zachowania pędu i


momentu pędu w fizyce węzłów

Paragrafy 4.2, 4.3 oraz 4.4 zostały opracowany częściowo w oparciu o pracę 1 wymienioną w
bibliografii.

4.1 Zasady zachowania podczas zmian konformacji liny


Zagadnienie gięcia modelowej liny idealnej jest zagadnieniem w zasadzie geometrycznym i
matematycznym (należy do działu topologii przestrzeni zwanych rozmaitościami). Jeśli ma
ono wkroczyć w sferę fizyki, muszą zostać spełnione pewne twierdzenia fizyczne, które obo-
wiązują wszystkie materialne ciała. W tym wypadku chodzi mianowicie o spełnienie zasad
zachowania pędu i momentu pędu (krętu). Jest to istotne, jeśli każdemu i-temu punktowi
liny o wektorze ri , przypisujemy masę mi . Zakładamy, że na linę (zbiór punktów przechodzą-
cych, przez jej oś) nie działają żadne wypadkowe zewnętrze siły (wszystkie zewnętrzne siły
sumują się do zera), a wszelkie jej przekształcenia do nowej postaci są wynikiem działania
sił wewnętrznych, których genezy szczegółowo nie rozpatrujemy. Zasady zachowania pędu i
momentu pędu muszą zostać spełnione, czyli nie powstaje żaden wypadkowy pęd ani mo-
ment pędu. Chodzi więc o matematyczne sformułowanie takich warunków geometrycznych,
aby spełnione były zasady fizyczne przy infinitezymalnych (lub wystarczająco niewielkich z
punktu widzenia symulacji) przekształceniach, z których składamy całą zmianę konforma-
cji liny. Alternatywnym rozwiązaniem jest usunięcie („wyzerowanie”) powstałych wielkości
wektorowych innym przekształceniem geometrycznym, które daje wielkość przeciwną do po-
wstałej (przeciwny pęd lub moment pędu). W mechanice klasycznej musi istnieć tylko jedno

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.

4.2 Moment statyczny zbioru punktów


Rozważmy obecnie układ złożony z n punktów materialnych o masach mi i położeniach ri .
Wektorem położenia środka masy rS tego układu nazywa się wektor określony równaniem:
. Pn
mi ri
rS = Pi=1n (4.1)
i=1 mi

Niech iloczyn

n
!
X
s= mi rS (4.2)
i=1

będzie z definicji momentem statycznym układu (patrz praca 1 w bibliografii). Z uwagi


na fakt, że rS oraz ri można wyrazić za pomocą współrzędnych i ze względu na definicję
(4.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

Suma wszystkich sił wewnętrznych wyraża się więc następująco:

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

Znajdując pochodne obu stron równania (4.15) po czasie, dostajemy

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

Wobec tego słuszna jest równość:

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

ri(2) = ri(1) + dri . (4.23)

Korzystając z definicji krętu układu (4.15) oraz z warunków początkowych K = 0 (4.20),


a także z faktu stałości K (4.21), możemy napisać, że podczas dowolnej zmiany układu
punktów liny, w dowolnej chwili, moment pędu jest stały, a więc suma iloczynów wektorowych
wektorów położeń punktów materialnych (o niezmiennych masach) przez ich pędy równa jest
zero, jak to pokazuje poniższe równanie (4.24):

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.

4.5 Obroty wokół środka masy - stałość środka masy i


zmienność momentu pędu
Przypuśćmy teraz, że w wyniku gięcia liny metodą wału korbowego, suma w równaniu (4.25)
nie równa się zeru (nie będzie tak tylko w szczególnie symetrycznych przypadkach gięcia
liny). Oznacza to pojawienie się niezerowego krętu K 6= 0, co jest w sprzeczności z zasadą
zachowania momentu pędu, który ma pozostać równy zero od początku do końca trwania
symulacji.
Pn
Gdy pojawia się zmiana momentu statycznego ds = ( i=1 mi ) drS , a więc i położenia
środka ciężkości, usuwa się obie te (równoważne) zmiany, przesuwając cały układ punktów o
wektor −drS . W ten sposób spełniona jest zasada zachowania pędu, a jednocześnie odcinki
pomiędzy punktami, zachowują swe długości oraz kąty, jak to ma miejsce w wypadku ciała
doskonale sztywnego.
Aby wyeliminować powstający moment pędu, należy zadbać, by suma w równaniu (4.25)
znikała między dowolnymi dwoma układami punktów, między którymi dokonano infinite-
zymalnych transformacji ich położeń, wyrażonych w (4.23). W związku z tym w kolejnym
kroku należy dokonać takiego nieskończenie małego przekształcenia, które da tę samą su-
mę wektorów ale ze znakiem przeciwnym. Nie można jednak dokonać przesunięcia środka
masy układu punktów, gdyż zaprzeczałoby to stałości pędu p = 0. Jak pokazano wcześniej
(paragraf 3.1), transformacja ortogonalna spełnia tę właściwość charakterystyczną dla ruchu

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:

1. Wykonujemy infinitezymalną transformację (w szczególności - gięcie) bez spełnienia


zasad zachowania pędu i momentu pędu.

2. Wykonujemy odpowiednie przesunięcie zbioru punktów w celu spełnienia zasady za-


chowania pędu (powrót ze środkiem masy zbioru punktów do położenia sprzed trans-
formacji).

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.

Powiedziano, że transformacja ortogonalna spełnia tę właściwość charakterystyczną dla


ruchu ciał doskonale sztywnych, że wzajemne względne położenia punktów w czasie jej trwa-
nia nie zmieniają się. Zobaczymy teraz, że rzeczywiście w trakcie obrotu w ruchu kulistym 1 ,
czyli podczas transformacji ortogonalnej wokół środka masy, zachowane jest położenie środka
masy (czyli nie zmieniamy pędu, jeśli zmiana zachodzi w czasie), ale jednocześnie pojawia
Pn
się niezerowa wartość sumy i=1 mi (ri × dri ) w równaniu (4.25), co oznacza niezerowy kręt
K (moment pędu). W szczególności kręt ten można dobrać w ten sposób, aby był przeciwny
do tego, który powstał w czasie transformacji (np. gięcia).
Rozważmy ponownie ten sam układ n punktów o masach mi i wektorach ri w układzie
odniesienia Ox1 x2 x3 . Tym razem środek, wokół którego obracamy drugi układ Sx01 x02 x03 ,
wraz ze zbiorem punktów liny w układzie odniesienia, dany jest wektorem rS wyrażonym
definicją (4.1). Każdy wektor ri = rS + r0i , analogicznie do rysunku 3.1. Mamy więc

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

tego ciała pozostaje stale na powierzchni tej samej sfery.

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

Korzystając z równania (4.29) na składowe x0j


i(2) po obrocie, rozpiszmy sumę dla dowol-
nego j (równego 1, 2 lub 3):

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

co kończy dowód, ponieważ z uwagi na równości (4.31), wyrażenia w nawiasach równe


są zerom i suma ta znika dla dowolnego j. Dowiedziono tym samym twierdzenia, że obroty
wokół środka masy nie zmieniają położenia tego środka.
Przechodzimy teraz do dowodu twierdzenia, że w jeśli wykonuje się obroty wokół środka
masy, w ogólnym przypadku suma w równaniu (4.25), nie jest równa zero. Jest to równo-
znaczne z pojawieniem się momentu pędu, jeśli obroty te zachodzą w czasie. Poprzedni dowód
wymagał podziałania przekształceniem dowolnym, czyli dowolnie dużym, żeby dowieść, że
gdy początkowy pędu układu równy jest zero i taki pozostaje, to nie występują nawet nie-
skończenie małe zmiany momentu statycznego (środek masy nie przesuwa się). Tym razem
musimy pokazać, że nawet działanie przekształceniem - obrotem - o infinitezymalny kąt, po-
woduje pojawienie się momentu pędu, jeśli przyjmiemy, że zachodzi ono w czasie dt. Aby tego
dokonać, skonstruujmy najpierw macierz przekształcenia, w którym osie zmieniają swoje po-
łożenia w stosunku do położeń początkowych o nieskończenie małe kąty. Będzie to macierz
składowych Φ = [Φjk ] infinitezymalnej ortogonalnej transformacji obrotu.
Składowe przekształcenia ortogonalnego są, zgodnie z równaniem (3.8), kosinusami po-
między składowymi w układzie pierwotnym (odniesienia) i obróconym. Niech więc pierwszy
wiersz macierzy transformacji ma składowe:
h  π  π i
[Φ1k ] = [Φ11 , Φ12 , Φ13 ] = cos (dφ), cos dα + , cos dβ + , (4.33)
2 2

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

Jeśli więc argumenty funkcji trygonometrycznych pierwszego wiersza macierzy [Φ1k ] są


dowolnie bliskie zeru, możemy napisać, że
h i
[Φ1k ] = 1, −dα, −dβ . (4.37)

Na podstawie analogii zastosowanej do innych wierszy, wstępnie zdefiniujmy macierz Φ =


[Φjk ] jako
 
1 −dα −dβ
Φ = dδ 1 −dγ  . (4.38)
 

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

Weźmy teraz dowolny wektor r0i o współrzędnych wyrażonych w układzie odniesienia i


o początku w punkcie S, a więc w punkcie [0, 0, 0] układu obracanego. Wskazuje on i-ty
punkt o masie mi o składowych xi , yi , zi (umówmy się, że w tym miejscu składowe wektora
r0i wynoszą x0i , yi0 , zi0 i wyrażone są dla wygody w układzie odniesienia (inaczej niż było
w rozdziale 3.1 niniejszej pracy). Obróćmy teraz tym układem punktów materialnych przy
użyciu macierzy Φ. Zadajemy pytanie: co stanie się z i-tą wielkością dla i-tego wektora spod
sumy z równania (4.25)? Aby na nie odpowiedzieć rozpiszmy tę wielkość poniżej:

mi (ri × dri ) = mi (ri × dr0i ) =


= mi (rS + r0i ) × dr0i =
(4.43)
= mi (rS + r0i ) × ((rS + Φ · r0i ) − (rS + r0i )) =
= mi (rS + r0i ) × (Φ · r0i − r0i ) .

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)

Korzystając z (4.45) i rozwiązując to równanie, znajdujemy tym samym składową dφ1 =


dγ, a stąd dostajemy ostatecznie szukany wektor kąta równoważnego obrotowi uzyskanemu
przez mnożenie macierzą Φ:
h i
dφ = dγ, –dβ, dα . (4.48)

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

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)

Z uwagi na to, dalej, równanie (4.43) przepisać możemy jako

mi (ri × dri ) = mi (rS + r0i ) × (dφ × r0i ) . (4.50)

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

Zgodnie z powyższym wzorem (4.54), każdy z poszczególnych składników mi (ri × dri )


(dla dowolnych niezerowych wektorów r0i położeń punktów względem środka masy) znika
jedynie wówczas, gdy iloczyn wektorowy dφ × r0i = 0 (iloczyn ten nie może być równoległy
do r0i , co wynika z samej definicji iloczynu wektorowego). Dla dφ 6= 0 ma to miejsce jedynie

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:

mi (ri × dri ) · dφ = mi (r0i × (dφ × r0i )) · dφ =


. (4.55)
= –mi ((dφ × r0i ) × r0i ) · dφ

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)

możemy ostatecznie przepisać wyrażenie (4.55) w postaci

mi (ri × dri ) · dφ = –mi (((dφ × r0i ) × r0i ) · dφ)


= –mi ((dφ · r0i ) r0i · dφ– (r0i · r0i ) dφ · dφ) = (4.57)
2
= mi (|r0i | · |dφ|) 1– cos2 (λ) .


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

∀i∈(1,n) (mi (ri × dri ) ­ 0) ∪ ∀i∈(1,n) (mi (ri × dri ) ¬ 0) . (4.58)

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)
 

−x0i zi0 −yi0 zi0 x0i 2 + yi0 2

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

daje po obrocie wielkość równą w przybliżeniu:

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

Nazwa programu pochodzi z języka angielskiego i oznacza w wolnym tłumaczeniu: „rozpląty-


wacz węzłów gordyjskich”. Napisany został on w języku programowania C++. Obecna jego
wersja skompilowana jest w wersji 32-bitowej pod systemy operacyjne GNU-Linux oraz MS
Windows.
Program daje możliwość badania węzłów, nie tylko gordyjskich, pod warunkiem jednak,
że są to zamknięte konformacje liny.1 Można dokonywać manualnych transformacji, obser-
wując w konsoli zmienne, oraz w oknie OpenGL wynik wizualny na bieżąco. Można również
włączyć tryb automatycznego działania wybranego algorytmu: zaciskanie algorytmem opar-
tym na SONO lub gięcia typu crankshaft algorytmem BONO. Stosowanie tych dwóch trybów
włączonych jednocześnie uruchamia je na zmianę. Jest to właśnie algorytm BASONO. W ta-
kim wypadku wyniki wyświetlane są w oknie OpenGL co ustaloną ilość kroków. W trakcie
pracy BONO możliwe jest włączenie trybu pracy algorytmu Metropolisa-Hastingsa, szuka-
jącego w przestrzeni stanów węzła podczas gięć minimum pewnych zmiennych zależnych od
jego geometrii. W obecnej wersji programu dostępny jest jedynie rozkład zgodny (co do sta-
łych współczynników) z rozkładem Boltzmanna dla kilku rodzajów energii zdefiniowanych
dla węzła.
1 Mankament ten autor obiecuje wyeliminować w następnej wersji programu.

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.

5.2 Reprezentacja liny w programie i ograniczenia


W symulacji przyjęto model liny składający się jednakowych, doskonale sztywnych sfer usta-
wionych w ciąg n elementów, z zastrzeżeniem jednak, że cała masa każdej ze sfer skupiona
jest w jednym punkcie Pi , w centrum sfery, gdzie i jest indeksem elementu ciągu. Ciąg sfer
ma ustaloną i nie zmieniającą się w czasie symulacji długość n, czyli ilość sfer, z których
zbudowany jest model liny. Elementy są ponumerowane liczbami naturalnymi tak, że punkt
Pi ≡ Pi+n , a więc w wypadku konformacji zamkniętej, które rozpatruje się w tej pracy (czy-
li w wypadku węzła fizycznego) nie ma wyróżnionego początku i końca (są one połączone).
Każdemu środkowi sfery w programie symulacyjnym odpowiada trójka liczb zmiennoprze-
cinkowych podwójnej precyzji typu double, z których każda jest współrzędną w wybranym
2 Programy te służą do rozdzielania dużych plików wynikowych symulacji na mniejsze, do obliczania po-

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ę

on, wraz z programami, na płycie CD dołączonej do pracy.

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.

5.3 Najważniejsze klasy i funkcje składowe


5.3.1 Klasa Knot3D
Klasa Knot3D (ang. Węzeł3D) jest centralną i najważniejszą klasą programu symulacyjnego
(około 2600 linii kodu źródłowego). Obiekt tej klasy przechowuje całą informację o geome-
trii węzła - położenie układu odniesienia, w którym opisany jest węzeł względem układu
zewnętrznego (z reguły to ten sam układ), tablicę wektorów wskazujących wierzchołki łama-
nej, promień przekroju, a także wszystkie własności węzła, które z tej geometrii wynikają.
Do własności tych należą, na przykład:

• liczba przekrywających się sfer i listy (parami oraz osobno) indeksów wierzchołków, w
których sfery te mają swoje środki,

• liczba wierzchołków, leżących na łuku wyznaczonym przez trzy wierzchołki, w których


przekroczono maksymalną dopuszczalną krzywiznę i lista indeksów tych wierzchołków,

• średnia długość segmentu i odchylenie standardowe tej długości,

• wybrane punkty gięcia,

• maksymalny „bezpieczny” kąt gięcia,

• macierz bezwładności węzła.

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 dokonujące transformacji (nie tylko ortogonalnych) na wierzchołkach łamanej,


opisującej położenia sfer węzła, jak: skalowanie (powiększanie, rozsuwanie wierzchoł-
ków), obroty, przesuwanie, gięcia, wyrównywanie długości segmentów itp,

• funkcje zapewniające poprawność reprezentacji modelu liny: wykrywanie przekryć, roz-


suwanie przekrywającyh się sfer, sprawdzanie krzywizny, wyznaczanie maksymalnego
kąta gięcia itp,

• funkcje wyznaczające specyficzne własności węzła jak: minimalne i maksymalne wza-


jemne odległości wybranych wierzchołków w węźle, maksymalne rozmiary węzła itp,

• funkcje do kontroli/ustawiania wybranych parametrów, jak UstawPromienPrzekroju(),


UstawIloscSegm() itp,

• funkcje związane z zasadami zachowania pędu i momentu pędu - wyznaczanie macierzy


bezwładności, usuwanie niezerowego momentu statycznego (przesuwanie środka masy),
a także momentu pędu pomiedzy dwoma różniącymi się węzłami,

• zdefiniowane dla wygody operatory: porównania, przypisania (np. przypisanie wszyst-


kich własności węzła W węzłowi V realizuje się w kodzie bardzo prosto: V = W ),
mnożenia i dzielenia przez liczbę (skalowanie, operacja wykonywana jest na każdym
wektorze wskazującym wierzchołek łamanej węzła), dodawania, odejmowania (suma,
różnica dwóch węzłów o tej samej ilości segmentów; węzeł wynikowy posiada wierz-
chołki będące sumami/różnicami odpowiadających wierzchołków dwóch węzłów), wy-
pisywania lub wczytywania węzła z trybu tekstowego,

• 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.

5.3.2 Klasa Losowania


Jest to niewielka (130 linii) ale istotna klasa programu, której obiekt jest generatorem liczb
pseudolosowych. Generuje on zawsze ten sam ciąg liczb pseudolosowych, co zapewnia po-
wtarzalność wyników symulacji typu Monte Carlo dla identycznych warunków początkowych
(aż do granicy wyznaczonej przez dokładność numeryczną zmiennoprzecinkowej reprezentacji
liczb rzeczyswistych.) Każdy obiekt klasy Knot3D oraz KnotSimulator (opisana w paragrafie
5.3.5) posiada jeden obiekt klasy Losowania o nazwie Losownik, który w identycznym stanie
jest kopiowany podczas kopiowania węzła, lub przypisywania jednego węzła drugiemu.

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:

1. INICJOWANIE: Punktem startowym jest kilka danych liczb całkowitych określonych


następująco:
m = M AX,
0 < a < M AX,
0 < q < M AX,
0 < r < M AX,
b,
0 < seed < M AX (seed - z angielskiego ziarno - „ziarno” generatora).

2. INICJOWANIE: Jeśli uruchamiamy generator po raz pierwszy, przypisujemy wartość


„ziarna” liczbie b: b = seed.

3. LOSOWANIE: Definiujemy liczbę l, jako częśc całkowitą z dzielenia b/q.

4. LOSOWANIE: Przypisujemy: b = a · (b − q · l) − r · l.

5. LOSOWANIE: Jeśli b < 0, dodajemy m do b.

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)

5.3.3 Klasa Histogram


Jest to dość uniwersalna (można ją łatwo zastosować w innych programach) klasa szablono-
wa, a parametrem szablonu jest typ danych, dla których tworzy się histogram. Jak nazwa
wskazuje, obiekt tej klasy może wytworzyć i przechowuje histogramy dla danych określonego
typu, jeśli dla typu tego zdefiniowane zostały podstawowe binarne (dla dwóch zmiennych)
operatory arytmetyczne (mnożenie i dzielenie przez liczbę, dodawanie, odejmowanie) i rela-
cje (większy, mniejszy, większy lub równy, mniejszy lub równy) oraz operator umieszczania
danej w standardowym strumieniu wyjściowym (ekran, drukarka itp).
Konstruktor (funkcja konstruująca) obiektu klasy Histogram dostaje adres miejsca w
pamięci, w którym przechowywane są dane i z nich wytwarza strukturę określającą często-
ści zliczeń danych w przedziałach (czyli właśnie histogram). Początek i koniec wszystkich
przedziałów, a także szerokość przedziałów (taką samą dla każdego z nich) można określić
w trakcie pisania kodu. Jeśli nie zrobi tego programista, lub funkcja wywołująca konstruk-
tor, konstruktor przyjmuje dla obiektu wartości domyślne. Uznaje najmniejszą znalezioną w
zbiorze daną za początek przedziałów, a największą za koniec i równomiernie rozmieszcza
w tym zakresie domyślną (równą 100) liczbę przedziałów dla zliczeń. Jedna ze składowych

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.

5.3.4 Klasa KnotPliker


Niektóre pliki z wynikami symulacji zawierały nawet 200MB danych w trybie binarnym
(około 30 tys. węzłów o 300 segmentach). Każdy węzeł w takim pliku symulacyjnym, jeśli
przedstawi się go na ekranie komputera, stanowi jedną klatkę animacji6 . Nie zawsze jednak
chcemy oglądać każdą klatkę, ale przeskoczyć np. o 10 lub 100 do przodu lub do tyłu. Na
przykład, jeśli wyświetlalibyśmy wszystkie 30tys. węzłów i 20 klatek na sekundę, trwałoby to
1500 sekund a więc prawie pół godziny. Niezbędne okazało się więc stworzenie klasy do szyb-
kiego radzenia sobie z tak dużymi plikami, bez wczytywania wszystkiego do pamięci. Obiekt
klasy KnotPliker dość szybko (najwyżej 20-30 sekund dla bardzo dużych plików) wczytuje
z pliku ilość węzłów w nim zapisanych i umieszcza w pamięci programu adresy początków
danych dla każdego z nich. Zwróćmy uwagę, że zadanie to nie jest zupełnie trywialne, gdyż
każdy węzeł w pliku może mieć inną ilość segmentów, a więc zajmować inną objętość w pa-
mięci. Jeśli dany jest adres każdego węzła w pliku, można szybko przeskoczyć do dowolnego
z nich bez wczytywania wszystkich innych po drodze.
5 Do zebrania wszystkich 4 histogramów charakteryzujących węzeł pod kątem symulacji gięć oraz innych

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.

5.3.5 Klasa KnotSimulator


Jest to stosunkowo duża klasa (prawie 900 linii kodu źródłowego), posiadającą cały interfejs
programistyczny oraz parametry dotyczące symulacji węzła. Obiekty wszystkich opisanych
wcześniej klas znajdują się w obiekcie typu KnotSimulator jako jego składowe. Obiekt taki
zarządza nimi poprzez interfejsy ich klas i przez to całym procesem symulacyjnym. Dzię-
ki obiektowi klasy KnotPliker, wczytuje (lub zapisuje do pliku) dane węzła i z nich tworzy
obiekt typu Knot3D, który jest węzłem początkowym i dalej podlegającym symulacji. Obiekt
KnotSimulator ma więc w swoim składzie jeden węzeł symulowany oraz pomocniczy począt-
kowy węzeł odniesienia (aby względem niego usuwać powstały w czasie symulacji pęd lub
moment pędu). Przechowuje też w składowym obiekcie typu KnotSimData histogramy i inne
dane dotyczące procesu symulacji i korzysta z nich dla celów jego optymalizacji. Zadaniem
obiektu KnotSimulator jest też wysyłanie tekstowej informacji o przebiegu symulacji, jej da-
nych i parametrów do konsoli (do wglądu użytkownika programu). Dane te to na przykład:
liczniki gięć, zarówno udanych jak i nieudanych (z przekryciem), stosunek gięć udanych do
wszystkich prób (od czasu ostatniego automatycznego zapisu stanu węzła do pliku), długość
węzła, wartość zmiennej analogicznej do średniej energii termicznej, nazwa pliku, z którego
i do którego się zapisuje, ilość węzłów w pliku itp.
Zadaniem obiektu klasy KnotSimulator, które należy wyróżnić, jest wykonywanie na węź-
le wybranych algorytmów w sposób automatyczny. Zaimplementowano więc w nim funkcje
ZastosujSONO(), ZastosujBONO() oraz ZastosujAlgorytmy(), które odpowiadają za wielo-
krotne wykonywanie na węźle symulowanym gięć i/lub zaciskania oraz sprawdzania przekryć.
Zadania te obiekt KnotSimulator wykonuje z użyciem interfejsu klasy Knot3D. Dodatkowo
w ramach kodu funkcji ZastosujBONO() znajduje się algorytm Metropolisa-Hastingsa, który
zwiększa lub zmniejsza prawdopodobieństwo uzyskania przez węzeł stanu z określoną zmien-
ną, zależną od jego geometrii. Opisywana klasa została zaprojektowana tak, że można w niej
użyć dowolnego rozkładu prawdopodobieństwa dla zmiennej zależnej od geometrii węzła, jak
i dowolnej funkcji obliczającej dla danego węzła tę zmienną. Domyślnie stosowany jest roz-
kład analogiczny do rozkładu Bolztmanna. Natomiast zmienną, podlegającą badaniu, jest
energia węzła zdefiniowana jako suma kilku rodzajów energii z wagami dla każdej z osobna.

65
Wagi te można zmieniać i tak kontrolować w dość wyrafinowany sposób zachowanie się węzła
podczas symulacji.

5.4 Wykrywanie przekryć


Temat ten wyróżniono, ponieważ to w tej kwestii programista, dla zwiększenia szybkości
działania programu, musiał wykazać się maksymalną pomysłowością.
Aby zachowanie węzła było zgodne z modelem liny, w czasie działania algorytmów SONO
oraz BONO po każdej transformacji należy sprawdzić, czy wystąpiło przekrycie jej fragmen-
tów i jeśli tak, usunąć je lub cofnąć taki ruch. Przykładowo: węzeł gordyjski w konformacji
(311 3)A o 584-segmentowej reprezentacji wydłużony z konformacji idealnej o 2.49% do dłu-
gości 106.6 (patrz rys. 6.2 w paragrafie 5.5) rozplątał się spontanicznie dopiero po ponad
8 · 109 próbach gięć.7 Tyle samo razy należało sprawdzić przekrycia między fragmentami li-
ny. Dla przyjętej reprezentacji węzła w pamięci (paragraf 5.2), sprawdzenie przekryć oznacza
upewnienie się, że środki żadnej pary sfer, z których lina jest uformowana, poza kilkoma
sąsiadującymi, nie znajdują się w odległości mniejszej niż podwojona wartość promienia
sfery (średnica liny). Trzeba więc porównać średnicę liny z długością wektora rAB od jed-
nego środka sfery, danego punktem A do drugiego, danego punktem B. Za każdym razem
niezbędne jest więc znalezienie różnicy rAB dwóch wektorów położeń punktów i dokonanie
mnożenia przez ten sam wektor. Daje to z iloczynu skalarnego kwadrat długości wektora
2
|rAB | = rAB · rAB . Na procesorze Intel Celeron M z zegarem 1.4 GHz wykonanie 109 ta-
kich operacji, łącznie z adresowaniem położeń punktów A i B w pamięci, zajmuje około 130
sekund. W najprostszej wersji algorytmu, sprawdzającego istnienie przekryć, należałoby dla
n sfer i m sąsiadek, których nie sprawdza się, dokonać za każdym razem w przybliżeniu

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

s = 106.6 : 584 ≈ 0.1825 (5.7)


7 W najbardziej zoptymalizowanej wersji algorytmu BONO około 40% z tych prób było udanych, czyli nie

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

trakcie pisania pracy magisterskiej!


9 Zaproponował je autorowi pracy promotor dr Sylwester Przybył.

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)

par punktów, sprawdzamy wówczas zaledwie około

p2 = (t − 2) · (n − t − 2) (5.11)

par.10 W najgorszym przypadku gięcie dotyczy maksymalnej odległości między indeksa-


mi, czyli t jest równe około n/2. Jak można wówczas sprawdzić, dla wystarczająco dużego
n, co jest niemal zawsze spełnione (patrz przypis dwa zdania wcześniej):

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

Z rozważań tych wynika, że dzięki omówionemu usprawnieniu, algorytm działa w naj-


gorszym wypadku około dwa razy, a średnio (jeśli z reguły wyginamy małe fragmenty liny)
kilkanaście razy szybciej.
Ostatnie z omówionych usprawnień algorytmu wykrywania przekryć jest najbardziej oczy-
wiste i najprostsze, ale również znacznie przyspiesza działanie programu, choć dotyczy tylko
wykrywania przekryć po gięciu. Otóż wiadomo, że efekt nieudanego gięcia należy cofnąć. Jeśli
więc wystąpi jakiekolwiek przekrycie, przywracamy stan węzła przed gięciem. Istota uspraw-
nienia polega na tym, że sprawdzanie kończymy już na pierwszym przekryciu, kiedy tylko na
nie natrafimy i wówczas cofamy dokonaną transformację. Nie sprawdzamy wszystkich prze-
kryć a tylko jedno, jeśli jakieś w ogóle wystąpi. Dlatego właśnie program działający w trybie
BONO na mocno zaciśniętym węźle dokonuje (na tym samym procesorze) kilkukrotnie więcej
prób gięć w jednostce czasu rzeczywistego niż na węźle luźnym. Po prostu gięcie zazwyczaj
w ponad połowie przypadków jest nieudane a program podczas sprawdzania przekryć szybko
trafia na pierwsze z nich, po czym przywraca stan poprzedni i próbuje ponownie. W wypadku
luźnego węzła, z reguły, jednocześnie następuje znacznie mniej przekryć i zanim algorytm
któreś z nich wykryje, mija więcej cykli procesora, a w związku z tym również jednostek
czasu rzeczywistego.
10 W badaniu węzłów dobra reprezentacja liny musi liczyć przynajmniej n równe kilkadziesiąt sfer. Dlatego

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:

p = min {|i − j| mod n, |j − i| mod n} − 1, (5.13)

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.

2. Podobnie losuje się dwa indeksy ik i jk z rozkładem równomiernym na przedziale


h0, n − 1i.

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 .

5. Sprawdza się przekrycia.

6. Jeśli wystąpiły przekrycia, wraca się do punktu 1. bez zmiany k.

7. Zapamiętuje się parametry gięcia: αk , ik , jk .


11 Oś nie może być dana tylko jednym punktem, co ma miejsce, gdy p = −1, a gdy p = 0, to oś taka

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.

9. Jeśli osiągnięto wymaganą wartość k = N , tworzy się histogramy z zapamiętanych w


punkcie 7-mym parametrów gięć i kończy działanie algorytmu. W przeciwnym razie,
następuje powrót do pierwszego punktu.

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:

1. Określa się maksymalną liczbę zliczeń w histogramie nazywaną tutaj baza.

2. Losuje się wartość parametru z rozkładem równomiernym nazywanym tutaj probka.

3. Sprawdza się liczbę zliczeń a dla przedziału, do którego należy probka.

4. Losuje się liczbę x z rozkładem równomiernym z zakresu h0, bazai.

5. Jeśli x 6 a, to przyjmuje się wartość parametru probka. W przeciwnym razie, powraca


się do punktu 1.

Parametry dla każdego k-tego gięcia generowane są zgodnie z poniżej opisanym sposobem:

1. Losujemy indeks pierwszego punktu gięcia ik z rozkładem danym odpowiednim histo-


gramem (patrz algorytm powyżej).12

2. Losujemy wartość przedziału pk z rozkładem danym odpowiednim histogramem. Usta-


lamy wartość jk = ik + pk + 1.
12 W istocie i w tym punkcie jak i w następnym dokonuje się dodatkowej optymalizacji - w punkcie 4.

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.

3. Losujemy wartość g z rozkładem Gaussa o średniej równej 0 i odchyleniu standardowym


wielokrotnie (nawet kilkusetkrotnie) razy większym, niż maksymalne obserwowane w
symulacji Zk . Ustalamy dla tego gięcia Zk = |g|.

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:

• Po pierwsze ustalenie rzeczywiście minimalnych, czyli idealnych, konformacji węzłów


gordyjskich, z dokładnością co do ułamków procent wartości początkowych, pozostaje
kwestią otwartą (patrz paragraf 5.6, rysunek 5.13). Dlatego autor zaznacza, że długości
minimalne dla podanych konformacji prawdopodobnie nie są ostateczne, a stanowią
jedynie wartości przybliżone z niepewnością rzędu grubości liny 1.

• Autor przyjmuje, że ilość segmentów, modelujących linę węzła, ma niewielki wpływ na


proces jego rozplątywania dopóty, dopóki ilość tych segmentów nie zbliża się do ilości
minimalnej (przy której sfery ledwie się stykają). Inaczej mówiąc - zakłada się, że dys-
kretny model liny dobrze oddaje jej rzeczywiste zachowanie się. Uzasadnia się to tym,
że choć ilość możliwych nierównoważnych przedziałów gięć, jakie można wydzielić w
linie węzła jest skończona i dana liczbą całkowitą1 , to jednak kąty gięcia są określone
1 Wartość tej liczby to suma wszystkich par punktów gięcia, jakie można utworzyć, pomniejszona o liczbę
n · (n − 1)
par o sąsiednich indeksach. Wynosi więc ona tyle ile liczba przekątnych wielokąta o n kątach: .
2

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).

• Czas potrzebny na rozplątanie węzła nie jest jednoznacznie zdefiniowaną wielkością


fizyczną. Rozumie się tu go jako ilość udanych gięć o kąt z przedziału h−αmax , αmax i,
jakie należało wykonać od początku symulacji do momentu, który uznaje się za rozplą-
tanie węzła (co wymaga dalszego uściślenia w następnm punkcie). Ilość tych gięć jest,
w zasadzie, losowa - zależy od stanu początkowego węzła i od konkretnych wartości
wszystkich pseudolosowych zmiennych, generowanych na potrzeby symulacji. Istnieje
jednak oczywista zależność: wraz ze skracaniem węzła ku konformacji idealnej, średnia
ilość gięć rozplątujących go szybko rośnie.

• 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.

Najdokładniej pokazane zostały proces rozplątywania węzłów typu 311 3. Wymienione


zostały przy okazji charakterystyczne własności tych procesów. Uwagi te w znacznej mie-
rze dotyczą również procesów rozplątywania innych węzłów. Dlatego reszta z nich zostanie
omówiona bardzo skrótowo z naciskiem na różnice względem węzłów typu 311 3.

6.1 Węzły w konformacji 311 3


Rozplątywanie węzłów gordyjskich w konformacji 311 3 zostało zbadane najbardziej szcze-
gółowo. Węzły te mają wśród badanych najprostszą strukturę i najszybciej się rozplątują.

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

procesora wspomnianego we wstępie do rozdziału.

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.

6.2 Węzły w konformacji 511 5


Na rysunku 6.14 ukazano przebieg liny węzła 511 5 oraz jego ciasną konformację. Minimalna
osiągnięta dla tego węzła długość wynosi około 145. Rysunek 6.15 pokazuje zależność długości
trwania pierwszego etapu rozplątywania od długości węzła.

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.

6.3 Węzły w konformacji 611 6


Węzeł omawianego typu pokazano już w pracy kilkukrotnie (patrz rysunki: 4, 5.13). Pokazany
zostanie jeszcze tylko przebieg jego liny na ilustracji 6.16. Jak widać z tych rysunków ma
on najbardziej złożoną ze wszystkich węzłów strukturę. Jest też najbardziej „oporny” pod
względem rozplątywania się. Pokazują to wykresy z rysunków 6.17 oraz 6.18. Minimalna
osiągnięta długość dla węzła tego typu wynosi około 170.

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

Istotne wnioski płynące z pracy,


podsumowanie

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:

1. B. Skalmierski, Mechanika, PWN, Warszawa 1999

2. S. Przybył, Poszukiwanie węzłów idealnych i ich własności, Poznań 2001

3. P.Pierański, S. Przybył, A. Stasiak, Gordian Unknots, preprint

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

You might also like