1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-21 10:24:18 +00:00

Update a few things

This commit is contained in:
Steffo 2023-10-29 02:31:29 +01:00
parent 8274c28ffb
commit 85d01197a3
Signed by: steffo
GPG key ID: 2A24051445686895
166 changed files with 3572 additions and 255 deletions

3
.gitignore vendored
View file

@ -6,5 +6,4 @@
.obsidian/workspace-mobile.json
.trash
0 - Generale/★ esami.canvas
**/0 - Materiale di studio/
**/0 - Materiale di studio/

4
.obsidian/app.json vendored
View file

@ -3,7 +3,7 @@
"useMarkdownLinks": false,
"defaultViewMode": "source",
"showFrontmatter": true,
"attachmentFolderPath": "./",
"attachmentFolderPath": "0 - Generale",
"newFileLocation": "current",
"strictLineBreaks": true,
"showLineNumber": true,
@ -12,6 +12,6 @@
"autoConvertHtml": true,
"showUnsupportedFiles": true,
"newLinkFormat": "shortest",
"trashOption": "local",
"trashOption": "system",
"promptDelete": false
}

View file

@ -2,7 +2,7 @@
"accentColor": "#d14224",
"textFontFamily": "",
"monospaceFontFamily": "",
"theme": "system",
"theme": "obsidian",
"baseFontSize": 16,
"enabledCssSnippets": [
"canvas-zoom",

View file

@ -1,3 +1,4 @@
[
"obsidian-file-color"
"obsidian-file-color",
"steffo-file-index"
]

View file

@ -11,7 +11,7 @@
"daily-notes": false,
"templates": false,
"note-composer": false,
"command-palette": false,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"starred": false,

View file

@ -8,6 +8,7 @@
"outgoing-link",
"tag-pane",
"properties",
"command-palette",
"editor-status",
"bookmarks",
"outline",

22
.obsidian/graph.json vendored
View file

@ -1,6 +1,6 @@
{
"collapse-filter": false,
"search": "path:\"8 - Sistemi complessi\" ",
"search": "",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
@ -8,10 +8,24 @@
"collapse-color-groups": false,
"colorGroups": [
{
"query": "path:\"8 - Sistemi complessi/4 - Grafi\" ",
"query": "path:\"8 - Sistemi complessi\"",
"color": {
"a": 1,
"rgb": 65284
"rgb": 16776960
}
},
{
"query": "path:\"9 - Algoritmi distribuiti\" ",
"color": {
"a": 1,
"rgb": 255
}
},
{
"query": "path:\"8 - Crittografia applicata\" ",
"color": {
"a": 1,
"rgb": 16728064
}
}
],
@ -25,6 +39,6 @@
"repelStrength": 20,
"linkStrength": 1,
"linkDistance": 30,
"scale": 0.45050811767578125,
"scale": 0.14225414259055147,
"close": true
}

256
.obsidian/hotkeys.json vendored
View file

@ -1 +1,255 @@
{}
{
"markdown:add-metadata-property": [],
"file-explorer:new-file": [
{
"modifiers": [
"Mod"
],
"key": "Insert"
},
{
"modifiers": [
"Mod"
],
"key": "N"
}
],
"file-explorer:new-file-in-new-pane": [],
"editor:delete-paragraph": [],
"editor:follow-link": [],
"workspace:goto-last-tab": [],
"editor:insert-link": [
{
"modifiers": [
"Mod"
],
"key": "U"
}
],
"workspace:new-tab": [],
"app:open-help": [],
"app:open-settings": [],
"switcher:open": [],
"editor:open-search-replace": [
{
"modifiers": [
"Mod"
],
"key": "H"
},
{
"modifiers": [
"Mod"
],
"key": "R"
}
],
"editor:toggle-blockquote": [
{
"modifiers": [
"Mod"
],
"key": "\\"
}
],
"editor:toggle-bullet-list": [
{
"modifiers": [
"Mod"
],
"key": "-"
}
],
"editor:toggle-inline-math": [
{
"modifiers": [
"Mod",
"Shift"
],
"key": "4"
}
],
"editor:set-heading": [
{
"modifiers": [
"Alt",
"Mod"
],
"key": "'"
}
],
"editor:toggle-code": [
{
"modifiers": [
"Alt",
"Mod"
],
"key": "["
}
],
"editor:toggle-comments": [
{
"modifiers": [
"Mod",
"Shift"
],
"key": "5"
}
],
"editor:toggle-numbered-list": [
{
"modifiers": [
"Mod",
"Shift"
],
"key": "1"
}
],
"app:toggle-right-sidebar": [
{
"modifiers": [
"Mod"
],
"key": "End"
}
],
"app:toggle-left-sidebar": [
{
"modifiers": [
"Mod"
],
"key": "Home"
}
],
"editor:toggle-strikethrough": [
{
"modifiers": [
"Alt",
"Mod"
],
"key": "]"
}
],
"editor:fold-all": [
{
"modifiers": [
"Alt",
"Mod",
"Shift"
],
"key": "-"
}
],
"editor:unfold-all": [
{
"modifiers": [
"Alt",
"Mod",
"Shift"
],
"key": "+"
}
],
"workspace:undo-close-pane": [],
"theme:use-dark": [
{
"modifiers": [
"Mod"
],
"key": "T"
}
],
"theme:use-light": [
{
"modifiers": [
"Mod",
"Shift"
],
"key": "T"
}
],
"editor:insert-mathblock": [
{
"modifiers": [
"Alt",
"Mod",
"Shift"
],
"key": "4"
}
],
"editor:insert-codeblock": [
{
"modifiers": [
"Alt",
"Mod",
"Shift"
],
"key": "["
}
],
"editor:insert-callout": [
{
"modifiers": [
"Mod",
"Shift"
],
"key": "\\"
}
],
"editor:attach-file": [
{
"modifiers": [
"Alt",
"Mod",
"Shift"
],
"key": "V"
}
],
"graph:open": [
{
"modifiers": [
"Mod",
"Shift"
],
"key": "G"
}
],
"graph:open-local": [
{
"modifiers": [
"Mod"
],
"key": "G"
}
],
"app:delete-file": [
{
"modifiers": [
"Alt",
"Mod",
"Shift"
],
"key": "Delete"
}
],
"workspace:toggle-pin": [
{
"modifiers": [
"Alt",
"Mod"
],
"key": "P"
}
],
"command-palette:open": [
{
"modifiers": [
"Mod",
"Shift"
],
"key": "P"
}
]
}

View file

@ -8,17 +8,12 @@
{
"id": "me4XBNQC4rwzQFLlvIAn0",
"name": "System",
"value": "#65342a"
"value": "#5c0f00"
},
{
"id": "fc3lLaITDn62PYbzBhqxl",
"name": "To do",
"value": "#dac38b"
},
{
"id": "hEs1KsnMgHNA_g4pwAxtt",
"name": "Done",
"value": "#696969"
"value": "#d7a628"
}
],
"fileColors": [
@ -91,7 +86,7 @@
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "7 - High performance computing/★ glossario ad alta performance.md",
"path": "7 - High performance computing/★ glossario.md",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
@ -114,14 +109,6 @@
"path": "8 - Metodologie di sviluppo software/★ Materiale di studio",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Metodologie di sviluppo software",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "7 - High performance computing",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/2 - Teoria delle curve ellittiche/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
@ -130,30 +117,10 @@
"path": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/4 - Crittografia asimmetrica/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "0 - Generale/★ esami.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "0 - Generale",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "7 - Big data analytics",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "7 - Introduction to quantum information processing",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Crittografia applicata",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Crittografia applicata/3 - Comunicazione asimmetrica/5 - Firma digitale/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
@ -182,78 +149,10 @@
"path": "8 - Crittografia applicata/5 - Protocolli sicuri/3 - Signal/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/6b-unit-testing.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/6a-introduzione.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/5f-controllo-input.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/5e-sincronizzazione.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/5d-riduzione-superficie-attacco.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/5c-regola-silenzio.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/5b-minimo-privilegio.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/5a-introduzione.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/4f-input-non-controllato.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/4e-corse-critiche.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/4d-eccessiva-esposizione-asset.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/4c-eccessiva-verbosita-output.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/4a-introduzione.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/3-definizioni.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/4b-esecuzione-privilegi-elevati.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Crittografia applicata/2 - Comunicazione simmetrica/3 - Integrità semplice/★ mappa concettuale.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/6c-analisi-statica.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sviluppo di software sicuro/0 - Materiale di studio/Slides/6d-analisi-dinamica.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/2 - Sistemi complessi/★ sistemi complessi.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
@ -274,18 +173,6 @@
"path": "8 - Sistemi complessi/6 - Robustezza/★ robustezza.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/01_introduction_p1_V2d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/01_introduction_p2_V3d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/000_introd.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/1 - Sistemi dinamici/★ sistemi dinamici.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
@ -298,70 +185,14 @@
"path": "8 - Sistemi complessi/2 - Sistemi complessi/dense periodic orbits.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/02_selforganization_P1_V2d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/02_selforganization_P2d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/2 - Sistemi complessi/Landau's phenomenological theory.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/02_selforganization_P3_V2d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/03_CA1_intro_emergenced.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/03_CA2_CA1Dd.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/03_CA3_self_replicationd.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/03_CA4_fluidodind.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/03_CA5_modelli_v2d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/03_CA6_societad.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/4 - Grafi/percolation threshold.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/04a_lab_reti_p1_v1_COLOREd.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/04a_lab_reti_p2a_v1d_COLOR.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/04a_lab_reti_p2b_v1d_COLOR.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/04a_lab_reti_p2c_v1d_COLOR.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/04a_lab_reti_p3_v1d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/4 - Grafi/★ grafi multi-livello.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
@ -378,30 +209,10 @@
"path": "8 - Sistemi complessi/4 - Grafi/★ ipergrafi.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/05_Mreti_v2d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/05c_HypNet_V3d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/06a_OOL_protocells_v3d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/5 - Origine della vita/insieme auto-catalitico riflessivo generato da cibo.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/06b_autocat_V4_p1d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/06b_autocat_V4_p2d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/07_RBNd_COLOR.pdf",
"color": "fc3lLaITDn62PYbzBhqxl"
@ -422,14 +233,6 @@
"path": "8 - Sistemi complessi/6 - Robustezza/evolvibilità.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/08_degener_v1d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/0 - Materiale di studio/Slides/10_HOT_v1d.pdf",
"color": "hEs1KsnMgHNA_g4pwAxtt"
},
{
"path": "8 - Sistemi complessi/5 - Origine della vita/modello di Kauffman gene-RBN.md",
"color": "fc3lLaITDn62PYbzBhqxl"
@ -437,6 +240,106 @@
{
"path": "8 - Sistemi complessi/5 - Origine della vita/★ geni come random boolean network.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "9 - Algoritmi distribuiti/1 - Problemi",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/1 - Problemi/★ problemi.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "9 - Algoritmi distribuiti/1 - Problemi/classe di problemi NP-difficili.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/relax and round.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/vertex cover problem.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/relax and round per vertex cover problem.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/minimum perfect matching.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione/★ algoritmi di approssimazione.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "9 - Algoritmi distribuiti/2 - Algoritmi di approssimazione",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding broadcast v3.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast/flooding broadcast v2.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree/protocollo shout v1.md",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/1 - Concetti",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Routing",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/3 - Spanning tree",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/2 - Su anello",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/3 - Su grafo generico",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/2 - Broadcast",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "9 - Algoritmi distribuiti/3 - Computazione distribuita/4 - Leader election/1 - Concetti",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "7 - Big data analytics/★ indice.canvas",
"color": "7j7Pqog0VHMVVAfazMNlb"
},
{
"path": "7 - Introduction to quantum information processing",
"color": "fc3lLaITDn62PYbzBhqxl"
},
{
"path": "steffo-file-index.json",
"color": "me4XBNQC4rwzQFLlvIAn0"
},
{
"path": "steffo-file-index-ignore.json",
"color": "me4XBNQC4rwzQFLlvIAn0"
}
]
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,11 @@
{
"id": "steffo-file-index",
"name": "File Index",
"version": "1.1.0",
"minAppVersion": "0.15.0",
"description": "Create a metadata file about the files present in the Vault",
"author": "Steffo",
"authorUrl": "https://www.steffo.eu",
"fundingUrl": "https://ko-fi.com/steffo",
"isDesktopOnly": false
}

