From ae9c794a52b121e7856dfd90e101aa135c28d283 Mon Sep 17 00:00:00 2001 From: Darakuu Date: Sat, 20 Jan 2024 22:41:40 +0100 Subject: [PATCH] Preliminary work before starting --- content/Algoritmo di Kruskal.md | 7 +++ content/Esami/Schema Esercizi Prima Parte.md | 62 ++++++++++++++++++++ content/Metodo dell'Aggregazione.md | 1 + content/Schema Esercizi Seconda Parte.md | 5 ++ content/index.md | 31 ++++++---- 5 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 content/Algoritmo di Kruskal.md create mode 100644 content/Esami/Schema Esercizi Prima Parte.md create mode 100644 content/Schema Esercizi Seconda Parte.md diff --git a/content/Algoritmo di Kruskal.md b/content/Algoritmo di Kruskal.md new file mode 100644 index 0000000..6c347a4 --- /dev/null +++ b/content/Algoritmo di Kruskal.md @@ -0,0 +1,7 @@ +--- +tags: + - Algoritmi/SecondaProva + - Algoritmi + - Algoritmi/Grafo +draft: true +--- diff --git a/content/Esami/Schema Esercizi Prima Parte.md b/content/Esami/Schema Esercizi Prima Parte.md new file mode 100644 index 0000000..03f08b9 --- /dev/null +++ b/content/Esami/Schema Esercizi Prima Parte.md @@ -0,0 +1,62 @@ +--- +tags: + - Algoritmi/PrimaProva +--- +# Analisi Ammortizzata + +sempre quello mbare + +# Splay Tree + +- Descrivere le operazioni bottom-up, e top-down +- Fai operazioni + +# B-Tree + +- Si definisca la struttura dati BTree +- (Completo) Si definisca in maniera precisa la struttura dati B-tree e se ne illustri sinteticamente un’applicazione. +- Si determini il numero massimo e minimo di nodi che può essere contenuto in un B-Tree di altezza h e grado minimo $t=2$ + - $\log_{2t}\dfrac{n+1}{2t}\leq h\leq \log_{t}\dfrac{n+1}{2}$ + - numero minimo nodi: $\#NodiMin=1+2\displaystyle\sum^{h-1}_{i=0}t^i$ + - numero Massimo nodi: $\#NodiMax=\displaystyle\sum^h_{i=0}(2t)^i$ + + - numero minimo chiavi con grado minimo t: $n_{t,h}=2t^h-1$ + - numero Massimo chiavi con grado minimo: $N_{h} = (2t)^{h+1}-1$ +- Fornire CON DIMOSTRAZIONE il limite superiore per l'altezza $h$ di un B-Tree di grado minimo $t$ con $n$ chiavi +- Sia $T'$ un B-tree con $6000$ chiavi, il cui grado minimo è il medesimo di quello in figura. Qual è la massima altezza possibile per $T'$? +- Si determinino una minorazione e una maggiorazione del numero di nodi a profondità $i=0,1,\dots,h$ in un B-Tree di grado minimo $t$ e altezza $h$ (fai tabella) +- Si effettui l’inserimento delle chiavi $D, G, R, F, M, H, P, Q, I, L, A, B, C$ (nell’ordine dato) in un B-tree di grado minimo 2, inizialmente vuoto, e quindi si cancellino le chiavi $F, L, D$. + + + +# Alberi Binomiali + +- Definire, enunciare e dimostrare proprietà [[Alberi Binomiali]] +- Definire, enunciare e dimostrare proprietà [[Alberi Binomiali Non Ordinati]] + +# Heap Binomiali + +- Definire e fornire una maggiorazione al grado massimo di un nodo in uno heap binomiale contenente $n$ nodi [[Heap Binomiali]] +- Fornire un esempio di Heap Binomiale che contiene 8 chiavi e effettuare l'operazione di Extract-Min +- e descrivi DecreaseKey, ExtractMin, Delete, e Insert (Ed esegui esercizio) +- Determinare un limite superiore e un limite inferiore per il numero di alberi binomiali in un heap binomiale con $n$ chiavi. +- Nel caso degli heap binomiali, è richiesto che gli alberi binomiali nella lista delle radici siano ordinati per grado. Perché? + +# Heap di Fibonacci + +- Indicare operazioni supportate, e la loro complessità. +- Sia $x$ un nodo di grado $k$ in un heap di Fibonacci e siano $y_{1},\dots,y_{k}$ i figli di $x$ nell'ordine in cui sono stati innestati in $x$. Quale limitazione inferiore è possibile dare per il grado degree$(y_{i})$. Perché? [[Heap di Fibonacci#Lemma 3|Lemma 3]] +- Fornire (e dimostrare) una minorazione dei gradi dei figli di ciascun nodo (**LEMMA**) +- Stabilire se esistono heap di Fibonacci dati nel compito + + +## Esercizio 4 (super schematizzabile): +- Si definiscano gli alberi binomiali e si enuncino le loro principali proprietà, dimostrandole; +- Si definiscano gli heap binomiale e si fornisca una maggiorazione al grado max di un nodo in un heap binomiale contenente n nodi + +# Union-Find + +- Si descriva la struttura dati union-find nella sua versione più efficiente, presentando le due euristiche su cui si basa e illustrando mediante pseudo-codice le operazioni supportate.   + +- Qual è la complessità di una sequenza di $m$ operazioni di cui $n$ sono Make Set? + diff --git a/content/Metodo dell'Aggregazione.md b/content/Metodo dell'Aggregazione.md index 89ed6c8..722d106 100644 --- a/content/Metodo dell'Aggregazione.md +++ b/content/Metodo dell'Aggregazione.md @@ -2,6 +2,7 @@ tags: - Algoritmi/PrimaProva - Algoritmi/AnalisiAmmortizzata + - complete draft: false --- Consiste nello stimare il costo $\mathbf{T}(n)$ di $n$ operazioni e di equidistribuire tale costo tra le $n$ operazioni $\left( \dfrac{\mathbf{T}(n)}{n} \right)$ diff --git a/content/Schema Esercizi Seconda Parte.md b/content/Schema Esercizi Seconda Parte.md new file mode 100644 index 0000000..26fa7e1 --- /dev/null +++ b/content/Schema Esercizi Seconda Parte.md @@ -0,0 +1,5 @@ +--- +tags: + - Algoritmi/SecondaProva +draft: true +--- diff --git a/content/index.md b/content/index.md index 1f5dd60..7f00c29 100644 --- a/content/index.md +++ b/content/index.md @@ -8,20 +8,14 @@ Appunti di Algoritmi e Complessità 2023/2024 del corso di laurea magistrale LM- Non intendono e non vogliono sostituire libri, slide ufficiali e quant'altro.  - Questa pagina funge da indice. -_(esiste solo perché quartz🪴 lo richiede)_ - -Currently working on: [[Prima Itinere]]. Al momento c'è il minimo necessario per passare l'esame.   -  -Nel caso in cui steste vedendo questo sito ora (19/12/2023->onwards), molte cose sono fatte di fretta perché ci sono le prove in itinere.  - Idealmente, vorrei: - Fare io tutti gli esempi e i grafici/immagini; - Sistemare alcune dimostrazioni o parti lacunose; - Aggiungere risoluzioni di esercizi scritte bene bene in Latex. - Infine (ma questo è utopico), aggiungere con citazioni stralci dal Cormen. + ## Prima Parte - [[Analisi Ammortizzata]]: @@ -34,10 +28,25 @@ Idealmente, vorrei: - [[Alberi Binomiali]] - [[Mergeable Heaps]] - [[Union-Find]] -- [[Notazione di Knuth]] -- Non implementata causa tempo -- [[Funzione di Ackermann]] -- Non implementata causa tempo +- [[Notazione di Knuth]] +- [[Funzione di Ackermann]] -- [[Schema Esercizi Prima Prova]] +- [[Schema Esercizi Prima Parte]] ## Seconda Parte -- TBD \ No newline at end of file + +- [[Euristica Move To Front|Move To Front]] +- [[Minimum Spanning Tree]] +- [[Cammini Minimi]] +- [[Reti di Flusso]] + +- [[Schema Esercizi Seconda Parte]] + + +Changelog: + +| Data | Changes | +| ---- | ---- | +| - | - | +| 2024-01-20 | Aggiunto changelog e indice seconda parte | +| 2023-12-19 | Ultimo commit per prima prova | \ No newline at end of file