matematica:asd:asd_24:progetto_24
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| matematica:asd:asd_24:progetto_24 [16/06/2025 alle 21:56 (4 mesi fa)] – Roberto Grossi | matematica:asd:asd_24:progetto_24 [16/06/2025 alle 22:14 (4 mesi fa)] (versione attuale) – [Materiale utile] Roberto Grossi | ||
|---|---|---|---|
| Linea 80: | Linea 80: | ||
| Dove: | Dove: | ||
| * \( P(a) \) è la probabilità marginale di `a` (senza genitori) | * \( P(a) \) è la probabilità marginale di `a` (senza genitori) | ||
| - | * \( P(b | a) \), \( P(c | a) \), \( P(d | b,c) \), \( P(e | a,c,d) \) sono lette dalle CPT | + | * \( P(b | a) \), \( P(c | a) \), \( P(d | b,c) \), \( P(e | a,c,d) \) sono le probabilità condizionali |
| // | // | ||
| Linea 101: | Linea 101: | ||
| **Passaggi consigliati: | **Passaggi consigliati: | ||
| - | 1. Costruire una **funzione `joint_probability(assign)`** che calcola la probabilità congiunta di una configurazione. | ||
| - | 2. Usare **visita topologica** per ordinare le variabili e garantire che ogni `P(X | parents)` sia ben definita. | ||
| - | 3. Generare tutte le configurazioni delle variabili rilevanti per `e`. | ||
| - | 4. Sommare solo quelle in cui `e = true`. | ||
| - | Nota: Se la rete ha \( n \) variabili | + | - Costruire una funzione `joint_probability(assign)` che calcola la probabilità congiunta di una configurazione. |
| + | - Usare `visita topologica` per ordinare le variabili (a, c, b, d, e, nel nostro esempio) e garantire che ogni `P(X | evidenza | ||
| + | - Generare tutte le configurazioni delle variabili rilevanti per `e`. | ||
| + | - Sommare solo quelle in cui `e = true`. | ||
| - | ===== Requisiti tecnici ===== | + | Nota: Se la rete ha n variabili booleane, l’enumerazione completa ha complessità O(2^n). Per ridurre l’overhead computazionale, |
| - | * Il DAG della rete sarà rappresentato con `vector< | ||
| - | * Le tabelle di probabilità condizionate saranno lette dal file `.bif` e memorizzate in strutture C++ appropriate. | ||
| - | * È consigliato l'uso di una visita topologica per ordinare le variabili nella corretta sequenza causale, per evitare la ricorsione. | ||
| - | * Il codice dovrà essere leggibile e suddiviso in funzioni coerenti. | ||
| ===== Discussione ad alto livello sulla lettura del file .bif ===== | ===== Discussione ad alto livello sulla lettura del file .bif ===== | ||
| Linea 141: | Linea 136: | ||
| * Per ogni `probability`, | * Per ogni `probability`, | ||
| - la variabile target; | - la variabile target; | ||
| - | - i suoi genitori (se presenti); | + | - i suoi genitori (se presenti, costituiscono l' |
| - la tabella CPT, che associa a ogni combinazione dei genitori un vettore di probabilità. | - la tabella CPT, che associa a ogni combinazione dei genitori un vettore di probabilità. | ||
| Linea 182: | Linea 177: | ||
| ===== Materiale utile ===== | ===== Materiale utile ===== | ||
| - | * Specifiche formato BIF: [[https:// | + | * Specifiche formato BIF: https:// |
| * File zip di esempio : {{ : | * File zip di esempio : {{ : | ||
| * Repository di reti bayesiane in vari formati, incluso BIF: [[https:// | * Repository di reti bayesiane in vari formati, incluso BIF: [[https:// | ||
matematica/asd/asd_24/progetto_24.1750110990.txt.gz · Ultima modifica: 16/06/2025 alle 21:56 (4 mesi fa) da Roberto Grossi