View file

@ -0,0 +1 @@
[[arco di un grafo|arco]] in un [[albero]] che connette un [[nodo di un grafo|nodo]] ad un suo antenato.

View file

@ -0,0 +1,31 @@
{
"nodes":[
{"id":"6b1fd76799ab0012","type":"file","file":"7 - Big data analytics/A2 - Big data/README.md","subpath":"#Redis per applicazioni scalabili, efficienti e veloci","x":-800,"y":-480,"width":880,"height":960},
{"id":"e4cbe1c9d5eb9723","type":"file","file":"7 - Big data analytics/A1 - MongoDB/README.md","subpath":"#Ricerca in linguaggio naturale sul dataset Amazon","x":240,"y":-480,"width":880,"height":960},
{"id":"7c1c60e823cc24ed","type":"file","file":"7 - Big data analytics/A3 - Neo4J/README.md","subpath":"#Modellazione di un database Neo4J per le dipendenze delle crates del linguaggio Rust","x":1280,"y":-480,"width":880,"height":960},
{"id":"77b5537483e2931f","type":"file","file":"7 - Big data analytics/B1 - Data analytics/README.md","subpath":"#Data analytics","x":2320,"y":-480,"width":880,"height":960},
{"id":"53e84ca993b4c1bb","type":"file","file":"7 - Big data analytics/B3 - Graph analytics/README.md","subpath":"#Analisi su grafo Neo4J relativo alle dipendenze delle crates del linguaggio Rust","x":3360,"y":-480,"width":880,"height":960},
{"id":"1b701e57c527ec45","type":"file","file":"7 - Big data analytics/B2 - Text analytics/README.md","subpath":"#Confronto tra modelli di sentiment analysis per recensioni Amazon","x":4400,"y":-480,"width":880,"height":960},
{"id":"b285c5a2a42b4b96","type":"text","text":"# Progetti","x":2140,"y":-800,"width":200,"height":80,"color":"#ffffff"},
{"id":"322a35eaca61d03f","x":-800,"y":640,"width":880,"height":960,"type":"link","url":"https://github.com/Steffo99/unimore-bda-1"},
{"id":"ad0bf82864f8ab92","x":240,"y":640,"width":880,"height":960,"type":"link","url":"https://github.com/Steffo99/unimore-bda-2"},
{"id":"1ea0dbc5af26f1d0","x":1280,"y":640,"width":880,"height":960,"type":"link","url":"https://github.com/Steffo99/unimore-bda-3"},
{"id":"583dab4ef85f9ab8","x":2320,"y":640,"width":880,"height":960,"type":"link","url":"https://github.com/Steffo99/unimore-bda-4"},
{"id":"8f57ec61410579e3","x":3360,"y":640,"width":880,"height":960,"type":"link","url":"https://github.com/Steffo99/unimore-bda-5"},
{"id":"460943111ec9b9eb","x":4400,"y":640,"width":880,"height":960,"type":"link","url":"https://github.com/Steffo99/unimore-bda-6"}
],
"edges":[
{"id":"37eaaf2a85a6f27b","fromNode":"b285c5a2a42b4b96","fromSide":"bottom","toNode":"6b1fd76799ab0012","toSide":"top"},
{"id":"d1d8cd4aa5b79a9b","fromNode":"b285c5a2a42b4b96","fromSide":"bottom","toNode":"e4cbe1c9d5eb9723","toSide":"top"},
{"id":"0db3535077dc0690","fromNode":"b285c5a2a42b4b96","fromSide":"bottom","toNode":"7c1c60e823cc24ed","toSide":"top"},
{"id":"672782657df38254","fromNode":"b285c5a2a42b4b96","fromSide":"bottom","toNode":"77b5537483e2931f","toSide":"top"},
{"id":"ba306bf36bf9b65a","fromNode":"b285c5a2a42b4b96","fromSide":"bottom","toNode":"53e84ca993b4c1bb","toSide":"top"},
{"id":"60bdd10dcdd3a3ea","fromNode":"b285c5a2a42b4b96","fromSide":"bottom","toNode":"1b701e57c527ec45","toSide":"top"},
{"id":"3bc6b70bc61c8a26","fromNode":"6b1fd76799ab0012","fromSide":"bottom","toNode":"322a35eaca61d03f","toSide":"top"},
{"id":"370e09a6ce9572bf","fromNode":"e4cbe1c9d5eb9723","fromSide":"bottom","toNode":"ad0bf82864f8ab92","toSide":"top"},
{"id":"9dd36277eac4ee70","fromNode":"7c1c60e823cc24ed","fromSide":"bottom","toNode":"1ea0dbc5af26f1d0","toSide":"top"},
{"id":"a29210bb95313ec7","fromNode":"77b5537483e2931f","fromSide":"bottom","toNode":"583dab4ef85f9ab8","toSide":"top"},
{"id":"efd229189b9a96f1","fromNode":"53e84ca993b4c1bb","fromSide":"bottom","toNode":"8f57ec61410579e3","toSide":"top"},
{"id":"9ebb31c9c4e1f357","fromNode":"1b701e57c527ec45","fromSide":"bottom","toNode":"460943111ec9b9eb","toSide":"top"}
]
}

