Loemind.md 10 KB

Ohvrikirja mustri analüüs

Autor: AI-põhine analüüs (ardo/kasutaja koostöös)

Sisukord

  1. Allikas ja maatriksi struktuur
  2. Maatriksi analüüs (SVD, aste, normid)
  3. Omaväärtuste spekter
  4. Graafiteooria analüüs
  5. Visualiseeringud
  6. Faktoriseerimine ja Kroneckeri struktuur
  7. Mustri retsept
  8. Kokkuvõte
  9. Failid

1. Allikas ja maatriksi struktuur

Fail: Ohvrikirstukiri.xlsx – Exceli fail lehelt "Sheet1", 45 rida × 45 veergu.

Exceli fail sisaldab 45×45 lahtrit. Esimesed 44 rida ja 44 veergu moodustavad mustri, kus:

  • Tume ruut (täitevärv #00000000) → 1
  • Hele ruut (ilma täiteta) → 0
  • Viimane rida (45) ja veerg (45) sisaldavad numbreid 1…22 (indeksid)

Tegemist on 22×22 baasmustriga, mis on korratud 2×2 plokina (44×44):

┌─────────────┬─────────────┐
│   22×22     │   22×22     │
│   muster    │   muster    │
├─────────────┼─────────────┤
│   22×22     │   22×22     │
│   muster    │   muster    │
└─────────────┴─────────────┘

22×22 binaarmaatriks (0/1)

0100011011000101000001
1010010001001010000000
0101000000010100100010
0010100000101000110110
0001011111010000111110
1100100000100111110111
1000101110100011100011
0000101010100001001001
1000101110100011100011
1100100000100111110111
0001011111010000111110
0010100000101000110110
0101000000010100100010
1010010001001010000000
0100011011000101000001
1000011111000010111110
0011111011111001000001
0001110001110001011101
0000100100100001010101
0001110001110001011101
0011111011111001000001
1000011111000010111110

2. Maatriksi analüüs

matrix_analysis.py teostas esmase analüüsi.

SVD (Singulaarväärtuste lagundus)

Suurus Väärtus
Maatriksi aste 12 / 22
1. singulaarväärtus σ₁ 10.25 (26% energiast)
σ₂ 4.06
σ₃ 3.51
σ₄ 3.00
σ₅…σ₁₂ < 0.57
Ülejäänud ≈ 0 (10 nulli)

Sünteesi viga: Isegi 12 astmega (täisaste) jääb 50 bitti valesti – muster sisaldab mittelineaarseid elemente, mida lineaarne SVD ei taba.


3. Omaväärtuste spekter

spectral_analysis.py teostas omaväärtuste analüüsi.

Maatriks on sümmeetriline (A = Aᵀ), seega kõik omaväärtused on reaalarvud.

Spekter

i λᵢ Märkus
1 +10.25 Domineeriv
2 +4.06
3 +3.51
4 +3.00
5 +0.57
6…15 ≈ 0 (10 tk) Nullruum
16 −0.11
17 −0.47
18 −1.34
19 −2.09
20 −3.80
21 −4.77
22 −4.82

Spektri omadused

Omadus Väärtus
Positiivseid λ 5 (sum 21.39)
Negatiivseid λ 7 (sum −17.39)
Nullilähedasi 10
Jälg (trace) Σλᵢ = 4
Spektraallõhe (λ₁−λ₂) 6.19 (tugev klasterdumine!)
Spektri läbimõõt 15.07

Laplasi maatriksi spekter

Omaväärtus Väärtus Tähendus
μ₁ 0 Alati 0 (ühenduv graaf)
μ₂ 3.66 Algebraline ühenduvus (≥ 0 → graaf on ühenduv)
μ_max 16.28

Tähelepanek: Spekter on peaaegu sümmeetriline (λᵢ ≈ −λⱼ), mis viitab peaaegu bipartiidsele graafile.


4. Graafiteooria analüüs

graph_analysis.py tõlgendas 22×22 sümmeetrilist maatriksit naabrusmaatriksina.

Põhiomadused

Omadus Väärtus
Tippe 22
Servi 105
Tihedus 45.5%
Keskmine aste 9.55
Diameeter 3 (väikse maailma efekt!)
Raadius 2
Kolmnurki 442
Keskmine klasterdumine 0.448

Astmete jaotus

Aste Tippe
6 4
7 2
8 4
11 4
12 8

Bipartiidsus

Graaf EI ole bipartiidne, kuid on peaaegu bipartiidne – spekter on ligilähedaselt sümmeetriline, kuid leidub paarituid tsükleid (rikkuvaid servi ~70+).

Teekonnad

Kaugus Paare Osakaal
1 206 44.6%
2 232 50.2%
3 24 5.2%

Diameeter 3 tähendab: igast tipust pääseb igasse teise max 3 sammuga.

Kesksus (eigenvector centrality)

Kõige kesksemad tipud (ek = 1.00): 5, 11, 16, 22 Järgnevad: 6, 10, 17, 21 (ek = 0.97)

Kogukonnad (spektraalne klasterdamine)

Kogukond Tippe Sisemisi servi
A 11 34
B 11 34
A↔B 18+19

Kogukond A: tipud 3, 4, 5, 11, 12, 13, 17, 18, 19, 20, 21 Kogukond B: tipud 1, 2, 6, 7, 8, 9, 10, 14, 15, 16, 22


5. Visualiseeringud

visualize_graph.py genereeris kolm PNG-pilti:

Pilt Sisu
graph_visualization.png Graafi struktuur 4 paneelis – spektraalpaigutus, kontsentriline paigutus, naabrusmaatriks, parameetrid
svd_reconstruction.png Originaalmustri ja SVD taaste võrdlus (astmed 1…12)
spectrum.png 3 paneeli: omaväärtuste spekter, kumulatiivne energia, Laplasi spekter

Lisaks: ohvrikiri_graph.gml – GML-formaadis graaf (avaneb Gephi/Cytoscape/yEd).


6. Faktoriseerimine ja Kroneckeri struktuur

factorization.py otsis maatriksi lihtsamaid esitusi.

Grami maatriks (A = B·Bᵀ)

❌ EI OLE VÕIMALIK – A ei ole positiivselt poolmääratud (7 negatiivset omaväärtust).

Kroneckeri struktuur

22×22 maatriksit saab KIRJELDADA (mitte päris täpselt) kui:

A ≈ B(2×2) ⊗ C(11×11), kus B = [[1,1],[1,1]] ja C on rombikujuline

Aga viga on 130/484 – liiga palju.

Plokkstruktuur (permuteeritud)

Kui järjestada tipud kogukondade kaupa, avaneb selge plokkstruktuur:

       A (11) │ B (11)
       ───────┼───────
A (11)   34   │  18
       ───────┼───────
B (11)   19   │  34

A = A⁺ + A⁻

Maatriks laguneb positiivseks ja negatiivseks spektraalosaks:

  • A⁺: 5 positiivset λ-d (10.25 … 0.57)
  • A⁻: 7 negatiivset λ-d (−0.11 … −4.82)

Geomeetriline tõlgendus: Minkowski ruum signaturega (5, 7, 10).


7. Mustri retsept

RETSEPT.md ja generate_pattern.py sisaldavad TÄPSET retsepti, mis reprodutseerib mustri veatult.

Tööpõhimõte

  1. Kolm alusmaatriksit (11×11):

    • A_aa – kogukonna A sisemine struktuur (34 serva)
    • A_bb – kogukonna B sisemine struktuur (34 serva) – erinev A_aa-st!
    • A_ab – kogukondade vahelised servad (37 serva, sümmeetriline)
  2. Kogukondade järjestus:

    • A = [3, 4, 5, 11, 12, 13, 17, 18, 19, 20, 21]
    • B = [1, 2, 6, 7, 8, 9, 10, 14, 15, 16, 22]
  3. Assambleeri 22×22 maatriks – paiguta alammaatriksid vastavalt kogukondadele

  4. 44×44 – korda 2×2 plokina: A₄₄ = np.block([[A, A], [A, A]])

Täpsem retsept: vt RETSEPT.md


8. Kokkuvõte

⭐ Peamised avastused

# Avastus Tõend
1 Exceli 44×44 = 22×22 2×2 plokk-kordus SVD, visuaalne kontroll
2 Maatriks on sümmeetriline (A = Aᵀ) A[i,j] = A[j,i] alati
3 Aste = 12 (10 null-omaväärtust) SVD ja omaväärtused
4 Graafil on 2 kogukonda (11+11 tippu) Spektraalne klasterdamine
5 Diameeter = 3 BFS kõigist tippudest
6 Peaaegu bipartiidne Peaaegu sümmeetriline spekter
7 Mittelineaarne – SVD ei taasta täpselt 50 bitti jääb valesti
8 Minkowski signatuur (5,7,10) Pos/neg/null omaväärtused

Mõistatused

  1. Mida muster kujutab? QR-kood? Ornament? Genealoogiline tabel? Vererõhumõõtmise päevik?
  2. Miks on kogukondadel erinev sisemine struktuur (A_aa ≠ A_bb), kuigi mõlemal on 34 serva?
  3. Miks on 50 bitti mittelineaarsed? Kas need on vead või taotluslikud?
  4. Milleks on tippude indeksid 1…22? Kas need viitavad millelegi reaalses maailmas?

9. Failid

Python skriptid

Fail Kirjeldus
ohvrikiri_matrix.py Excelist maatriksi lugemine
extract_matrix.py Maatriksi väljavõtmine ja algvaatlus
matrix_analysis.py SVD, aste, normid, konditsiooniarv
spectral_analysis.py Omaväärtuste spekter, spektraalsüntees, graafi spekter
graph_analysis.py Graafiteooria: bipartiidsus, klasterdumine, kesksus, diameeter, kogukonnad
visualize_graph.py PNG-piltide genereerimine (graaf, SVD, spekter) + GML
factorization.py Gram, LDLᵀ, Kronecker, Boolean, geomeetriline
pattern_recipe.py Esimene katse retseptiga (ebaõnnestus)
generate_pattern.py Retsepti generaator – töötab! (22×22 → 44×44)
extract_submatrices.py Kolme alusmaatriksi (A_aa, A_bb, A_ab) eraldamine
verify_recipe.py Kinnitus, et retsept on täpne (0 viga)

Pildid

Fail Kirjeldus
graph_visualization.png Graafi struktuur (4 paneeli)
svd_reconstruction.png SVD taaste (astmed 1…12)
spectrum.png Omaväärtuste ja Laplasi spekter

Andmed ja dokumendid

Fail Kirjeldus
ohvrikiri_matrix.txt 22×22 binaarmaatriks tekstina
ohvrikiri_graph.gml Graaf GML-formaadis (Gephi, Cytoscape)
RETSEPT.md Mustri retsept (kolm alusmaatriksit + reeglid)
LOEMIND.md Käesolev juhend
analysis_results.json SVD tulemused JSON-formaadis
spectral_results.txt Omaväärtuste ja omavektorite tulemused
graph_results.txt Graafiteooria tulemused
factorization_results.txt Faktoriseerimise tulemused

Käivitamine

Kõik skriptid on mõeldud käivitamiseks Python 3-s:

# Kõigi analüüside tegemine järjest
python3 matrix_analysis.py
python3 spectral_analysis.py
python3 graph_analysis.py
python3 visualization.py
python3 factorization.py

# Mustri genereerimine retseptist
python3 generate_pattern.py

# Kontroll
python3 verify_recipe.py

Analüüs teostatud 2025. aastal AI abiga.