main
Antonio De Lucreziis 11 months ago
parent 771760632d
commit 4b0979893b

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

@ -13,7 +13,7 @@
#let fletcher-diagram = touying-reducer.with(reduce: fletcher.diagram, cover: fletcher.hide)
#show: dm-unipi-theme.with(aspect-ratio: "16-9", config-info(
#show: dm-unipi-theme.with(aspect-ratio: "4-3", config-info(
title: [Il Polinomio di Kauffman: un invariante di isotopia regolare],
subtitle: [Tesi di Laurea Triennale],
// author: {
@ -39,9 +39,13 @@
#set text(font: "Open Sans", weight: 400, size: 16pt)
#show math.equation: set text(size: 19pt)
#show strong: it => text(weight: 600, it.body)
#set par(leading: 1em, spacing: 1em)
#set list(indent: 0.6em, body-indent: 0.75em, spacing: 1em)
#set enum(indent: 0.6em, body-indent: 0.75em, spacing: 1em, numbering: "i.1.a)")
// #set par(leading: 1em, spacing: 1em)
// #set list(indent: 0.6em, body-indent: 0.75em, spacing: 1em)
// #set enum(indent: 0.6em, body-indent: 0.75em, spacing: 1em, numbering: "i.1.a)")
#set par(spacing: 1.5em)
#set list(spacing: 1.5em)
#set enum(numbering: "i.a)", spacing: 1.5em)
#show figure.caption: caption => block(inset: (x: 2em), {
set align(left)
@ -70,7 +74,7 @@
// *Def.* $K_0, K_1 subset bb(R)^3$ sono *equivalenti* se esiste un'*isotopia ambiente* che porta uno nell'altro, ovvero esiste continua, tale che:
#v(0.75em)
\
*Def.* $K_0, K_1$ sono equivalenti se $exists H : bb(R)^3 times [0, 1] arrow bb(R)^3$ *isotopia ambiente*, ovvero tale che:
@ -90,7 +94,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
#pause
#v(0.75em)
\
*Esistenza Proiezioni Regolari.* Sia $L subset bb(R)^3$ _link poligonale_, allora esiste un aperto denso $U$ tale che $forall v in U subset SS^2$, la proiezione sul piano $v^perp approx RR^2$ è regolare.
@ -143,7 +147,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
*Def.* $D_1 tilde D_2$ diagrammi di link si dicono equivalenti a meno di *isotopia regolare* se e solo se sono equivalenti a meno di isotopie planari e mosse II e III di Reidemeister.
#v(1em)
\
#figure(image("assets/ambient-regular-isotopy-difference.jpg", height: 7cm))
@ -152,7 +156,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
*Osservazione.* Tutte le mosse di tipo I, quelle che introducono quelli che chiameremo *riccioli*, possono passare sopra o sotto altri fili senza problemi applicando le seguenti mosse
#v(1em)
\
#figure(image("assets/move-1-factorization.png", width: 75%))
@ -160,7 +164,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
*Osservazione.* Quando abbiamo una coppia di riccioli con segni opposti abbiamo la seguente proprietà di cancellazione detto _trucco di Whitney_.
#v(1em)
\
#figure(image("assets/whitney-trick.png", width: 100%))
@ -244,16 +248,12 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
*Def.* Per ogni diagramma di link _non orientato_ $K$, il polinomio $L_K in bb(Z)[a, a^(-1), z, z^(-1)]$ verifica i seguenti assiomi:
#set par(spacing: 1em)
#set list(spacing: 1em)
#set enum(numbering: "i.a)", spacing: 1em)
#set enum(numbering: "i.a)")
1. $K tilde K' => L_K = L_K'$.
2. Valgono le seguenti relazioni:
#set enum(numbering: "i.a)", spacing: 1.25em)
1. $L[#skein.over-large] + L[#skein.under-large] = z (L[#skein.h-large] + L[#skein.v-large])$
2. $L[#skein.unit-large] = 1$
@ -264,7 +264,7 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
#pause
#v(0.25em)
\
*Osservazione.* A questo punto non sappiamo se $L_K$ _sia ben definito_.
@ -274,21 +274,34 @@ e posta $H_t (x) colon.eq H(x, t)$ si ha:
#pause
#v(0.75em)
\
*Prop.* $F_K$ invariante di isotopia ambiente.
#v(0.75em)
_Dimostrazione._
#grid(
columns: (1fr, auto),
align: (left, left, right),
row-gutter: 1.75em,
// stroke: 1pt,
[
$F[ #skein.over-twist-large ] = pause a^(-w(#skein.over-twist)) dot L[ #skein.over-twist-large ]$
],
{
show math.equation: set text(size: 15pt)
$pause L[#skein.over-twist] = a L[#skein.strand], quad w(#skein.over-twist) = w(#skein.strand) + 1$
},
_Dim._
$pause = a^(-w(#skein.strand) - 1) dot a L[ #skein.strand-large ]$, [],
$display(
F[ #skein.over-twist-large ]
= pause a^(-w(#skein.over-twist)) dot L[ #skein.over-twist-large ]
= pause a^(-(w(#skein.strand) + 1)) dot a L[ #skein.strand-large ]
= pause a^(-w(#skein.strand)) dot L[ #skein.strand-large ]
= pause F[ #skein.strand-large ]
)$
$pause = a^(-w(#skein.strand)) cancel(stroke: #1pt, a^(-1)) dot cancel(stroke: #1pt, a) L[ #skein.strand-large ]$, [],
$pause = a^(-w(#skein.strand)) dot L[ #skein.strand-large ]$, [],
$pause = F[ #skein.strand-large ]$, [],
)
== Calcoli impliciti
@ -300,7 +313,7 @@ $display(
#let (alternatives,) = utils.methods(self)
#set align(center + top)
#v(3em)
#v(7em)
#alternatives(position: center + top)[
#grid(
@ -475,8 +488,6 @@ $display(
},
)
][
#grid(
columns: 2,
gutter: 2em,
@ -610,7 +621,7 @@ $display(
[$K$ un diagramma di un nodo, $i$ etichetta di uno degli incroci]
v(1em)
v(1.5em)
grid(
columns: 4,
@ -649,13 +660,16 @@ $display(
$K$, $S_i K$, $E_i K$, $e_i K$,
)
pause
[\ ]
[$lambda = (lambda_n, dots, lambda_0)$ sequenza di etichette di incroci di $K$]
[\ ]
v(1em)
[$lambda = (lambda_n, dots, lambda_0)$ sequenza di etichette di incroci di $K$]
v(1.5em)
$
A_i^lambda colon.eq E_lambda_i S_lambda_(i-1) dots.c space S_lambda_0
@ -676,11 +690,13 @@ $display(
self => {
let (only, uncover) = utils.methods(self)
set align(center)
{
set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
}
show math.equation: set text(size: 18pt)
v(1em)
only(
@ -730,7 +746,12 @@ $display(
)
#slide({
align(center, [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:])
{
set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
}
show math.equation: set text(size: 18pt)
v(1em)
@ -753,7 +774,12 @@ $display(
})
#slide({
align(center, [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:])
{
set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
}
show math.equation: set text(size: 18pt)
v(1em)
@ -776,7 +802,12 @@ $display(
})
#slide({
align(center, [$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:])
{
set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
}
show math.equation: set text(size: 18pt)
v(1em)
@ -798,17 +829,15 @@ $display(
)$
})
#slide[
#{
#slide({
{
set align(center)
[$p$ punto base direzionato, $lambda$ una sequenza di scambi che porta $K$ a $hat(K)(p)$:]
}
#v(1em)
show math.equation: set text(size: 18pt)
v(1em)
$
& L[K] + cancel(L[S_0 K]) = z( L[E_0 K] + L[e_0 K] ) \
@ -817,24 +846,30 @@ $display(
(-1)^n (& cancel(L[S_(n-1) dotss S_0 K]) + L [hat(K)(p)]) = (-1)^n z (L[E_n S_(n-1) dotss S_0 K] + L[e_n S_(n-1) dotss S_0 K])
$
#{
v(1.5em)
h(4.4em)
$display(
=> L[K] = (-1)^(abs(lambda(q))+1) L[hat(K)(p)] +
z sum_K^text(fill: #white, n) (lambda)
)$
show math.equation: set text(size: 14pt)
h(1fr)
$display((sum_K (lambda) colon.eq sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K])))$
}
]
v(1.5em)
h(4.4em)
$display(
=> L[K] = #rect(
fill: gray.mix(white),
outset: (top: 0.25em, bottom: 0.5em),
radius: 0.25em,
$display(
(-1)^(abs(lambda(q))+1) L[hat(K)(p)] +
z sum_K^text(fill: #gray.mix(white), n) (lambda)
)$,
)
)$
show math.equation: set text(size: 14pt)
h(1fr)
$display((sum_K (lambda) colon.eq sum_(i=0)^n (-1)^i (L[A_i^lambda K] + L[B_i^lambda K])))$
})
== Definizione induttiva
#slide(
repeat: 2,
repeat: 3,
self => [
#let (alternatives,) = utils.methods(self)
@ -863,7 +898,49 @@ $display(
b) #h(0.35em) Se $n=1$: $display(
L_K (a, z) colon.eq
(-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p))
#rect(
fill: gray.mix(white),
inset: (top: 0.65em),
outset: (top: 0.25em, bottom: 0.5em),
radius: 0.25em,
$display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))$,
)
// display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))
)$
][
*Def (induttiva di $L_K$).* Il polinomio $L_(K)(a,z)$ è definito induttivamente come segue:
// la definizione è sotto perché gli enumerate non vanno d'accordo con le figure
1. Se $K$ è in _forma discendente_: $L_K (a, z) colon.eq a^w(K)$
2. Se $K = K_1 union K_2$: $L(K_1 union K_2) colon.eq delta L(K_1) L(K_2)$ #h(1fr) (con $delta colon.eq (a + 1 slash a) / z - 1$)
3. Altrimenti $K = K_1 union dotss union K_n$:
#v(0.75em)
a) #h(0.35em) Se $n > 1$: $display(
L_K (a, z) colon.eq
1 / n
sum_(i=1)^n
((-1)^(abs(lambda(p_i))+1) delta L_(K_i) L_(K - K_i) + z sum_K (lambda(p_i)))
)$
#v(1.5em)
b) #h(0.35em) Se $n=1$: $display(
L_K (a, z) colon.eq
#rect(
fill: white,
inset: (top: 0.65em),
outset: (top: 0.25em, bottom: 0.5em),
radius: 0.25em,
$display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))$,
)
// display((-1)^(abs(lambda(p))+1) L[hat(K)(p)] + z sum_K (lambda(p)))
)$
][
@ -955,6 +1032,10 @@ $display(
4. Se $K$ ammette una _funzione di slacciamento_ allora $L_K = a^w(K)$
]
== Dimostrazione buona definizione
= Laboratorio Computazionale
== Implementazione in Python
@ -982,7 +1063,49 @@ Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Py
- Verifica di tutti i polinomi contenuti nel *database di KnotInfo*.
- _Trovato un errore nel nodo_ $10_125$, c'è $L_m(K)$ invece di $L_K$.
- _Trovato un errore nel nodo_ $10_125$, c'è $F[10_125]$ invece di $F[10_125]$ ovvero $F_(10_125)(1 slash a, z)$. #h(1fr)
== Implementazione in Python
#{
set align(center)
set text(15pt)
show math.equation: set text(size: 12pt)
grid(
columns: 2,
align: top,
gutter: 2em,
[*Polinomio corretto*],
[*Polinomio in KnotInfo*],
$
F[10_125] = & z^8 (1 / a^2 + 1) + z^7 (a + 2 / a + 1 / a^3) + z^6 (-6 - 6 / a^2) \
& + space z^5 (-5 a - 11 / a - 6 / a^3)
+ z^4 (2 a^2 + 13 + 11 / a^2) \
& + space z^3 (a^3 + 8 a + 17 / a + 10 / a^3)
+ z^2 (a^4 - 6 a^2 - 15 - 8 / a^2) \
& + space z (a^5 - a^3 - 6 a - 8 / a - 4 / a^3)
+ 3 a^2 + 7 + 3 / a^2
$,
$
F[m(10_125)] = & z^8 (a^2 + 1) + z^7 (a^3 + 2 a + 1 / a) + z^6 (-6 a^2 - 6) \
& + space z^5 (-6 a^3 - 11 a - 5 / a)
+ z^4 (11 a^2 + 13 + 2 / a^2) \
& + space z^3 (10 a^3 + 17 a + 8 / a + 1 / a^3)
+ z^2 (-8 a^2 - 15 - 6 / a^2 + 1 / a^4) \
& + space z (-4 a^3 - 8 a - 6 / a - 1 / a^3 + 1 / a^5)
+ 3 a^2 + 7 + 3 / a^2
$,
image("assets/10_125.png", height: 6cm),
scale(x: -100%, image("assets/10_125.png", height: 6cm)),
)
}
== Fine
@ -990,5 +1113,9 @@ Per il progetto di Lab. Comp. abbiamo scritto una *nuova implementazione* in _Py
#set align(center)
#set text(size: 42pt)
Grazie per l'attenzione
*Grazie per l'attenzione*
]
== Appendice

Loading…
Cancel
Save