View file

@ -1 +1 @@
Definizione formale delle caratteristiche condivise da tutte le possibili [[soluzione|soluzioni]] di un problema.
Definizione formale delle caratteristiche condivise da tutte le possibili [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione|soluzioni]] di un problema.

View file

@ -1 +1 @@
Specifica realizzazione pratica di una data [[funzione ideale]], che, dati zero o più [[parametro|parametri]], emette uno o più [[risultato|risultati]].
Specifica realizzazione pratica di una data [[funzione ideale]], che, dati zero o più [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|parametri]], emette uno o più [[risultato|risultati]].

View file

@ -1 +1 @@
Serie di azioni da eseguire per ottenere un effetto.
Sequenza di azioni da eseguire per ottenere un effetto.

View file

@ -1 +1 @@
Requisito delle [[soluzione|soluzioni]] di un [[problema]] per cui esse non devono creare effetti indesiderati.
Requisito delle [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione|soluzioni]] di un [[problema]] per cui esse non devono creare effetti indesiderati.

View file

@ -1 +1 @@
Parte di un requisito di [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/sicurezza]] che specifica uno specifico effetto indesiderato che non deve essere prodotto da una [[soluzione]].
Parte di un requisito di [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/sicurezza]] che specifica uno specifico effetto indesiderato che non deve essere prodotto da una [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]].

View file

@ -1,4 +1,4 @@
[[Parametro]] che scala:
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro]] che scala:
- il [[costo]] per l'[[utilizzo]] di una [[funzione]] *(idealmente [[polinomiale|polinomialmente]])*
- il [[costo]] per l'[[attacco]] dello stesso *(idealmente [[esponenziale|esponenzialmente]])*
- la soglia di probabilità che una [[garanzia computazionale]] venga violata *(idealmente [[inversa polinomiale|inversamente a una polinomiale]])*

View file

@ -1,4 +1,4 @@
[[parametro]] e [[risultato]] di un [[pseudo-random number generator]] necessario a calcolare il valore successivo da emettere.
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro]] e [[risultato]] di un [[pseudo-random number generator]] necessario a calcolare il valore successivo da emettere.
Viene passato in input al generatore, modificato, e poi rimesso in output.

View file

@ -7,7 +7,7 @@
## Funzionamento
Consiste nel provare tutti i possibili [[parametro|parametri]] della [[funzione di cifratura]] fino a quando essa non emette il [[ciphertext]] conosciuto.
Consiste nel provare tutti i possibili [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|parametri]] della [[funzione di cifratura]] fino a quando essa non emette il [[ciphertext]] conosciuto.
### Livello di sicurezza

View file

@ -1,3 +1,3 @@
[[parametro|Parametro]] delle [[funzione di cifratura|funzioni di cifratura]] e delle [[funzione di decifratura|funzioni di decifratura]] di [[crittografia simmetrica moderna]].
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|Parametro]] delle [[funzione di cifratura|funzioni di cifratura]] e delle [[funzione di decifratura|funzioni di decifratura]] di [[crittografia simmetrica moderna]].
[[Blob]] [[casualità crittografica|imprevedibile]] [[uniforme]] condiviso dai [[squadra blu|difensori]].

View file

