součin prvního a posledního, druhého a předposledního, … prvku součinu faktoriálu je vždy ≥n
aby byl počet činitelů faktoriálu sudý, použijeme (n!)2
takže (n!)2=∏i=1n(i⋅(n+1−i))≥nn
proto n!≥nn/2
to, že i(n+1−i)≥n, lze dokázat graficky pomocí funkce f(x)=x(n+1−x)
důsledek n≤nn!≤n
nn! se chová trochu jako 2n
věta: e(en)n≤n!≤en(en)n
u zkoušky můžeme použít libovolný korektní důkaz (obecně u všech vět)
důkaz 1: indukcí s využitím ex≥1+x
důkaz 2: odhad pomocí integrálu ln(n!)=∑i=1nln(i)=∑i=2nln(i)
schodovitá plocha, kde schod má šířku 1 a výšku ln(i) má obsah daný uvedeným součtem
obsah schodovité plochy je zdola odhadnutý obsahem plochy pod křivkou logaritmu
ln(n!)≥∫1nln(x)dx=[xln(x)−x]1n=(nlnn−n+1)=:In
n!≥eIn=enlnn−n+1=e(en)n
obdobně dolní odhad
ln((n−1)!)≤In
eIn≥(n−1)!⟹n⋅eIn≥n!⟹n⋅e(en)n≥n!
důkaz 3: jen (en)n≤n!
víme z analýzy, že ex=1+x+2x2+3!x3+⋯+k!xk+⋯=∑k=0∞k!xk
pro x≥0:ex≥n!xn (protože Taylorova řada určitě někde obsahuje n!xn)
tedy n!≥exxn⟹n!≥ennn=(en)n (platí to pro libovolné x≥0, takže dosadíme x=n)
kombinační číslo (kn)=k!(n−k)!n!=k⋅(k+1)⋯1n⋅(n−1)⋯(n−k+1)
jeho odhad…
pozorování: (kn)=(n−kn)
(m2m)
fakt: kombinační čísla v jednom řádku Pascalova trojúhelníku zleva doprava do poloviny rostou, od poloviny klesají
fakt: ∑k=0n(kn)=2n=(1+1)n
pozorování: 2m+122m≤(m2m)≤22m
věta: ∀m∈N:2m22m≤(m2m)≤2m22m
důkaz
definujme P:=22m(m2m) a dokažme 2m1≤P≤2m1
…
Vytvořující (generující) funkce
definice: vytvořující funkce posloupnosti (an)n=0∞ reálných čísel je funkce proměnné x definovaná jako součet f(x)=∑n=0∞an(xn)
tato funkce nemusí být dobře definovaná pro všechna reálná čísla (dokonce se může stát, že nebude definovaná pro žádné reálné číslo kromě nuly)
pro nás bude praktické, když bude definovaná na okolí nuly (více než jednobodovém)
fakt: pokud existuje K>0 taková, že ∀n:∣an∣≤Kn (posloupnost se dá shora odhadnout nějakou exponenciální funkcí), tak řada ∑n=0∞anxn konverguje na (−K1,K1) absolutně stejnoměrně
navíc má f(x)=∑n=0∞anxn derivace všech řádů na (−K1,K1), které se dají spočítat „derivováním člen po členu“
f′(x)=∑n=0∞annxn−1
f′′(x)=∑n=0∞ann(n−1)xn−2
f(x)=a0+a1x+a2x2+a3x3+…
f′(x)=a1+2a2x+3a3x2+…
f′′(x)=2a2+3⋅2a3+…
f(n)(x)=n!⋅an+…
důsledek
f(0)=a0
f′(0)=a1
f′′(0)=2a2
f(n)(0)=n!⋅an
takže an=n!1f(n)(0)
fakt: vytvořující funkce lze mezi sebou násobit jako polynomy, výsledek je vytvořující funkcí posloupnosti a0b0,a0b1+a1b0,…, této posloupnosti se říká konvoluce posloupností (an)n=0∞ a (bn)n=0∞
užití vytvořujících funkcí
kombinatorické počítání
asymptotické odhady
dokazování identit u posloupností
řešení rekurencí
příklad na kombinatorické počítání – platíme n Kč pomocí mincí s hodnotami 1, 2 a 5 Kč, na pořadí nezáleží (an je počet způsobů, jak n korun zaplatit)
f(x)=∑n=0∞anxn=
=(1+x+x2+x3+…)(1+x2+x4+x6+…)(1+x5+x10+…)
=1−x1⋅1−x21⋅1−x51
pak lze zjistit koeficient u xn, ten se bude rovnat an
Řešení rekurencí
Fibonacciho čísla F0:=0,F1:=1,Fn:=Fn−1+Fn−2 pro n≥2
chceme získat explicitní vzorec pro f(x)=∑n=0∞Fnxn
obecná metoda řešení rekurencí
vezmi rekurenci pro n≥n0
vynásob ji xn
sečti pro n≥n0
vyjádři všechny sumy pomocí hledané vytvořující funkce f(x)
obecnější příklad – mějme posloupnost a0,a1,a2,…, která splňuje an=α1an−1+α2an−2+⋯+αdan−d pro každé n≥d, kde d∈N, α1,…,αd∈R,αd=0; najděme vzorec pro f(x)=∑n=0∞anxn
čeho je vytvořující funkce f(x)=γxα? ničeho, protože f(x) nelze spojitě dodefinovat v nule (kromě α=0, potom f(x)=0)
df: pro d∈N a ρ∈R, parciální zlomek stupně d pro kořen ρ je výraz tvaru (x−ρ)dα, kde α je reálná konstanta
poznámka: pokud p=0, tak parciální zlomek lze přepsat do tvaru (1−ρx)α⋅(−ρ)d1=(1−ρx)dα~=∑n=0∞α~ρn1(d−1n+d−1)xn
fakt
mějme funkci f(x)=Q(x)P(x), kde P(x) a Q(x) jsou polynomy a stupeň P(x) je menší než stupeň Q(x)
nechť Q(x) má navzájem různé reálné kořeny ρ1,ρ2,…,ρk a nechť ni označuje násobnost kořenu ρi
předpokládejme, že Q(x) nemá nereálné kořeny, tedy Q(x)=γ⋅(x−ρ1)n1⋅(x−ρ2)n2⋅…⋅(x−ρk)nk, kde γ∈R
potom f(x) se dá vyjádřit jako součet parciálního zlomků pro kořeny ρ1,…,ρk, kde parciální zlomky pro ρi mají stupeň nejvýš ni
jinými slovy ∃αij∈R:f(x)=∑i=1k∑j=1ni(x−ρi)jαij
tohle je „dětská verze“ parciálních zlomků, důkaz nemusíme znát
poznámka
pokud P(x) má aspoň tak velký stupeň jako Q(x), tak pomocí dělení se zbytkem lze P(x) vyjádřit jako P′(x)⋅Q(x)+Z(x) pro nějaké P′(x) a Z(x), kde Z(x), kde Z(x) má menší stupeň než Q(x), a tedy Q(x)P(x)=P′(x)+Q(x)Z(x)
tohle všechno nám umožňuje najít posloupnost k dané vytvořující funkci (která je podílem dvou polynomů)
(jednodušší) rozklad na parciální zlomky bychom mohli umět ke zkoušce
konstanta nám ovlivňuje koeficient u C0, můžeme se jí zbavit
=−21[xn+1]1−4x=
…
Projektivní roviny
df: hypergraf je dvojice (V,H), kde H je množina podmnožin V, tj. H⊆P(V)
prvky V … vrcholy
prvky H … hyperhrany
graf incidence hypergrafu (V,H) je bipartitní graf s partitami V a H, kde mezi x∈V a h∈H vede hrana ⟺x∈h
hyperhrany jsou jakoby množiny vrcholů
df: projektivní rovina je hypergraf (X,P) takový, že platí tři axiomy:
A1: (∀x,y∈X,x=y)(∃!p∈P):{x,y}⊆p
dva různé body určují právě jednu přímku
A2: ∀p,q∈P,p=q:∣p∩q∣=1
každé dvě přímky mají jeden průsečík
A3: (∃Cˇ⊆X,∣Cˇ∣=4)(∀p∈P):∣p∩Cˇ∣≤2
existuje množina čtyř bodů „v obecné poloze“ (žádné tři z nich neleží na přímce)
prvky X … body
prvky P … přímky
df: konečná projektivní rovina (KPR) je projektivní rovina (X,P), v níž X je konečná (a tudíž i P je konečná)
příklady projektivních rovin
Fanova rovina
rozšířená reálná eukleidovská rovina
musíme dodefinovat „body v nekonečnu“ – pro každý možný směr rovnoběžek přidáme abstraktní bod, tyhle abstraktní body spojíme přímkou
karetní hra Dobble (splňuje alespoň jeden axiom – možná všechny?)
příklad projektivní roviny
mějme body a,b,c,d
přímky
{a,b,e}
{b,c,g}
{c,d,e}
{a,d,g}
{a,c,f}
{b,d,f}
e,f,g jsou průsečíky kvůli druhému axiomu
musíme dodat přímku {e,f,g}
tím dostáváme Fanovu rovinu (7 bodů, 7 přímek)
značení: pro (X,P) KPR, x,y∈X,x=y:xy značí přímku obsahující x a y
tvrzení: v každé KPR mají všechny přímky stejný počet bodů
dk: sporem
nechť v KPR (X,P) existují přímky p,q takové, že ∣p∣<∣q∣
označme x společný bod p,q
nechť p obsahuje body x,y1,y2,…,yk a q obsahuje body x,z1,z2,…,zl, kde k<l
tvrdím, že existuje bod w∈X, který nepatří do p∪q: volme Cˇ dle A3
pokud Cˇ∖(p∪q)=∅, volme w∈Cˇ∖(p∪q)
pokud Cˇ⊆p∪q, pak ∣Cˇ∩p∣=∣Cˇ∩q∣=2, BÚNO Cˇ={y1,y2,z1,z2}
v tom případě zvolíme za w společný bod y1z1 a y2z2
kdyby w∈p, tak w je jediný společný bod p a y1z1, a tedy w=y1, ale w∈y2z2, tedy y1=w∈y2z2, tedy ∣Cˇ∩y2z2∣≥∣{y1,y2,z2}∣=3, což je spor s volbou Cˇ
uvažme přímky w,z1,w,z2,…,w,zl,w,x, každá z nich protíná p, jsou navzájem různé, tedy existuje bod v∈p, který je obsažen v aspoň dvou z těch přímek wz1,…,wzl,wx
spor: w a v mají aspoň 2 společné přímky □
def: KPR má řád n∈N, pokud každá její přímka má n+1 bodů
tedy řád KPR := velikost přímky – 1
lemma: v projektivní rovině (X,P) platí (∀x∈X)(∃p∈P):x∈/p
důkaz
volme Č dle A3
volme 3 různé body a,b,c∈Cˇ∖{x}
tvrdím, že alespoň jedna z přímek ab,ac neobsahuje x
jinak by {a,x}⊆ac∩ab, což je spor
tvrzení: pro KPR (X,P) řádu n platí následující
každý bod patří do právě n+1 přímek
∣X∣=n2+n+1
∣P∣=n2+n+1
důkaz
první bod
volme x∈X
dle lemmatu ∃p∈P:x∈/p
označme p={y1,y2,…,yn+1}
definujme přímky q1,q2,…,qn+1, kde qi=xyi
tvrdíme, že pro i=j je qi=qj
kdyby ne, tak {yi,yj}⊆qi∩p, což je spor
tvrdíme, že ∀r∈P: pokud x∈r, tak r∈{q1,…,qn+1}
volme r∈P takovou, že x∈r, jistě ∣r∩p∣=1, nechť yi je prvek r∩p, potom r=xyi=qi
tedy bodem x prochází právě n+1 přímek
druhý bod
volme x∈X, nechť pi jsou přímky procházející x
všimněme si, že každý bod y∈X∖{x} patří do právě jedné z přímek pi
∣X∣=∣{x}∣+∣p1∖{x}∣+∣p2∖{x}∣+⋯+∣pn+1∖{x}∣=
=1+(n+1)⋅n=n2+n+1
třetí bod
graf incidence – bipartitní graf, nahoře přímky, dole body
každý vrchol dolní partity má stupeň n+1
každý vrchol horní partity má stupeň n+1
celá dolní partita má n2+n+1 vrcholů
to už stačí
počítání dvěma způsoby
počítáme počet dvojic (x,p)∈X×P takových, že x∈p
těch je ∣X∣⋅(n+1)=(n2+n+1)(n+1)
je jich taky ∣P∣⋅(n+1)
tudíž (n2+n+1)(n+1)=∣P∣⋅(n+1)
proto ∣P∣=(n2+n+1)
df: mějme projektivní rovinu (X,P); potom duální projektivní rovina k (X,P) je hypergraf (X∗,P∗), kde
X∗=P,
pro x∈X definujme x∗:={p∈P:x∈p}
P∗={x∗:x∈X}
tvrzení: (X∗,P∗) je projektivní rovina
důkaz viz záznam
idea: první dva axiomy stačí prohodit
A3: nejvýše dvě přímky z Č* (množina 4 přímek) procházejí skrz x
existuje množina 4 přímek takových, že žádné tři z nich neprocházejí jedním bodem
máme 4 body z A3 v původní projektivní rovině – označíme a,b,c,d
zvolíme přímky ab,bc,cd
průnik prvních dvou je b
průnik druhých dvou je c
společný bod nemají
konstrukce KPR řádu n∈N
nechť T je konečné těleso s n prvky (tedy n musí být kladná celá mocnina prvočísla), uvažujme vektorový prostor V=T3={(x,y,z):x,y,z∈T}, ∣V∣=n3
nechť X je mmnožina podprostorů dimenze 1 ve V
∣X∣=n−1n3−1
protože máme n3−1 nenulových vektorů, každý patří do jednoho podprostoru dimenze 1
podprostor dimenze 1 má n−1 nenulových vektorů
∣X∣=n−1n3−1=n2+n+1
pro každý podprostor p⊆V dimenze 2 definuji p~:={x∈X:x⊆p}
P={p~:p je podprostor V dimenze 2}
∣P∣=∣X∣, protože podprostor dimenze 2 je ortogonálním doplňkem podprostoru dimenze 1 a protože existuje bijekce mezi podprostory a jejich ortogonálními doplňky
(X,P) je projektivní rovina
důkaz jednoduchý, viz záznam
neví se, jestli existuje projektivní rovina řádu 12
Toky v sítích
tokovou síť tvoří
V … množina vrcholů
E … množina orientovaných hran, E⊆V×V
z∈V … zdroj
s∈V∖{z} … spotřebič / stok
c:E→[0,+∞) … c(e) je kapacita hrany e
definice umožňuje mít hrany oběma směry, připouští také smyčky, ty však z hlediska toků v sítích nejsou nijak užitečné
poznámka: ze stoku může vycházet orientovaná hrana, podobně do zdroje může vést hrana
tok v síti (V,E,z,s,c) je funkce f:E→[0,+∞) splňující
∀e∈E:0≤f(e)≤c(e)
∀x∈V∖{z,s}: součet toků do vrcholu x se rovná součtu toků z vrcholu (formálně pomocí sum) … Kirchhoffův zákon
konvence: f(x,y) je zkratka pro f((x,y))
pro vrchol x∈V:
In(x):={(y,x)∈E}
Out(x):={(x,y)∈E}
pro A⊆V:
In(A):={(u,v)∈E;u∈/A,v∈A}
Out(A):={(u,v)∈E;u∈A,v∈/A}
pro F⊆E:f[F]:=∑e∈Ff(e)
tj. Kirchhoffův zákon lze vyjádřit takto ∀x∈V∖{z,s}:f[In(x)]=f[Out(x)]
df: velikost toku f v síti (V,E,z,s,c) je w(f):=f[Out(z)]−f[In(z)]
maximální tok je tok, který má největší velikost
fakt: v každé tokové síti existuje maximální tok
poznámka: obecně na přednášce uvažujeme konečné tokové sítě, grafy apod.
idea důkazu: mějme síť, očíslujme hrany (od 1 do m), tok f reprezentujme jako uspořádanou m-tici hodnot → množina všech toků je uzavřená a omezená podmnožina Rm, je tedy kompaktní; funkce, která toku f přiřadí w(f), je spojitá; víme z analýzy, že spojitá funkce na kompaktní množině nabývá maxima
lemma: pro tok f v síti (V,E,z,s,c) a pro množinu A⊆V takovou, že z∈A a s∈/A platí w(f)=f[Out(A)]−f[In(A)]
∑x∈Af[Out(x)] … sčítá všechny hrany, které vycházejí ze všech vrcholů A – tyto hrany jsou dvou typů, buď končí opět v A, nebo končí mimo A
EA:={(u,v)∈E:u∈A,v∈A}=E∩(A×A) (hrany, které začínají v A a končí v A)
w(f)=f[Out(A)]+f[EA]−(f[In(A)]+f[EA])
df: řez v síti (V,E,z,s,c) je množina hran R⊆E taková, že každá orientovaná cesta ze z do s obsahuje aspoň jednu hranu R
kapacita řezu R:c(R)=∑e∈Rc(e)
minimální řez je řez, který má ze všech řezů nejmenší kapacitu
nechť A⊆V je množina vrcholů taková, že z∈A a s∈/A; potom zjevně Out(A) tvoří řez; každý takový řez je elementární řez
lemma: každý řez R obsahuje nějaký elementární řez jako podmnožinu
dk: nechť R je řez; A:={x∈V:existuje orientovanaˊ cesta ze z do x neobsahujıˊcıˊ hrany R}
zjevně z∈A, zjevně s∈/A (z definice řezu), zjevně Out(A)⊆R
lemma: nechť f je tok a R je řez v síti (V,E,z,s,c); potom w(f)≤c(R)
df: nechť f je tok v síti (V,E,z,s,c); nenasycená cesta pro f je neorientovaná cesta x1e1x2e2…xkekxk+1, kde ∀i: buď ei=(xi,xi+1) (ei je dopředná hrana), nebo ei=(xi+1,xi) (ei je zpětná hrana) a navíc platí
pro každou dopřednou hranu ei platí f(ei)<c(ei)
pro každou zpětnou hranu ei platí f(ei)>0
zlepšující cesta pro f je nenasycená cesta ze z do s
pozorování: pokud má tok f zlepšující cestu, tak není maximální
dk: máme zlepšující cestu pro tok f, označme ε možné zlepšení (je to minimum přes všechny rozdíly od kapacit na dopředných hranách a od nuly na zpětných hranách), přičtením/odečtením ε dostaneme lepší tok g, takže f nemohl být maximální
důkaz, že w(f)≤c(R)
definujme A:= vrcholy x∈V takové, že existuje orientovaná cesta ze z do x nepoužívající hrany R
z∈A, s∈/A, Out(A)⊆R
w(f)=f[Out(A)]−f[In(A)]≤f[Out(a)]≤c(Out(A))≤c(R)
věta: nechť f je tok v síti; potom následující tvrzení ekvivalentní
f je maximální
f nemá zlepšující cestu
existuje řez R takový, že w(f)=c(R)
dk
1⟹2: jednoduše obměnou
3⟹1: pro libovolný řez R′ a libovolný tok f′ platí, že w(f′)≤c(R′); kdyby f nebyl maximální, tak existuje f+ tok splňující w(f+)>w(f), potom pro každý řez R platí, že c(R)≥w(f+)>w(f), tedy neexistuje žádný řez R splňující c(R)=w(f)
2⟹3
nechť f je tok, který nemá zlepšující cestu
definujme množinu A:={x∈V,ze z do x vede nenasycenaˊ cesta}
zjevně z∈A,s∈/A
definujme R:=Out(A)={uv∈E,u∈A,v∈/A}
všimněme si ∀e∈Out(A):f(e)=c(e)
∀e′∈In(A):f(e′)=0
z lemmatu výše víme, že pro A⊆V, kde z∈A,s∈/A, platí w(f)=c(Out(A))=c(R)f[Out(A)]−0f[In(A)]=c(R)□
důsledek („Minimaxová věta o toku a řezu“): nechť fmax je maximální tok a Rmin je minimální řez v (V,E,z,s,c), potom w(fmax)=c(Rmin)
dk: w(fmax)≤c(Rmin) – víme, viz výše; w(fmax)≥c(Rmin) … dle věty w(fmax)=c(R)≥c(Rmin)
důsledek 2: v síti, kde všechny kapacity jsou celočíselné, Fordův-Fulkersonův algoritmus najde maximální tok, který bude celočíselný (celočíselnost vyvozujeme ze znalosti FF algoritmu)
Aplikace toků
df: párování v grafu G=(V,E) je množina hran M⊆E taková, že žádný vrchol nepatří do více než jedné hrany M
df: vrcholové pokrytí v G=(V,E) je množina vrcholů C⊆V taková, že každá hrana obsahuje aspoň 1 vrchol z C
pozorování: pokud M je párování a C vrcholové pokrytí v G=(V,E), tak ∣M∣≤∣C∣; to proto, že každá hrana z M musí být pokrytá vrcholem z C, zároveň každý vrchol z C pokryje nejvýš 1 hranu z M
věta (Kőnig-Egerváry): v každém bipartitním grafu má největší párování stejnou velikost jako nejmenší vrcholové pokrytí
dk:
nechť G=(V,E) je bipartitní graf s partitami A,B
vytvořme tokovou síť (V∪{z,s},E+,z,s,c), kde E+={zx∣x∈A}∪{ys∣y∈B}∪{xy∣{x,y}∈E∧x∈A∧y∈B} (nestačí použít E, protože orientujeme hrany z ) a c(zx)=c(ys)=1 pro x∈A,y∈B a c(xy)=∣A∣+∣B∣+1 (prakticky nekonečno)
nechť Cmin je nejmenší vrcholové pokrytí v G, Mmax největší párování v G
jistě ∣Mmax∣≤∣Cmin∣
nechť f je maximální tok v té síti a R minimální řez
dle minimaxové věty w(f)=c(R)
BÚNO f má celočíselné hodnoty
definujme Mf:={{x,y}∈E:f(xy)>0}
jistě Mf párování v G, navíc ∣Mf∣=w(f)
definujme CR:={x∈A:zx∈R}∪{y∈B:ys∈R}
pozorování: R neobsahuje žádnou hranu z A do B
jistě CR je vrcholové pokrytí G
kdyby CR nebylo pokrytí, tak existuje nepokrytá hrana {x,y}∈E, potom cesta z→x→y→s je ve sporu s tím, že R je řez
pozorování: v bipartitním grafu s partitami A,B má každé párování velikost nejvýše ∣A∣ (i nejvýše ∣B∣)
df: pro graf G=(V,E) a množinu X⊆V označím N(X):={y∈V∖X∣∃x∈X:{x,y}∈E}
věta (Hallova věta … bipartitní grafová verze): nechť G je bipartitní graf s partitami A,B, potom G má párování velikosti ∣A∣⟺„Hallova podmıˊnka“∀X⊆A:∣N(X)∣≥∣X∣
dk:
⟹
pokud existuje párování velikosti ∣A∣, tak pro každou X⊆A existuje ∣X∣ vrcholů spárovaných s X, ty patří do N(X), tedy ∣N(X)∣≥∣X∣
⟸
nechť M je největší párování v G
pro spor nechť ∣M∣<∣A∣
dle K-E věty: existuje pokrytí C, kde ∣C∣=∣M∣<∣A∣
CA:=C∩A
CB:=C∩B
X:=A∖CA
zjistím, že N(X)⊆CB
navíc ∣X∣=∣A∣−∣CA∣>∣CB∣≥∣N(x)∣
to je spor s Hallovou podmínkou□
další verze Hallovy věty
df: systém různých reprezentantů (SRR) v hypergrafu H=(V,E) je funkce r:E→V taková, že
∀e∈E:r(e)∈e
∀e,v∈E:e=f⟹r(e)=r(f) … tj. r je prostá
r(e) … „reprezentant hypergrany e“
analogie s předsedy spolků
jakmile uvnitř hypergrafu je množina čtyř hyperhran, které ve svém sjednocení mají tři vrcholy, tak nemůžu najít systém různých reprezentantů
platí to obecně pro množinu k hyperhran – když budou mít ve sjednocení méně než k vrcholů, tak nenajdu SRR
implikace platí i obráceně, lze vyslovit jako větu
Hallova věta (hypergrafová verze): Hypergraf H=(V,E) má SRR, právě když ∀F⊆E:⋃e∈Fe≥∣F∣
důkaz
nechť H=(V,E) je hypergraf, nechť IH je jeho graf incidence
pozorování: H má SRR ⟺IH má párování velikosti ∣E∣
pozorování: Hallova podmínka pro H: ∀F⊆E:⋃e∈Fe≥∣F∣⟺ bipartitní Hallova podmínka pro IH a partitu E
Hranová a vrcholová souvislost grafů
mějme G=(V,E) neorientovaný konečný graf, přičemž ∣V∣≥2
df
pro F⊆E:G−F:=(V,E∖F)
F⊆E je hranový řez v G, pokud G−F je nesouvislý
G je hranově k-souvislý, pokud neobsahuje žádný hranový řez velikosti menší než k
pozorování: G je hranově 1-souvislý ⟺G je souvislý
pozorování: G je hranově k-souvislý, k≥2⟹G je hranově (k−1)-souvislý
df: stupeň hranové souvislosti (nebo jen hranová souvislost) grafu G, značený ke(G), je největší k takové, že G je hranově k-souvislý
pozorování: ke(G)= velikost nejmenšího hranového řezu v G
df: pokud x,y jsou různé vrcholy G, tak hranový xy-řez je množina F⊆E taková, že x a y jsou v různých komponentách G−F
věta (Menger, hranová xy-verze): pro dva různé vrcholy x,y grafu G platí, že G obsahuje k hranově disjunktních cest z x do y⟺G neobsahuje hranový xy-řez velikosti menší než k
důkaz
⟹: pokud máme k hranově disjunktních cest z x do y, tak každý hranový xy-řez musí obsahovat aspoň jednu hranu z každé té cesty
⟸
nechť G neobsahuje hranový xy-řez velikosti menší než k
vyrobíme tokovou síť (V,E,x,y,c), kde E={uv,vu∣{u,v}∈E},∀e∈E:c(e)=1
pozorování: v té síti není žádný řez velikosti menší než k
tedy v té síti existuje tok velikosti aspoň k
nechť f je celočíselný maximální tok
navíc mezi všemi celočíselnými maximální toky volme f tak, aby množina S(f){e∈E:f(e)=1} byla co nejmenší
pozorování: S(f) neobsahuje žádný orientovaný cyklus jinak spor s minimalitou S(f)
pomocí S(f) vyrobím k hranově disjunktních cest z x do y takto:
opakuj k-krát
začni v x
jdi po hranách z S(f), dokud nedojdeš do y
tenhle krok bude konečný, protože S(f) neobsahuje orientované cykly
použité hrany odstraň z S(f)
věta (Menger, globální hranová verze): graf G je hranově k-souvislý ⟺ mezi každými dvěma různými vrcholy existuje k hranově disjunktních cest
dk: G je hranově k-souvislý ⟺ neexistuje hranový řez velikosti menší než k⟺∀x,y různé: neexistuje hranový xy-řez velikosti menší než k⟺∀x,y různé: ∃k hranově disjunktních cest z x do y□
df: G=(V,E),A⊆V,G−A=(V∖A,E∩(2V∖A)); A⊆V je vrcholový řez, pokud G−A je nesouvislý
pozorování: Kn nemá vrcholový řez
df: graf G je vrcholově k-souvislý, pokud má aspoň k+1 vrcholů a neobsahuje žádný vrcholový řez velikosti menší než k
df: vrcholová souvislost grafu G, značená kv(G), je největší k takové, že G je vrcholově k-souvislý
pozorování: kv(Kn)=n−1
pozorování: G není úplný … kv(G)= velikost nejmenšího vrcholového řezu
df: pro dva různé vrcholy x,y∈V, vrcholový xy-řez je množina A⊆V∖{x,y} taková, že x a y jsou v různých komponentách G−A
df: dvě cesty v G z x do y jsou navzájem vnitřně vrcholově disjunktní (VVD), pokud nemají žádný společný vrchol kromě x,y
pozorování: dvě VVD cesty z x do y jsou i hranově disjunktní
věta (xy-verze Mengerovy věty pro vrcholovou souvislost): nechť G=(V,E) je graf, nechť x,y jsou různé nesousední vrcholy, nechť k∈N; potom G obsahuje k navzájem VVD cest z x do y⟺G neobsahuje vrcholový xy-řez velikosti <k
dk:
⟹ zřejmá
⟸
nechť G nemá vrcholový xy-řez velikosti <k
vyrobíme síť S takto
za každý vrchol u∈V dáme do S dva vrcholy u+,u− a hranu u+u− s kapacitou 1
za každou hranu {u,v}∈E dáme do S dvě orientované hrany u−v+ a v−u+ s kapacitami "∞"
zdroj: x−, stok: y+
tvrdím, že S nemá řez kapacity c<k
sporem: nechť takový řez existuje
potom všechny jeho hrany jsou tvaru u+u− pro nějaké u∈V a odpovídající vrcholy v G tvoří vrcholový xy-řez velikosti c<k, což je spor
podle minimaxové věty o toku a řezu v S existuje tok velikosti ≥k, BÚNO je ten tok celočíselný, říkejme mu f
z existence takového f plyne, že S obsahuje k hranově disjunktních cest z x− do y+ (viz hranová verze), označme je P1,…,Pk
ty cesty P1,…,Pk jsou i vnitřně vrcholově disjunktní, protože každá cesta (orientovaná) z x− do y+ v S, která obsahuje vrchol u+ nebo u− pro nějaké u∈V∖{x,y}, musí obsahovat i hranu u+u−
když v cestách P1,…,Pk nahradíme každou hranu tvaru u+u− jedním vrcholem u, tak dostaneme k VVD cest z x do y v G□
lemma: nechť G=(V,E) je graf s hranou e={x,y}; nechť G−:=(V,E∖{e}); potom kv(G−)≥kv(G)−1
dk:
nechť A je nejmenší vrcholový řez v G−
potom kv(G−)=∣A∣
chceme kv(G)≤kv(G−)+1=∣A∣+1
rozlišme případy
pokud existuje komponenta G−−A, která neobsahuje x ani y, tak A je vrcholový řez v G, tedy kv(G)≤∣A∣
jinak má G−−A 2 komponenty, jedna obsahuje x (říkejme jí Gx−), druhá y (=:Gy−)
(zbytek viz záznam)
věta (vrcholová globální verze Mengerovy věty): G je vrcholově k-souvislý ⟺ mezi každými dvěma různými vrcholy x,y existuje k navzájem VVD cest
dk:
pro Kn věta zjevně platí (jedna cesta je přímá, další vždy přes jiný vrchol, těch je n−2)
nechť G není úplný (byť by tahle větev důkazu fungovala i pro Kn)
⟸: mezi každými dvěma vrchol je k VVD cest ⟹ G má ≥k+1 vrcholů, žádný řez velikosti <k⟹G je k-souvislý
⟹: nechť x,y jsou různé vrcholy; případy
{x,y}∈/E … viz xy-verze M. věty
{x,y}∈E: nechť G−:=(V,E∖{e})
podle lemmatu: kv(G−)≥k−1
podle xy-verze M. věty pro G− existuje k−1 VVD cest x→y
přidám k nim hranu e a mám k VVD cest x→y□
konvence: „k-souvislý graf“ znamená „vrcholově k-souvislý“
df: přidání ucha ke grafu G=(V,E) je tato operace
zvol dva různé vrcholy x,y∈V
pro d≥0 přidej vrcholy z1,z2,…,zd
přidej hranu cesty xz1z2…zdy
věta („lemma o uších“): graf G je 2-souvislý ⟺G se dá vyrobit z kružnice pomocí přidávání uší
důkaz
⟸ kružnice je 2-souvislá a přidání ucha nevytvoří řez velikosti ≤1
⟹
nechť G=(V,E) je 2-souvislý, nechť C je libovolná kružnice v G, nechť Gmax=(Vmax,Emax) je největší podgraf G, který se dá vyrobit přidáváním uší k C
tvrdíme, že Gmax=G
kdyby ne:
Vmax=V,Emax⊊E: spor s maximalitou Gmax, protože přidání hrany je přidání ucha
Vmax⊊V:G je souvislý, tak ∃e={xy}∈E taková, že x∈Vmax a y∈/Vmax
G−x je souvislý, protože G je 2-souvislý
takže bude existovat ještě další cesta do Vmax
tato cesta + hrana xy = další ucho
Cayleyho vzorec
strom … souvislý graf bez kružnic
sn:= počet stromů na množině vrcholů [n]:={1,2,…,n}
s1=1,s2=1,s3=3,s4=16,s5=125
věta (Cayleyho vzorec, Borchardt)
sn=nn−2
důkaz
nebudu počítat stromy, ale kořenové stromy
df: kořenový strom je strom, ve kterém se jeden vrchol určil jako kořen a všechny hrany se zorientovaly směrem ke kořeni
kn:= počet kořenových stromů
pozorování: kn=n⋅sn
pozorování: pokud ve stromě zorientuji hrany tak, aby z každého vrcholu odcházela nejvýš jedna hrana, tak potom existuje právě jeden vrchol („kořen“), z něhož žádná hrana neodchází, a navíc všechny hrany jsou orientované směrem ke kořeni
df: povykos (postup vytváření kořenového stromu) je posloupnost n−1 orientovaných hran (e1,e2,…,en−1) na vrcholech [n] taková, že ([n],{e1,…,en−1}) je kořenový strom
pn:= počet povykosů
pozorování: pn=(n−1)!⋅kn
pozorování (pravidla): posloupnost orientovaných hran (e1,e2,…,en−1) je povykos ⟺∀k∈[n−1]:
hrana ek spojuje vrcholy z různých komponent grafu tvořeného hranami e1,…,ek−1
hrana ek vychází z vrcholu, z něhož nevychází žádná z hran e1,…,ek−1
chci vyrobit povykos (e1,…,en−1)
mám n⋅(n−1) možností, jak zvolit e1
vybírám dva vrcholy, mezi kterými povedu hranu
mám n⋅(n−2) možností, jak zvolit e2, když už znám e1
mám n možností, jak zvolit konec hrany
začátek hrany musí být v jiné komponentě než konec
je tam n−2 komponent, které můžu zvolit (dohromady je komponent n−1, z toho jednu zvolit nemůžu)
v každé komponentě je „kořen komponenty“ (vrchol, z nějž žádná hrana nevychází)
hrana musí nutně začínat v „kořeni komponenty“ (podle druhého pravidla)
tedy mám n−2 možností, jak zvolit začátek hrany
pokud už jsem vybral e1,…,ek−1 v souladu s oběma pravidly, tak mám n⋅(n−k) možností, jak vybrat ek
n … vyberu konec ek
n−k … vyberu začátek v kořeni nějaké komponenty neobsahující konec ek
pn=n⋅(n−1)⋅n⋅(n−2)⋅…⋅n⋅1=
=∏k=1n−1n(n−k)=nn−1(n−1)!
kn=(n−1!)pn=nn−1
sn=nkn=nn−2□
Počítání dvěma způsoby
pozorování: když G=(V,E) je bipartitní graf s partitami A,B, tak ∣E∣=∑x∈Adeg(x)=∑y∈Bdeg(y)
příklad: fakulta má 1000 studujících, 50 předmětů, každý studující má zapsáno ≥10 předmětů; dokažte, že existuje předmět, který má zapsáno ≥200 lidí
řešení: sporem, nechť každý předmět má zapsáno <200 lidí
počítejme počet dvojic (x,y), kde x je studující, y je předmět, x má zapsán předmět y, dvěma způsoby
první způsob: těch dvojic je ≥1000⋅10
druhý způsob: těch dvojic je <50⋅200
to je spor
značení
P([n]) … množina všech podmnožin množiny [n]
(k[n]) … množina všech k-prvkových podmnožin [n]
df: antiřetězec v P([n]) je množina A⊆P([n]) taková, že ∀M,M′∈A:M=M′⟹M⊆M′∧M′⊆M
věta (Sperner): největší antiřetězec v P([n]) má velikost (⌊n/2⌋n)=(⌈n/2⌉n)
důkaz
antiřetězec velikosti (⌊n/2⌋n) je např. (⌊n/2⌋[n])
dokažme, že neexistuje větší antiřetězec
nechť A je aniřetězec, označme A={A1,A2,…,Ak}, kde k=∣A∣, chceme k≤(⌊n/2⌋n)
df: nasycený řetězec v P([n]) je posloupnost M0,M1,…,Mn⊆[n], kde M0⊆M1⊆⋯⊆Mn⊆[n] a ∣Mi∣=i
máme n! nasycených řetězců v P([n])
začínám s prázdnou množinou, postupně do ní přidávám prvky
mám n−i+1 možností, jak do ní přidat i-tý prvek
každý nasycený řetězec obsahuje nejvýš jednu množinu A
počítejme dvěma způsoby dvojice (A,R), kde A∈A, R je nasycený řetězec, A∈R
první způsob: dvojic je ≤n!
druhý způsob: pro A∈A mám ∣A∣!⋅(n−∣A∣)! nasycených řetězců obsahujících A
mám množinu A
mám ∣A∣ možností, který prvek z ní odeberu
postupně odebírám prvky, až se dostanu k prázdné množině → ∣A∣! možností
podobně (n−∣A∣)! možností, jak dotvořit řetězec přidáváním prvků
věta: Nechť G=(V,E) je graf na n vrcholech, který neobsahuje C4 jako podgraf. Potom ∣E∣≤O(n3/2).
důkaz:
nechť G=(V,E) je graf bez C4, ∣V∣=n
označme H počet dvojic (x,{y,z}) takových, že x,y,z∈V, y=z, x je soused y i z
počítejme H dvěma způsoby
pro dané x∈V mám přesně (2degx) možností, jak zvolit y a z
tedy H=∑x∈V(2degx)≥∑x∈V2(degx−1)2
pro dané {y,z}∈(2V) existuje nejvýše jeden společný soused x∈V, jinak by G obsahoval C4
tedy H≤(2n)≤2n2
tedy 2n2≥∑x∈V2(degx−1)2
z toho plyne, že n2≥∑x∈V(degx−1)2
chci ∣E∣=21∑x∈Vdegx≤O(n3/2)
uvažme funkci f(x)=(x−1)2, ta je konvexní, tedy pro každé x1,x2,…,xn∈R:f(nx1+⋯+xn)≤nf(x1)+f(x2)+⋯+f(xn)
tedy n≥n∑x∈V(degx−1)2≥(n∑x∈Vdegx−1)2
počet hran je polovina ze součtu stupňů
n≥n2∣E∣−1
n3/2≥2∣E∣−n
21(n3/2+n)≥∣E∣□
poznámka: odhad je těsný
mějme incidenční graf konečné projektivní roviny řádu k
…
Ramseyovy věty
df: klika v grafu G=(V,E) je množina vrcholů taková, že každé dva jsou spojené hranou
df: nezávislá množina v grafu G=(V,E) je množina vrcholů taková, že žádné dvě vrcholy nejsou spojené hranou
motivační tvrzeníčko: v každém grafu na 6 vrcholech existuje klika velikosti 3 nebo nezávislá množina velikosti 3
vezmu vrchol v – zbývá pět vrcholů
v je buď spojený se třemi vrcholy, nebo je nespojený se třemi vrcholy
pokud je spojený, dívám se na hrany mezi nimi
ekvivalentně: když v úplném grafu K6 obarvím hrany červeně a modře, tak vždy vznikne jednobarevný trojúhelník (červeně jsou hrany původního grafu na šesti vrcholech, modře jsou nehrany)
Ramseyova věta, grafová verze: ∀k∈N∀ℓ∈N∃N∈N takové, že ∀ graf G na N vrcholech obsahuje kliku velikosti k nebo nezávislou množinu velikosti ℓ
označme R(k,ℓ) nejmeší N, pro které platí závěr té věty
už víme: R(3,3)≤6
pozorování: R(3,3)=6, protože C5 neobsahuje ani kliku, ani nezávislou množinu velikosti 3
R(k,ℓ) se nazývá Ramseyovo číslo
důkaz indukcí podle k+ℓ
pozorování: R(k,1)=1=R(1,ℓ)
pozorování: R(k,2)=k=R(2,k)
mějme k≥3,l≥3, definujme N:=R(k,ℓ−1)+R(k−1,ℓ)
nechť máme dán graf G na N vrcholech
nechť x je libovolný vrchol G
označme S množinu sousedů vrcholu x a T=V∖(S∪{x})
protože ∣S∣+∣T∣=N−1=R(k,ℓ−1)+R(k−1,ℓ)−1, tak platí buď ∣S∣≥R(k−1,ℓ), nebo ∣T∣≥R(k,ℓ−1)
předpokládejme, že ∣S∣≥R(k−1,ℓ), označme GS podgraf G indukovaý S
tedy GS obsahuje kliku velikosti k−1 nebo nezávislou množinu velikosti ℓ
pokud GS obsahuje nezávislou množinu velikosti ℓ, tak i G ji obsahuje, hotovo
pokud GS obsahuje kliku velikosti k−1, tak ta klika spolu s x tvoří kliku velikosti k v G, hotovo
případ ∣T∣≥R(k,ℓ−1) je analogický
V(G)=S∪T∪{x}
důsledek (symetrická verze Ramseyovy věty): ∀m∃N∀G na N vrcholech má kliku nebo nezávislou množinu velikosti m
ekvivalentní 2-barevná verze Ramseyovy věty: ∀m∃N∀obarvení hran KN červeně a modře existuje jednobarevná klika velikosti m
věta (vícebarevná verze Ramseyovy věty): ∀b∈N∀m∈N∃N∈N∀obarvení hran KN pomocí b barev existuje množina m vrcholů taková, že všechny hrany mezi nimi mají stejnou barvu
Rb∗(m) … nejmenší N s touto vlastností
připomenutí: R(k,ℓ):= nejmenší N takové, že každé obarvení hran Kn červeně a modře obsahuje modrou kliku velikosti k nebo červenou kliku velikosti ℓ
R2∗(m)=R(m,m)
důkaz
postupujme indukcí podle b
pro b=1:R1∗(m)=m
pro b=2:R2∗(m)=R(m,m)
nechť b>2
nechť N=R(m,Rb−1∗(m))
mějme obarvení KN pomocí b barev
nechť ty barvy jsou 1) modrá a 2) b−1 odstínů červené
Ramseyova věta pro 2 barvy říká, že v tom obarvení buď existuje modrá klika velikosti m (jsem hotov), nebo existuje klika X velikosti Rb−1∗(m) taková, že všechny barvy hran mezi vrcholy X jsou odstíny červené
X indukuje úplný graf na Rb−1∗, jehož hrany jsou obarveny pomocí b−1 barev, tedy v něm je jednobarevná klika velikosti m□
značení
(pX) … množina p-prvkových podmnožin X
KN(p) … p-uniformní úplný hypergraf, což je hypergraf ([N],(p[N]))
tedy KN=KN(2)
pro b∈N:b-obarvení KN(p) je funkce (p[N])→[b]
pro dané b-obarvení β hypergrafu KN(p) řeknu, že množina X⊆[N] je jednobarevná (v obarvení β), pokud β přiřazuje všem množinám v (pX) tu samou barvu
věta (Ramsey, nekonečná verze): ∀p∈N∀b∈N∀b-obarvení K∞(p)∃ nekonečná jednobarevná podmnožina N
p=1
pro dané b,m stačí N=b(m−1)+1
princip holubníku
dokážeme, že konečnou verzi lze odvodit z nekonečné
věta (Kőnigovo lemma): nechť T je strom s nekonečně mnoha vrcholy, který neobsahuje žádný vrchol nekonečného stupně, nechť x0 je libovolný vrchol T; potom T obsahuje nekonečnou cestu začínající v x0
důkaz
zakořeňme T ve vrcholu x0
indukcí definujme posloupnost vrcholů x0,x1,x2,… tak, že x0,x1 tvoří cestu a pro ∀i∈N0: podstrom zakořeněný v xi má nekonečně mnoho vrcholů
už máme x0
nechť už máme x0,x1,…,xn, nechť y1,y2,…,yk jsou děti xn
aspoň jeden vrchol yi je kořenem nekonečného podstromu
tedy definujeme xn+1:=yi
posloupnost x0,x1,x2,… tvoí nekonečnou cestu v T
tvrzení: z nekonečné verz Ramseyovy věty plyne konečná verze
důkaz
nechť neplatí konečná Ramseyova věta, tedy ∃p∃b∃m∀N∃b-obarvení KN(p) neobsahující jednobarevnou podmnožinu velikosti m
řeknu, že b-obarvení β hypergrafu KN(p) je záludné, pokud v něm neexistuje jednobarevná podmnožina [N] velikosti m
ZN … množina záludných obarvení KN(p)
řeknu, že b-obarvení γ∈ZN+1 rozšiřuje b-obarvení β∈ZN, pokud pro každou h∈(p[N]) platí γ(h)=β(h)
pozorování: každé γ∈Zn+1 rozšiřuje právě jedno β∈ZN
definujme strom T na vrcholech Z1∪Z2∪⋯=⋃N=1∞ZN
{β,γ}∈E(T)⟺γ rozšiřuje β nebo naopak
v tom stromě existuje nekonečná cesta β1,β2,β3,…, kde βN∈ZN (podle Kőnigova lemmatu)
definujme obarvení β:(pN)→[b] takto: nechť máme dánu množinu h∈(pN), volme N∈N takové, že h⊆[N] a definujme β(h):=βN(h)
tvrdím, že β je záludné obarvení pro K∞(p)
kdyby ne, tak β má nějakou jednobarevnou m-prvkovou množinu X⊆N
volme N tak, že X⊆[N]
potom β obarví (pX) stejně jako βN, ale βN je záludné pro KN(p), tedy X v něm není jednobarevná
tedy β je záludné pro K∞(p), a tedy nekonečná Ramseyova věta neplatí □
Samoopravné kódy
naše omezení
nad abecedou Z2
informace je rozdělená na slova pevné délky k, každé se zakóduje do slova délky n
chyby při přenosu nemění počet symbolů
příklady
trojnásobné opakování
0 → 000
1 → 111
dekódování: 011 → 111 → 1
kontrola parity
když posílám 3 bity, tak 4. se rovná XORu těch prvních tří (tedy součtu nad Z2)
df: Z2n … množina slov délky n nad Z2, slova píšu jako řádkové vektory: x=(x1,x2,…,xn)
⊕ … sčítání nad Z2
x⊕y=(x1⊕y1,…,xn⊕yn)
0 … nulový vektor v Zn2
Hammingova vzdálenost d(x,y):= počet i takových, že xi=yi
Hammingova váha ∥x∥:= počet i takových, že xi=0
pozorování
∥x∥=d(x,0)
d(x,y)=∥x⊕y∥
df: kód je podmnožina Z2n (pro nějaké n)
pro kód C⊆Z2n je minimální vzdálenost Δ(C):=minx,y∈C,x=yd(x,y)
(n,k,d)-kód je množina C⊆Z2n taková, že ∣C∣=2k a Δ(C)=d
např.
C1={000,111} je (3,1,3)-kód
C2={x∈Z24;∥x∥ je sudaˊ} je (4,3,2)-kód … tohle odpovídá kontrole parity
kód C∈Z2n je lineární, pokud je to vektorový podprostor Z2n (ekvivalentně 0∈C a ∀x,y∈C:x⊕y∈C)
C1,C2 jsou lineární
pro lineární (n,k,d)-kód je k jeho dimenze
k taky odpovídá počtu bitů informace, které jsem schopný zakódovat do jednoho kódového slova
pozorování: pokud C je lineární, tak Δ(C)=minx∈C∖0d(x,0)=minx∈C∖{0}∥x∥, protože pokud x,y∈C jsou takové, že d(x,y)=Δ(C), tak potom d(x,y)=d(x⊕y,0)
nechť C je (n,k,d)-kód pro k∈N, tak kódování pro C je bijekce Z2k→C
pro lineární (n,k,d)-kód C je generující matice G∈Z2k×n, jejíž řádky tvoří bázi C
tvrzení: pokud G je generující matice (n,k,d)-kódu C, tak zobrazení, které vektoru x=(x1,x2,…,xk)∈Z2k přiřadí vektor xG je kódování pro C
pro C1:
(0)(111)=(000)
(1)(111)=(111)
pro C2:(x1,x2,x3)G2=(x1,x2,x3,x1⊕x2⊕x3)
potom pro každé x=(x1,…,xk) platí xG=x1r1⊕x2r2⊕⋯⊕xkrk, což je lineární kombinace prvků C, tedy prvek C
ověřme 2)
kdyby ∃x=x′∈Z2k:f(x)=f(x′)
tak xG=x′G⟺=0(x−x′)G=0, což nemůže nastat, protože řádky G jsou lineárně nezávislé
df: dekódování (n,k,d)-kódu C je funkce g:Z2n→C taková, že ∀x∈Z2n:d(x,g(x))=miny∈Cd(x,y)
pro C1:g(x) vrací 000 nebo 111 podle ∥x∥
pro C2: přepneme první bit, pokud nesedí parita
df: pro x,y definuji ⟨x,y⟩=x1y1⊕⋯⊕xnyn
pozor, může se stát, že pro x=0:⟨x,x⟩=0
C⊥:={y∈Z2n:∀x∈C:⟨x,y⟩=0} … duální kód k C
fakt
pokud C je podprostor dimenze k, tak C⊥ je podprostor dimenze n−k
(C⊥)⊥=C, pokud C je podprostor Z2n
Dekódování
postup
máme x∈Z2k
kódováním pomocí funkce f dostaneme y∈C⊆Z2n
přenosem dostaneme y~∈C
dekódováním pomocí funkce g dostaneme yˉ∈C
z yˉ pomocí funkce f−1 dostaneme xˉ∈Z2k
f je bijekce mezi Z2k a C
(n,k,d)-kód
pozorování: pokud se při přenosu změní nejvýše d−1 bitů, tak poznám, zda došlo k chybě
pozorování: pokud se při přenosu změní nejvýše ⌊2d−1⌋ bitů, tak jsem schopen chybu jednoznačně opravit
df: nechť je C lineární (n,k,d)-kód, pak kontrolní matice kódu C je matice, jejíž řádky tvoří bázi C⊥
pozorování: kontrolní matice lienárního (n,k,d)-kódu má n−k řádků a n sloupců
příklad
C1={000,111}, lineární (3,1,3)-kód
C1⊥={000,110,101,011}
C1 má kontrolní matici např. (011110)
tvrzení: nechť C je lineární (n,k,d)-kód s kontrolní maticí K, potom ∀x∈Z2n:x∈C⟺KxT=0
důkaz
nechť r1,r2,…,rn−k∈Z2n jsou řádky K
potom x∈C⟺x∈(C⊥)⊥⟺∀y∈C⊥:⟨x,y⟩=0⟺∀i∈{1,…,n−k}:⟨x,ri⟩=0⟺KxT=0
nechť C je lineární (n,k,d)-kód s kontrolní maticí K
víme: d=Δ(C)=minx∈C∖{0}∣∣x∣∣
pozorování: navíc Δ(C) je nejmenší t≥1 takové, že v K lze najít t sloupců, jejichž součet je 0∈Z2n−k
důsledky
Δ(C)≥2⟺K má všechny sloupce nenulové
Δ(C)≥3⟺K má všechny sloupce nenulové a navíc každé dva sloupce různé
df: nechť r∈N,r≥2, nechť Kr je matice s r řádky a 2r−1 sloupci, jejíž sloupce jsou nenulové a různé; nechť Hr je kód s kontrolní maticí Kr; kódům Hr se říká Hammingovy kódy
konvence (?): i-tý sloupec K odpovídá binárnímu zápisu čísla i
pozorování: Hr je lineární (n,k,d)-kód, kde n=2r−1,k=2r−1−r,d=3
tvrzení: ∀r≥2, pro n=2r−1, ∀x∈Z2n; existuje právě jedno y∈Hr takové, že d(x,y)≤1
navíc to y∈Hr lze najít následujícím algoritmem
spočítej KrxT=:s
pokud s=0, tak x∈Hr, tedy y:=x
pokud s=0, tak nechť i∈{1,…,n} je takové, ž i-tý sloupec Kr je roven s; potom nechť y je vektor, který vznikne z x změnou i-tého bitu
důkaz přeskočíme
Hammingovy kódy umí opravit jednu chybu, jsou mnohem úspornější než trojnásobné opakování
tvrzení (Singletonův odhad): pokud existuje (n,k,d)-kód C, tak k+d≤n+1
důkaz
nechť C je (n,k,d)-kód
definujme funkci ψ:Z2n→Z2n−d+1
ψ(x1,…,xn)=(x1,…,xn−d+1)
pro x,y∈C, x=y, tak ψ(x)=ψ(y)
tedy ∣C∣≤2n−d+1
tedy k≤n−d+1, tj. k+d≤n+1
stručně: d označuje počet bitů, ve kterých se dvě různá slova liší, takže když jich smažeme d−1, tak se pořád budou lišit