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:53 (23 ore fa)] – Roberto Grossi | matematica:asd:asd_24:progetto_24 [16/06/2025 alle 22:14 (23 ore fa)] (versione attuale) – [Materiale utile] Roberto Grossi | ||
---|---|---|---|
Linea 8: | Linea 8: | ||
===== Obiettivi del progetto ===== | ===== Obiettivi del progetto ===== | ||
- | * // | + | * // |
- | * //Build//: Costruire il grafo aciclico orientato (DAG) associato alla rete. | + | * //Build//: Costruire il grafo aciclico orientato (DAG) associato alla rete, con i nodi annotati opportunamente per l' |
* // | * // | ||
| | ||
Linea 37: | Linea 37: | ||
</ | </ | ||
- | Le variabili sono booleane (`true`, `false`). Le tabelle CPT corrispondenti sono le seguenti (come descritto nel file zip di esempio : {{ : | + | Nella figura le variabili |
< | < | ||
Linea 71: | Linea 71: | ||
===== Calcolo della probabilità marginale ===== | ===== Calcolo della probabilità marginale ===== | ||
- | Per calcolare la probabilità marginale \( P(e = \text{true}) \), si può usare **enumerazione completa**. L'idea è quella di generare tutte le possibili configurazioni delle variabili da cui `e` dipende (direttamente o indirettamente), | + | Per calcolare la probabilità marginale \( P(e = \text{true}) \), si può usare **l'enumerazione completa**. L'idea è quella di generare tutte le possibili configurazioni delle variabili da cui `e` dipende (direttamente o indirettamente), |
< | < | ||
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.1750110792.txt.gz · Ultima modifica: 16/06/2025 alle 21:53 (23 ore fa) da Roberto Grossi