@ -1,3 +1,3 @@
[[funzione]] il cui output può essere differenziato con uno o più [[parametro|parametri]].
[[funzione]] il cui output può essere differenziato con uno o più [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|parametri]].
Questi parametri possono essere impostati dall'analista che realizza un nuovo [[funzione|protocollo]], oppure dallo sviluppatore che li utilizza in una sua [[applicazione]].

View file

@ -1,6 +1,6 @@
[[funzione ideale]].
Ha come [[parametro]]:
Ha come [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro]]:
- un dato [[confidenzialità|confidenziale]] non-[[uniforme]]
Dà come [[risultato]]:

View file

@ -2,4 +2,4 @@
aliases: ["ikm"]
---
[[testo]] fornito in [[parametro|input]] a una [[key derivation function]].
[[testo]] fornito in [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|input]] a una [[key derivation function]].

View file

@ -2,4 +2,4 @@
aliases: ["prk"]
---
[[blob]] dato in [[risultato|output]] dalla fase di [[extraction di una key derivation function]], dato in [[parametro|input]] alla fase di [[expansion di una key derivation function|expansion]].
[[blob]] dato in [[risultato|output]] dalla fase di [[extraction di una key derivation function]], dato in [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|input]] alla fase di [[expansion di una key derivation function|expansion]].

View file

@ -2,7 +2,7 @@
aliases: ["private key"]
---
[[parametro]] sconosciuto della [[congettura Diffie-Hellman classica]].
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro]] sconosciuto della [[congettura Diffie-Hellman classica]].
#TODO Ma non solo.

View file

@ -2,7 +2,7 @@
aliases: ["public key"]
---
[[parametro]] conosciuto della [[congettura Diffie-Hellman classica]].
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro]] conosciuto della [[congettura Diffie-Hellman classica]].
#TODO Ma non solo.
$$

View file

@ -1 +1 @@
[[funzione]] in cui, conoscendo il [[risultato]], non è possibile risalire ai [[parametro|parametri]].
[[funzione]] in cui, conoscendo il [[risultato]], non è possibile risalire ai [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|parametri]].

View file

@ -1,11 +1,11 @@
[[funzione di password hashing]] il cui fattore principale di costo è lo [[spazio]].
[[funzione di password hashing]] il cui fattore principale di costo è lo [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/spazio]].
## Parametri
- [[password]]
- [[salt]]
- Fattore di [[tempo]]
- Fattore di [[spazio]]
- Fattore di [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/tempo]]
- Fattore di [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/spazio]]
- Fattore di parallelismo
- [[lunghezza dell'output]]

View file

@ -7,5 +7,5 @@ Meno tentativi riesce a fare l'[[avversario]], più il livello di sicurezza è e
### Mitigazioni
Per limitare i tentativi effettuabili dall'[[avversario]], possono essere adottate due soluzioni:
- [[invalidazione]] temporanea della credenziale attaccata per periodi crescenti di [[tempo]]
- [[invalidazione]] temporanea della credenziale attaccata per periodi crescenti di [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/tempo]]
- [[invalidazione]] permanente della credenziale attaccata dopo un certo numero di accessi falliti

View file

@ -10,4 +10,4 @@ Ha un [[costo]] significativamente più elevato delle normali [[funzione di hash
Dipende dalle risorse a disposizione dell'[[avversario]].
In passato, il fattore limitante era il [[tempo]], ma con lo sviluppo di [[hardware dedicato all'hashing]], il fattore limitante è diventato prevalentemente lo [[spazio]].
In passato, il fattore limitante era il [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/tempo]], ma con lo sviluppo di [[hardware dedicato all'hashing]], il fattore limitante è diventato prevalentemente lo [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/spazio]].

View file

@ -1,4 +1,4 @@
[[funzione di password hashing]] il cui fattore principale di costo è lo [[spazio]].
[[funzione di password hashing]] il cui fattore principale di costo è lo [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/spazio]].
## Casi d'uso

View file

@ -1 +1 @@
[[parametro]] o [[risultato]] il cui valore è nascosto e può essere rivelato solo da uno specifico [[agente]].
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro]] o [[risultato]] il cui valore è nascosto e può essere rivelato solo da uno specifico [[agente]].

View file

@ -1 +1 @@
Caratteristica di una [[funzione]] in grado di operare su dei [[blinded]] [[parametro|input]] per restituire un [[blinded]] [[risultato|output]].
Caratteristica di una [[funzione]] in grado di operare su dei [[blinded]] [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|input]] per restituire un [[blinded]] [[risultato|output]].

View file

@ -1,3 +1,3 @@
[[soluzione]] al problema di [[distribuzione chiavi pubbliche]] in cui si fa uso della [[fiducia transitiva]] per determinare se fidarsi o no di una data [[chiave pubblica]].
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] al problema di [[distribuzione chiavi pubbliche]] in cui si fa uso della [[fiducia transitiva]] per determinare se fidarsi o no di una data [[chiave pubblica]].
Offre ottima [[scalabilità]].

View file

@ -1 +1 @@
"[[soluzione]]" al problema di [[distribuzione chiavi pubbliche]] in cui si utilizza un canale sicuro stabilito in precedenza per [[autenticità|autenticare]] le nuove [[chiave pubblica|chiavi pubbliche]].
"[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]]" al problema di [[distribuzione chiavi pubbliche]] in cui si utilizza un canale sicuro stabilito in precedenza per [[autenticità|autenticare]] le nuove [[chiave pubblica|chiavi pubbliche]].

View file

@ -2,4 +2,4 @@
aliases: ["TOFU"]
---
[[soluzione]] al problema di [[distribuzione chiavi pubbliche]] in cui si considera sempre [[autenticità|autenticato]] il primo [[scambio di chiave]] effettuato con un altro [[user agent]].
[[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] al problema di [[distribuzione chiavi pubbliche]] in cui si considera sempre [[autenticità|autenticato]] il primo [[scambio di chiave]] effettuato con un altro [[user agent]].

View file

@ -2,7 +2,7 @@
aliases: ["issue"]
---
Tecnica di sviluppo per la [[fase di specifica]] e la [[fase di design]] in cui i requisiti vengono specificati come gli obiettivi che l'ideatore vuole raggiungere attraverso la sua [[soluzione]], e non come dettagli tecnici di implementazione.
Tecnica di sviluppo per la [[fase di specifica]] e la [[fase di design]] in cui i requisiti vengono specificati come gli obiettivi che l'ideatore vuole raggiungere attraverso la sua [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]], e non come dettagli tecnici di implementazione.
Sono raccolte in raggruppamenti detti [[epic]].

View file

@ -1,7 +1,7 @@
Fase di un [[processo di sviluppo software]] in cui si determina ***come è formata*** la [[soluzione]] che si vuole sviluppare.
Fase di un [[processo di sviluppo software]] in cui si determina ***come è formata*** la [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] che si vuole sviluppare.
In essa:
- si utilizzano [[design pattern]] per soddisfare il [[documento dei requsiti]] in una [[soluzione]] pratica
- si utilizzano [[design pattern]] per soddisfare il [[documento dei requsiti]] in una [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] pratica
- si compilano tutti i [[design pattern]] selezionati in un [[artefatto]] detto [[specifica]]
Talvolta ci si avvale di [[diagramma|diagrammi]] per rendere più chiari i concetti modellati, come:

View file

@ -1,5 +1,5 @@
Fase di un [[processo di sviluppo software]] in cui si ***effettua lo sviluppo***.
In essa, partendo dalla [[specifica]]:
- si determinano le [[dipendenza|dipendenze]] da utilizzare nella [[soluzione]], verificando la compatibilità con la [[licenza]] con il progetto
- si scrive il [[codice]] necessario a soddisfarla, [[artefatto|producendo]] la [[soluzione]] vera e propria
- si determinano le [[dipendenza|dipendenze]] da utilizzare nella [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]], verificando la compatibilità con la [[licenza]] con il progetto
- si scrive il [[codice]] necessario a soddisfarla, [[artefatto|producendo]] la [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] vera e propria

View file

@ -1,4 +1,4 @@
Fase di un [[processo di sviluppo software]] in cui si ***modifica*** la [[soluzione]] realizzata per correggere [[bug]] e [[errore|errori]].
Fase di un [[processo di sviluppo software]] in cui si ***modifica*** la [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] realizzata per correggere [[bug]] e [[errore|errori]].
In essa:
- si mantengono operativi eventuali [[server]] che [[software-as-a-service|prestano servizi]]

View file

@ -2,7 +2,7 @@
aliases: ["fase di release"]
---
Fase di un [[processo di sviluppo software]] in cui si ***consegna*** all'ideatore la [[soluzione]] realizzata.
Fase di un [[processo di sviluppo software]] in cui si ***consegna*** all'ideatore la [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] realizzata.
In essa:
- si [[artefatto|producono]] le [[istruzioni]] per l'installazione e l'utilizzo del software

View file

@ -2,7 +2,7 @@
aliases: ["evolutionary model"]
---
[[modello iterativo]] in cui la [[soluzione]] realizzata viene ricreata a [[timeboxing|intervalli regolari]], sfruttando le conoscenze ottenute nell'intervallo precedente per trovare una [[soluzione]] migliore.
[[modello iterativo]] in cui la [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] realizzata viene ricreata a [[timeboxing|intervalli regolari]], sfruttando le conoscenze ottenute nell'intervallo precedente per trovare una [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] migliore.
## #Extra Casi d'uso

View file

@ -2,8 +2,8 @@
aliases: ["incremental model"]
---
[[modello iterativo]] in cui la [[soluzione]] realizzata viene migliorata a [[timeboxing|intervalli regolari]], realizzando ad ogni passo una [[soluzione]] sempre più funzionale.
[[modello iterativo]] in cui la [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] realizzata viene migliorata a [[timeboxing|intervalli regolari]], realizzando ad ogni passo una [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] sempre più funzionale.
## #Extra Casi d'uso
Trova ottimo impiego nello sviluppo di [[software-as-a-service]], in quanto è sempre necessario mantenere la [[retrocompatibilità]] ma al tempo stesso c'è bisogno di adattare la [[soluzione]] alle circostanze reali correnti.
Trova ottimo impiego nello sviluppo di [[software-as-a-service]], in quanto è sempre necessario mantenere la [[retrocompatibilità]] ma al tempo stesso c'è bisogno di adattare la [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] alle circostanze reali correnti.

View file

@ -1,4 +1,4 @@
[[test]] che verifica la soddisfazione di un dato [[requisito]] da parte della [[soluzione]] realizzata.
[[test]] che verifica la soddisfazione di un dato [[requisito]] da parte della [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]] realizzata.
## Esempio

View file

@ -2,7 +2,7 @@
aliases: ["benchmark", "bench"]
---
[[test]] che misura e verifica l'efficienza della [[soluzione]].
[[test]] che misura e verifica l'efficienza della [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]].
## Esempio

View file

@ -1,4 +1,4 @@
[[test]] che verifica la corretta risoluzione di un dato [[bug]] o [[errore]], e l'assenza di [[regressione|regressioni]] in versioni future della [[soluzione]].
[[test]] che verifica la corretta risoluzione di un dato [[bug]] o [[errore]], e l'assenza di [[regressione|regressioni]] in versioni future della [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/soluzione]].
```
from calculator import div

View file

@ -1 +1 @@
[[Modello matematico]] che prova a rappresentare un [[fenomeno]] reale che si evolve nel [[tempo]].
[[Modello matematico]] che prova a rappresentare un [[fenomeno]] reale che si evolve nel [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/tempo]].

View file

@ -1 +1 @@
[[automa cellulare continuo]] con [[spazio]] e [[tempo]] continui invece che quantizzati.
[[automa cellulare continuo]] con [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/spazio]] e [[8 - Crittografia applicata/1 - Concetti/2 - Dimostrare la validità delle soluzioni/tempo]] continui invece che quantizzati.

View file

@ -13,3 +13,5 @@ $$
\bigg]
\bigg]
$$
È, nel caso peggiore, $archi - 1$.

View file

@ -1,3 +1,3 @@
[[Entità]] all'interno di un [[sistema complesso]].
[[entità]] all'interno di un [[sistema complesso]].
In particolare, un software.

View file

@ -0,0 +1,3 @@
[[Algoritmo]] che per ogni [[istanza]] restituisce sempre la [[soluzione]] corrispondente.
> Un algoritmo non è *corretto* non solo se c'è qualche istanza per cui restituisce la soluzione sbagliata, ma anche se c'è qualche istanza **per cui non termina mai**!

View file

@ -0,0 +1,5 @@
[[Procedura]] generale per risolvere un [[problema computazionale]] che deve:
- essere **finita**
- **non** essere **ambigua**
- essere **effettivamente realizzabile**
- terminare **in un tempo finito**

View file

@ -0,0 +1,6 @@
Sequenza di caratteri [[polinomiale]].
Dimostra che una data [[istanza]] è un'[[istanza positiva]].
> Nel problema di [[ricerca di ciclo hamiltoniano]], un [[certificato per un'istanza]] positiva è una sequenza di nodi attraversati che risulta in un [[ciclo hamiltoniano]].

View file

@ -0,0 +1 @@
[[Percorso di un grafo]] che inizia e finisce allo stesso [[nodo di un grafo|nodo]].

View file

@ -0,0 +1,26 @@
---
aliases:
- classe NP-complete
- NP-complete
- problema NP-complete
---
[[Insieme]] di [[problema decisionale|problemi decisionali]] equivalenti tra loro.
Tutti i problemi della [[classe di problemi NP]] possono essere [[riduzione di Karp|ridotti]] ad essi:
$$
\def \varProblemA {{\color{DarkOrchid} Problem_{A}}}
\def \varProblemB {{\color{SlateBlue} Problem_{B}}}
\Huge
\begin{cases}
\varProblemA \in NP
\\\\
\forall \varProblemB \in NP : \varProblemB \leq_p \varProblemA
\end{cases}
$$
> Per dimostrare che un problema è NP-completo, basta dimostrare che un problema [[NP]] sia riducibile a uno NP-completo.
Il primo problema NP-completo scoperto è stato [[satisfability|SAT]]; è stato poi utilizzato come [[bootstrap]] per tutti gli altri.
Hanno una particolare rilevanza per il [[problema P e NP]].

View file

@ -0,0 +1,20 @@
---
aliases:
- classe NP-hard
- NP-hard
- problema NP-hard
---
[[Insieme]] di [[problema di ottimizzazione|problemi di ottimizzazione]], di difficoltà uguale o maggiore rispetto alla [[classe di problemi NP]].
Perchè un problema sia considerato NP-difficile, si deve dimostrare che qualsiasi problema [[classe di problemi NP|NP]] possa essere [[riduzione di Karp|ridotto]] ad esso:
$$
\def \varProblemA {{\color{DarkOrchid} Problem_{A}}}
\def \varProblemB {{\color{SlateBlue} Problem_{B}}}
\Huge
\begin{cases}
\varProblemA \in NP_{Hard}
\\\\
\forall \varProblemB \in NP : \varProblemB \leq_p \varProblemA
\end{cases}
$$

View file

@ -0,0 +1,14 @@
---
aliases:
- classe NP
- NP
- problema NP
---
[[Insieme]] di [[problema decisionale|problemi decisionali]] con [[algoritmo]] [[verifica|verificatore]] [[polinomiale]] conosciuto.
Trovare un algoritmo verificatore [[polinomiale]] per un problema indica che il problema è NP.
Include la [[classe di problemi P]].
> Possibilmente *uguale* alla [[classe di problemi P]].

View file

@ -0,0 +1,14 @@
---
aliases:
- classe P
- P
- problema P
---
[[Insieme]] di [[problema decisionale|problemi decisionali]] con [[costo computazionale]] [[polinomiale]].
Trovare un [[algoritmo]] [[polinomiale]] per un problema indica che il problema è P.
Sottoinsieme della [[classe di problemi NP]].
> Possibilmente *uguale* alla [[classe di problemi NP]].

View file

@ -0,0 +1,13 @@
---
aliases:
- complessità computazionale
---
[[Misura]] che quantifica le [[risorsa|risorse]] necessarie a risolvere l'[[istanza]] peggiore di un [[problema computazionale]] in funzione della [[dimensione dell'input|dimensione del suo input]].
Può essere relativo a:
- [[tempo]]
- [[spazio]]
> È spesso interessante studiarne i limiti, in particolare il limite inferiore.

View file

@ -0,0 +1,13 @@
Considera la [[dimensione dell'input]] come il numero di [[bit]] richiesti per rappresentarlo.
## Esempi
$$
f(16) \underset{costo}{\longrightarrow} lg(16) = 4
$$
$$
f(128) \underset{costo}{\longrightarrow} lg(128) = 7
$$
$$
f([1, 2, 3, 4]) \underset{costo}{\longrightarrow} 1 + 2 + 2 + 3 = 8
$$

View file

@ -0,0 +1,13 @@
Considera la [[dimensione dell'input]] come il numero di [[elemento|elementi]] richiesti per rappresentarlo.
## Esempi
$$
f(16) \underset{costo}{\longrightarrow} 1
$$
$$
f(128) \underset{costo}{\longrightarrow} 1
$$
$$
f([1, 2, 3, 4]) \underset{costo}{\longrightarrow} 1+1+1+1 = 4
$$

View file

@ -0,0 +1 @@
Metodo utilizzato per misurare la [[dimensione dell'input]] di un

View file

@ -0,0 +1,5 @@
[[Misura]] relativa ai [[parametro|parametri]] che ne astrae la dimensione.
Calcolata in base a vari criteri:
- [[criterio di costo logaritmico]]
- [[criterio di costo uniforme]]

View file

@ -0,0 +1,13 @@
---
aliases:
- costo
- cost
---
[[funzione obiettivo]] per un [[problema di minimizzazione]].
$$
\Huge
cost(\dots)
$$

View file

@ -0,0 +1,12 @@
---
aliases:
- guadagno
- gain
---
[[funzione obiettivo]] per un [[problema di massimizzazione]].
$$
\Huge
gain(\dots)
$$

View file

@ -0,0 +1,9 @@
[[Funzione]] che si vuole ottimizzare in un [[problema di ottimizzazione]].
$$
\Huge
goal(\dots)
$$
In [[problema di minimizzazione|problemi di minimizzazione]] è detta [[funzione costo]].
In [[problema di massimizzazione|problemi di massimizzazione]] è detta [[funzione guadagno]].

View file

@ -0,0 +1,5 @@
[[Insieme]] di tutte le [[istanza|istanze]] di un [[problema computazionale]].
$$
\Huge I
$$

View file

@ -0,0 +1,5 @@
[[insieme]] di tutte le [[soluzione|soluzioni]] di un [[problema computazionale]]:
$$
\Huge S
$$

View file

@ -0,0 +1,3 @@
[[istanza]] di un [[problema decisionale]] il cui risultato è [[negativo]].
Opposta all'[[istanza positiva]].

View file

@ -0,0 +1,3 @@
[[istanza]] di un [[problema decisionale]] il cui risultato è [[positivo]].
Opposta all'[[istanza negativa]].

View file

@ -0,0 +1,11 @@
---
aliases:
- input
---
Specifica selezione di [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|parametri]] di un [[problema computazionale]].
$$
\Huge I
$$

View file

@ -0,0 +1,5 @@
[[logaritmo]] a volte rappresentato con la seguente sintassi:
$$
\Huge
lg(n)
$$

View file

@ -0,0 +1,26 @@
---
aliases:
- big-O
---
[[notazione asintotica]] per il [[limite inferiore]].
$$
\def \varAsym {{\color{royalblue} g(n)}}
\def \varFunc {{\color{orangered} f(n)}}
\def \varMore {{\color{palegreen} c_{more}}}
\def \varBeginning {{\color{turquoise} n_0}}
\Huge
O(\varAsym)
$$
In linguaggio formale, $\varFunc$ è in $O(\varAsym)$ se:
$$
O(\varAsym)
\Longleftrightarrow
\begin{cases}
\exists & \varMore > 0\\
\exists & \varBeginning > 0\\
\\
\forall & n \geq \varBeginning\\
: & 0 \leq \varFunc \leq (\varMore \cdot \varAsym)
\end{cases}
$$

View file

@ -0,0 +1,13 @@
Notazione astratta per confrontare funzioni, usata solitamente per fare confronti di [[costo computazionale]].
$$
\def \varAsym {{\color{royalblue} g(n)}}
\Huge
\boxdot(\varAsym)
$$
| Limite | Asintoto stretto | Asintoto libero |
|-|-|-|
| [[Limite inferiore]] | [[notazione O-grande]] | [[notazione o-piccola]] |
| [[Limite bilaterale]] | [[notazione Θ-grande]] | |
| [[Limite superiore]] | [[notazione Ω-grande]] | [[notazione ω-piccola]] |

View file

@ -0,0 +1,28 @@
---
aliases:
- small-o
---
[[notazione asintotica]] per il [[limite inferiore]].
$$
\def \varAsym {{\color{royalblue} g(n)}}
\def \varFunc {{\color{orangered} f(n)}}
\def \varMore {{\color{palegreen} c_{more}}}
\def \varBeginning {{\color{turquoise} n_0}}
\Huge
o(\varAsym)
$$
In linguaggio formale, $\varFunc$ è in $O(\varAsym)$ se:
$$
o(\varAsym)
\Longleftrightarrow
\begin{cases}
\forall & \varMore > 0\\
\\
: & \begin{cases}
\exists & \varBeginning > 0\\
\forall & n \geq \varBeginning\\
: & 0 \leq \varFunc \leq (\varMore \cdot \varAsym)
\end{cases}
\end{cases}
$$

View file

@ -0,0 +1,32 @@
---
aliases:
- big-Theta
- notazione theta-grande
- big-Θ
- tight bound
---
[[notazione asintotica]] per il [[limite bilaterale]].
$$
\def \varAsym {{\color{royalblue} g(n)}}
\def \varFunc {{\color{orangered} f(n)}}
\def \varLess {{\color{lightcoral} c_{less}}}
\def \varMore {{\color{palegreen} c_{more}}}
\def \varBeginning {{\color{turquoise} n_0}}
\Huge
\Theta(\varAsym)
$$
In linguaggio formale, $\varFunc$ è in $\Theta(\varAsym)$ se:
$$
\Theta(\varAsym)
\Longleftrightarrow
\begin{cases}
\exists & \varLess > 0\\
\exists & \varMore > 0\\
\exists & \varBeginning > 0\\
\\
\forall & n \geq \varBeginning\\
: & 0 \leq (\varLess \cdot \varAsym) \leq \varFunc \leq (\varMore \cdot \varAsym)
\end{cases}
$$

View file

@ -0,0 +1,31 @@
---
aliases:
- big-Omega
- notazione omega-grande
- big-Ω
- lower bound
---
[[notazione asintotica]] per il [[limite inferiore]].
$$
\def \varAsym {{\color{royalblue} g(n)}}
\def \varFunc {{\color{orangered} f(n)}}
\def \varLess {{\color{lightcoral} c_{less}}}
\def \varMore {{\color{palegreen} c_{more}}}
\def \varBeginning {{\color{turquoise} n_0}}
\Huge
\Omega(\varAsym)
$$
In linguaggio formale, $\varFunc$ è in $\Omega(\varAsym)$ se:
$$
\Omega(\varAsym)
\Longleftrightarrow
\begin{cases}
\exists & \varLess > 0\\
\exists & \varBeginning > 0\\
\\
\forall & n \geq \varBeginning\\
: & 0 \leq (\varLess \cdot \varAsym) \leq \varFunc
\end{cases}
$$

View file

@ -0,0 +1,30 @@
---
aliases:
- omega-piccola
- small-ω
- small-omega
---
[[notazione asintotica]] per il [[limite inferiore]].
$$
\def \varAsym {{\color{royalblue} g(n)}}
\def \varFunc {{\color{orangered} f(n)}}
\def \varLess {{\color{lightcoral} c_{less}}}
\def \varBeginning {{\color{turquoise} n_0}}
\Huge
\omega(\varAsym)
$$
In linguaggio formale, $\varFunc$ è in $\omega(\varAsym)$ se:
$$
\omega(\varAsym)
\Longleftrightarrow
\begin{cases}
\forall & \varLess > 0\\
\\
: & \begin{cases}
\exists & \varBeginning > 0\\
\forall & n \geq \varBeginning\\
: & 0 \leq (\varLess \cdot \varAsym) \leq \varFunc
\end{cases}
\end{cases}
$$

View file

@ -0,0 +1,5 @@
Un [[problema di ottimizzazione]] si può convertire in [[problema decisionale]]:
> **[[problema di ottimizzazione|Ottimizzazione]]**: Dato un [[grafo]] e due [[nodo di un grafo|nodi]], qual è la lunghezza del cammino minimo?
>
> **[[problema decisionale|Decisionale]]**: Dato un [[grafo]] e due [[nodo di un grafo|nodi]], esiste un cammino minimo più corto di $k$?

View file

@ -0,0 +1,8 @@
---
aliases:
- input
- argomento
---
Informazione utilizzata da un [[algoritmo]] per arrivare a un [[risultato]].

View file

@ -0,0 +1,5 @@
[[Funzione]] rappresentabile nel seguente modo:
$$
\Huge
\sum_{monomio = 0}^{grado} coefficiente_{monomio} \cdot n^{monomio}
$$

View file

@ -0,0 +1,19 @@
[[problema]] matematico tutt'ora [[irrisolto]].
## Enunciato
La [[classe di problemi P]] e la [[classe di problemi NP]] sono equivalenti?
## Relazione con [[classe di problemi NP-completi|NP-complete]]
Se si riesce a trovare un problema [[classe di problemi NP-completi|NP-complete]] con costo [[polinomiale]]:
$$
\large
P = NP
$$
Se si riesce a dimostrare che per risolvere un problema [[classe di problemi NP-completi|NP-complete]] non esistono [[algoritmo|algoritmi]] con costo [[polinomiale]]:
$$
\large
P \not= NP
$$

View file

@ -0,0 +1,5 @@
[[Problema]] a cui vogliamo trovare una risposta dipendente da [[8 - Crittografia applicata/1 - Concetti/1 - Trovare soluzioni crittografiche/parametro|parametri]] non specificati.
$$
\Huge \Pi : I → S
$$

View file

@ -0,0 +1 @@
[[problema computazionale]] con risposta [[boolean|booleana]].

View file

@ -0,0 +1,61 @@
---
aliases:
- traveling salesman problem
- TSP
---
[[problema di ottimizzazione]] appartenente alla [[classe di problemi NP-difficili]].
## Enunciato
Dato un [[grafo completo]] pesato, qual è il [[ciclo hamiltoniano]] di costo minimo?
### Verifica
Dato un [[grafo completo]] pesato, e un [[ciclo hamiltoniano]], esso è quello di costo minimo?
## Dimostrazione della [[classe di problemi NP-difficili]]
Si può fare uso della [[ricerca di ciclo hamiltoniano]] per dimostrare la classe di appartenenza di questo problema.
$$
\def \varGraphA {{\color{DarkSalmon} Graph_{Hamilton}}}
\def \varEdgesA {{\color{LightSalmon} Edges_{Hamilton}}}
\def \varGraphB {{\color{Orchid} Graph_{Salesman}}}
\def \varEdgesB {{\color{Thistle} Edges_{Salesman}}}
\def \varCost {{\color{MediumPurple} Cost_{Salesman}}}
\def \varNodes {{\color{SpringGreen} Nodes_{Shared}}}
\tiny\color{Gray} [Definizione\ variabili\ \TeX\ qui]
$$
Partiamo dal [[grafo]] semplice della [[ricerca di ciclo hamiltoniano]], che definiamo così:
$$
\varGraphA = (\varNodes, \varEdgesA)
$$
Vogliamo associare ogni [[istanza]] di esso a un'[[istanza]] di problema del commesso viaggiatore, che però richiede che il grafo sia [[grafo completo|completo]] e pesato:
$$
\varGraphB = (\varNodes, \varEdgesB)
$$
Allora, sfruttiamo i pesi a nostro vantaggio per creare un grafo in cui gli archi di $\varGraphA$ siano sempre preferiti nella scelta del percorso:
$$
\forall\ edge \in \varEdgesB : cost(edge) = \begin{cases}
\textrm{if}\ edge \in \varEdgesA & 0
\\\\
\textrm{else} & 1
\end{cases}
$$
Una volta determinata la soluzione del problema del commesso viaggiatore, giungeremo a conoscenza del costo minimo del percorso che attraversa tutti i nodi:
$$
travelingSalesmanProblem(\varGraphB) = \varCost
$$
In base al costo minimo $\varCost$ risultante, possiamo determinare la risposta al problema di [[ricerca di ciclo hamiltoniano]].
Infatti, se una soluzione ad esso esiste, il problema del commesso viaggiatore darà $\varCost = 0$, in quanto tutti gli archi di $\varGraphA$ sono preferiti per via del loro peso minore; viceversa, se una soluzione ad esso non esiste, l'output sarà $\varCost > 0$, che significa che è necessario aggiungere il dato numero di archi ulteriori per formare un [[ciclo hamiltoniano]]:
$$
\begin{cases}
\textrm{if}\ \varCost = 0 & \exists\ hamiltonianCycle(\varGraphA)
\\\\
\textrm{else} & \not\exists\ hamiltonianCycle(\varGraphA)
\end{cases}
$$

View file

@ -0,0 +1,9 @@
---
aliases:
- massimizzare
- massimizzazione
---
[[problema di ottimizzazione]] in cui si cerca il [[massimo globale]] di una [[funzione guadagno]].
[[Duale]] del [[problema di minimizzazione]].

View file

@ -0,0 +1,9 @@
---
aliases:
- minimizzare
- minimizzazione
---
[[problema di ottimizzazione]] in cui si cerca il [[minimo globale]] di una [[funzione costo]].
[[Duale]] del [[problema di massimizzazione]].

View file

@ -0,0 +1,5 @@
[[problema computazionale]] in cui si vuole trovare la [[soluzione ottima]] di una [[funzione obiettivo]].
Sono problemi di ottimizzazione:
- i [[problema di minimizzazione|problemi di minimizzazione]]
- i [[problema di massimizzazione|problemi di massimizzazione]]

View file

@ -0,0 +1 @@
[[problema computazionale]] che cerca una qualsiasi [[soluzione]].

View file

@ -0,0 +1,3 @@
[[problema computazionale]] la cui [[notazione O-grande]] è superiore a [[polinomiale]].
> [[torre di Hanoi]]

View file

@ -0,0 +1,3 @@
[[problema]] per cui non esiste un [[algoritmo]] per risolverlo.
> [[halting problem]]

View file

@ -0,0 +1,6 @@
---
aliases:
- problema difficile
---
[[problema]] per cui non è ancora stato scoperto un algoritmo che lo rende [[problema trattabile|trattabile]], ma nemmeno è ancora stato dimostrato che è [[problema intrattabile|intrattabile]].

View file

@ -0,0 +1 @@
[[problema computazionale]] la cui [[notazione O-grande]] è [[polinomiale]] o inferiore.

View file

@ -0,0 +1,9 @@
[[problema decisionale]] appartenente alla [[classe di problemi NP]].
## Enunciato
Dato un [[grafo]], esiste un [[circuito di un grafo|circuito]] che passa attraverso tutti i [[nodo di un grafo|nodi]]?
### Verifica
Dato un [[circuito di un grafo]], esso passa attraverso tutti i [[nodo di un grafo|nodi]]?

View file

@ -0,0 +1,77 @@
Un [[problema decisionale]] $A$ può essere trasformato in un altro [[problema decisionale]] $B$ attraverso una *riduzione di Karp* se:
- la trasformazione è un'operazione in tempo [[polinomiale]]
- ogni [[istanza positiva]] del primo problema rimane un'[[istanza positiva]] dopo essere stata trasformata
- ogni [[istanza negativa]] del primo problema rimane un'[[istanza negativa]] dopo essere stata trasformata
$$
\def \varProblemA {{\color{DarkOrchid} Problem_{A}}}
\def \varProblemB {{\color{SlateBlue} Problem_{B}}}
\def \varProblemC {{\color{DarkOliveGreen} Problem_{C}}}
\def \karp {\leq_p}
\Huge
\varProblemA \karp \varProblemB
$$
## Corollari
Se un problema è [[polinomiale]], e un altro può essere ridotto ad esso, anche l'altro è [[polinomiale]]:
$$
\large
\begin{cases}
\varProblemA \karp \varProblemB
\\\\
\varProblemB \in P
\end{cases}
\implies
\begin{cases}
\\
\varProblemA \in P
\\\quad
\end{cases}
$$
Se un problema non è [[polinomiale]], e può essere ridotto ad un altro, anche l'altro non è [[polinomiale]]:
$$
\large
\begin{cases}
\varProblemA \karp \varProblemB
\\\\
\varProblemA \not\in P
\end{cases}
\implies
\begin{cases}
\\
\varProblemB \not\in P
\\\quad
\end{cases}
$$
Infine, se due problemi possono ridursi a vicenda uno all'altro, essi sono [[problemi equivalenti|equivalenti]]:
$$
\large
\begin{cases}
\varProblemA \karp \varProblemB
\\\\
\varProblemB \karp \varProblemA
\end{cases}
\implies
\begin{cases}
\\
\varProblemA \equiv_P \varProblemB
\\\quad
\end{cases}
$$
## Proprietà
La [[riduzione di Karp]] è [[transitività|transitiva]]:
$$
\large
\begin{cases}
\varProblemA \karp \varProblemB
\\\\
\varProblemB \karp \varProblemC
\end{cases}
\implies
\varProblemA \karp \varProblemC
$$

View file

@ -0,0 +1,5 @@
---
aliases:
- SAT
---
[[problema]] particolare, dimostrato direttamente essere [[classe di problemi NP-completi|NP-complete]] con i teoremi [[teorema di Cook|di Cook]] e [[teorema di Levin|di Levin]].

View file

@ -0,0 +1 @@
[[soluzione]] ad un [[problema di ottimizzazione]] in cui si cerca di trovare massimi e minimi di una [[funzione obiettivo]].

Some files were not shown because too many files have changed in this diff Show more