Consenso distribuito

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Consenso distribuito"

Transcript

1 Consenso distribuito Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni

2 Il problema del consenso Un gruppo di processi devono mettersi d accordo su un valore (es. commit/abort di una transazione). E l astrazione di una classe di problemi in cui i processi partono con le loro opinioni (forse divergenti) e devono accordarsi su un opinione comune. È un problema fondamentale. Siamo interessati a studiare algoritmi e modelli minimali per risolvere questo problema in presenza di guasti. 2

3 Il problema del consenso Fisher, Lynch e Patterson hanno provato nel 1985 che è impossibile risolvere il problema del Consenso in modo deterministico in sistemi asincroni in cui anche un solo processo può guastarsi per crash Michael J Fischer, Nancy A. Lynch and Michael S. Paterson, Impossibility of distributed consensus with one faulty process. Journal of the ACM, Vol. 32, No. 2, April

4 Il problema del consenso Definizione del problema: Insieme di processi distribuiti con valori iniziali {0,1}. Ogni processo propone un valore. Tutti devono decidere lo stesso valore {0,1}. Il valore deciso deve essere tra quelli proposti. P1 P2 P3 P4 P5 P6 P7 Valori iniziali Consenso P1 P2 P3 P4 P5 P6 P7 Valori iniziali

5 Il problema del consenso Specifica del Consenso: <c, Propose v> utilizzabile per proporre il valore v <c, Decide v> notifica il processo che è stato deciso il valore v Il consenso gode delle seguenti proprietà: Termination: ogni processo corretto prima o poi decide un valore. Validity: se un processo decide v, allora v è stato proposto da qualche processo. Integrity: nessun processo decide due volte. Agreement: due processi corretti non decidono mai due valori diversi. 5

6 Flooding-based consensus Il primo algoritmo risolve il problema del consenso usando una semplice strategia: ogni processo propone un valore ogni processo raccoglie i valori ricevuti dagli altri e inoltra questo insieme a tutti ad ogni round i processi attendono di aver visto le proposte di tutti prima di decidere la decisione viene presa applicando una funzione deterministica sull insieme dei valori proposti ogni processo che decide avverte tutti gli altri 6

7 Flooding-based consensus Il problema più complesso è far si che tutti i processi concordino sull insieme dei valori proposti. Utilizza: Best Effort Broadcast Perfect Failure Detector 7

8 Flooding-based consensus upon event <c, Init> do for i=1 to N do receivedfrom[i] = ; proposals[i] = ; receivedfrom[0] = ; round = 1; decision = ; correct = ; upon event <P, Crash Pj> do correct = correct \ {Pj}; upon event <c, Propose v> do proposals[1] = proposals[1] {v}; trigger <beb, Broadcast [PROPOSAL, 1, proposals]>; upon event <beb, Deliver Pj, [PROPOSAL, r, ps]> do receivedfrom[r] = receivedfrom[r] {Pj}; proposals[r] = proposals[r] ps; 8

9 Flooding-based consensus upon event correct receivedfrom[round] decision = do if receivedfrom[round] = receivedfrom[round - 1] then decision = min(proposals[round]); trigger <beb, Broadcast [DECIDED, decision]>; trigger <c, Decide decision>; else round = round + 1; trigger <beb, Broadcast [PROPOSAL, round, proposals[round- 1]]>; upon event <beb, Deliver Pj, [DECIDED, v] > do if Pj correct decision = then decision = v; trigger <beb, Broadcast [DECIDED, decision]>; trigger <c, Decide decision>; 9

10 Flooding-based consensus Esempio: P 1 P 2 P 3 P 4 <c,%propose% %x> <c,%propose% %y> <c,%propose% %y> <c,%propose% %z> <beb,%deliver% %P1,%[Proposal,%{x}]> <beb,%deliver% %P2,%[Proposal,%{y}]> <beb,%deliver% %P3,%[Proposal,%{y}]> <beb,%deliver% %P4,%[Proposal,%{z}]> <c,%decide% %x> <beb,%deliver% %P2,%[Proposal,%{y}]> <beb,%deliver% %P3,%[Proposal,%{y}]> <beb,%deliver% %P4,%[Proposal,%{z}]> <beb,%deliver% %P2,%[Proposal,%{y}]> <beb,%deliver% %P3,%[Proposal,%{y}]> <beb,%deliver% %P4,%[Proposal,%{z}]> <beb,%deliver% %P2,%[Decided,%x]> <c,%decide% %x> <beb,%deliver% %P2,%[Decided,%x]> <c,%decide% %x> ROUND%1 ROUND%2 10

11 Flooding-based consensus Correttezza: Validity e integrity: conseguenza delle proprietà dei canali di comunicazione sottostanti (pl). Termination: ogni processo decide in al più N round (caso in cui N-1 processi si guastano). Agreement: i processi decidono su un insieme di proposte utilizzando una funzione deterministica. L agreement può essere provato ragionando su: il caso in cui un processo vede per due round lo stesso set di processi e decide; il caso in cui un processo decide perché vede la decisione di un processo che si guasta. 11

12 Hierarchical consensus L algoritmo visto usa un enorme numero di messaggi per raggiungere il consenso. Sfruttando un ordinamento precostituito tra i processi è possibile migliorare le prestazioni in alcuni casi comuni Utilizza: Best Effort Broadcast Perfect Failure Detector 12

13 Hierarchical consensus upon event <c, Init> do detectedranks = ; proposal = ; proposer = 0; round = 1; delivered = false N ; broadcast = false; upon event <P, Crash Pj> do detectedranks = detectedranks {rank(pj)}; upon event <c, Propose v> do if proposal = then proposal = v; 13

14 Hierarchical consensus upon event round = rank(self) proposal broadcast = false do broadcast = true; trigger <beb, Broadcast [DECIDED, proposal]>; trigger <c, Decide proposal>; upon event round detectedranks delivered[round] = true do round = round + 1; upon event <beb, Deliver Pj, [DECIDED, v]> do r = rank(pj); if r < rank(self) r > proposer then proposal = v; proposer = r; delivered[r] = true; 14

15 Hierarchical consensus Esempio: P 1 P 2 P 3 P 4 <c,$propose$ $x> <c,$decide$ $x> <c,$propose$ $y> <c,$propose$ $y> <c,$propose$ $z> <beb,$deliver$ $P1,$[Decided,$x]> <c,$decide$ $x> <beb,$deliver$ $P2,$[Decided,$x]> <beb,$deliver$ $P1,$[Decided,$x]> <beb,$deliver$ $P1,$[Decided,$x]> <c,$decide$ $x> <beb,$deliver$ $P2,$[Decided,$x]> <beb,$deliver$ $P3,$[Decided,$x]> <c,$decide$ $x> ROUND$1 ROUND$2 ROUND$3 ROUND$4 15

16 Hierarchical consensus Correttezza: Validity e integrity: conseguenza delle proprietà dei canali di comunicazione sottostanti (pl). Termination: segue dalla proprietà di strong completeness del FD P. Agreement: supponiamo p e q due processi corretti che decidono valori diversi. Supponiamo rank(p)=i < j=rank(q). q può decidere solo al round j>i ma per arrivarci deve essere vera una delle due: p si è guastato (impossibile perché corretto) q ha ricevuto DELIVERED da p In quest ultimo caso q non può decidere un valore diverso da p 16

17 Consenso uniforme Specifica del Consenso: Termination: ogni processo corretto prima o poi decide un valore. (come regolare) Validity: se un processo decide v, allora v è stato proposto da qualche processo. (come regolare) Integrity: nessun processo decide due volte. (come regolare) Uniform Agreement: due processi non decidono mai due valori diversi. 17

18 Flooding-based uniform consensus Nell algoritmo originale un processo decideva dopo aver osservato gli stessi set di proposte per due round successivi. Questo processo potrebbe decidere e guastarsi immediatamente, violando l uniformità. In questa variante ogni processo semplicemente aspetta il round N prima di decidere. 18

19 Flooding-based uniform consensus upon event <uc, Init> do receivedfrom = ; proposals = ; round = 1; decision = ; correct = ; upon event <P, Crash Pj> do correct = correct \ {Pj}; upon event <uc, Propose v> do proposals = proposals {v}; trigger <beb, Broadcast [PROPOSAL, 1, proposals]>; upon event <beb, Deliver Pj, [PROPOSAL, r, ps]> do if r==round then receivedfrom = receivedfrom {Pj}; proposals = proposals ps; 19

20 Flooding-based uniform consensus upon event correct receivedfrom decision = do if round == N then decision = min(proposals[round]); trigger <uc, Decide decision>; else round = round + 1; receivedfrom = ; trigger <beb, Broadcast [PROPOSAL, round, proposals]>; 20

21 Flooding-based uniform consensus Correttezza: Validity e integrity: conseguenza delle proprietà dei canali di comunicazione sottostanti (pl). Termination: tutti i processi corretti terminano l esecuzione decidendo al round N. Agreement: i processi che raggiungono il round N hanno lo stesso set proposals, e quindi decidono lo stesso valore. 21

22 Hierarchical uniform consensus In questo caso l algoritmo mantiene la stessa struttura. Ad ogni round abbiamo due passi: prima il leader propone il proprio valore a tutti quindi attende che tutti gli confermino la ricezione del suo valore Utilizza: Best Effort Broadcast Reliable Broadcast Perfect Link Perfect Failure Detector 22

23 Hierarchical uniform consensus upon event <uc, Init> do detectedranks = ; ackranks = ; proposal = ; decision = ; round = 1; proposed = N ; upon event <P, Crash Pj> do detectedranks = detectedranks {rank(pj)}; upon event <uc, Propose v> do if proposal = then proposal = v; upon event round = rank(self) proposal decision = do trigger <beb, Broadcast [PROPOSAL, proposal]>; 23

24 Hierarchical uniform consensus upon event <beb, Deliver Pj, [PROPOSAL, v]> do proposed[rank(pj)] = v; if rank(pj) round then trigger <pl, Send Pj, [ACK]>; upon event round detectedranks do if proposed[round] then proposal = proposed[round]; round = round + 1; upon event <pl, Deliver Pj, [ACK]> do ackranks = ackranks {rank(pj)}; upon event detectedranks ackranks = do trigger <rb, Broadcast [DECIDED, proposal]>; upon event <rb, Deliver Pj, [DECIDED, v]> do if proposal = then decision = v; trigger <uc, Decide decision>; 24

25 Hierarchical uniform consensus Correttezza: Validity e integrity: conseguenza delle proprietà dei canali di comunicazione sottostanti (pl). Termination: se un processo corretto decide lo fa dopo aver eseguito <rb, Deliver>, quindi, per la proprietà di agreement di rb, tutti i processi corretti prima o poi decidono. supponiamo p il processo corretto con rank più piccolo tutti i processi corretti segnalano il guasto di qualsiasi processo i con rank(i)<rank(p) Prima o poi tutti raggiungono il round rank(p) e non procedono a round successivi Questo round termina correttamente con la decisione di p. 25

26 Hierarchical uniform consensus Correttezza: Agreement: Assumiamo che esistano due processi che decidono valori differenti. Questo può accadere solo se due processi mandano in rbbroadcast due valori differenti. Supponiamo questi siano p e q, con rank(q)>rank(p), che eseguono rb-broadcast di due valori v e v Causa strong accuracy del FD, q deve aver adottato il valore v prima di raggiungere il round rank(q) Se questo non fosse avvenuto p non avrebbe potuto inviare v con rbbroadcast. Quindi deve essere necessariamente v=v 26

27 Rotating coordinator consensus Vediamo ora un algoritmo che realizza consenso uniforma in un sistema parzialmente sincrono; L algoritmo procede per round e ad ogni round esiste un singolo leader Pi è il leader nei round i, i+n, i+2n,... Utilizza: Eventually Perfect FD Best effort broadcast Reliable broadcast 27

28 Rotating coordinator consensus Ad ogni round: ogni processo non leader (witness) propone al leader un valore con il proprio timestamp (round) il leader raccoglie le proposte e sceglie la proposta con timestamp più alto il leader propone a tutti i witness il valore scelto quando un processo witness riceve la proposta del leader la accetta rispondendo con un ACK se sospetta il leader di guasto la rifiuta rispondendo con un NACK e passa al round successivo se il leader riceve una maggioranza di ACK decide il valore che aveva proposto se il leader riceve anche un solo NACK passa al round successivo 28

29 Rotating coordinator consensus upon event <uc, Init> do round = 1; estimate[]=ack[]=false; proposed[]= proposal = decided = ; suspected=estimate- set[]=ack- set[]=nack- set[]= ; upon event <uc, Propose v> do proposal = (v,0); upon event proposal estimate[round]=false do estimate[round] = true; trigger <pl, Send leader(round), [ESTIMATE, round, proposal]>; upon event <pl, Deliver Pj, [ESTIMATE, r, e]> do estimate- set[r] = estimate- set[r] {e}; upon event leader(round)=self estimate- set[round] >N/2 do proposal = highest(estimate- set[round]); trigger <beb, Broadcast [PROPOSE, round, proposal]>; 29

30 Rotating coordinator consensus upon event <beb, Deliver Pj, [PROPOSE, r, v]> do proposed[r] = v; upon event proposed[round] ack[round]=false do proposal = (proposed[round], round); ack[round] = true; trigger <pl, Send leader(round), [ACK, round]>; round := round + 1; upon event <pl, Deliver Pj, [ACK, r]> do ack- set[r] = ack- set[r] {Pj}; upon event leader(round) suspected ack[round]=false do ack[round] = true; trigger <pl, Send leader(round), [NACK, round]>; round = round + 1; upon event <pl, Deliver Pj, [NACK, r]> do nack- set[r] = nack- set[r] {Pj}; 30

31 Rotating coordinator consensus upon event leader(round)=self nack- set[round] do round := round + 1; upon event leader(round)=self ack- set[round] >N/2 do trigger <rb, Broadcast [DECIDE, proposal]>; upon event <rb, Deliver Pj, [DECIDED, v]> decided= do decided = v; trigger <uc, Decide v>; upon event < P, suspect Pj> do suspected = suspected {Pj}; upon event < P, restore Pj> do suspected = suspected \ {Pj}; 31

Broadcast. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. domenica 1 aprile 12

Broadcast. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. domenica 1 aprile 12 Broadcast Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Best effort broadcast Interfaccia: ; ; Proprietà: Best

Dettagli

sistemi distribuiti soggetti a guasti - consenso

sistemi distribuiti soggetti a guasti - consenso sistemi distribuiti soggetti a guasti - consenso Problema del Consenso Il gruppo di processi devono mettersi d accordo su un valore (es. commit/abort di una transazione). E l astrazione di una classe di

Dettagli

Soluzione: (basata su round sincroni) Soluzione: (basata su processo leader) upon event <tob, Init> do tosend = ; todeliver = ; starttimer(δ + ε);

Soluzione: (basata su round sincroni) Soluzione: (basata su processo leader) upon event <tob, Init> do tosend = ; todeliver = ; starttimer(δ + ε); Esercizio 1 Si consideri un sistema distribuito composto da N processi ciascuno dei quali è identificato attraverso un intero univoco. Supponendo che il sistema sia sincrono, che i processi non si guastino

Dettagli

Comunicazioni ordinate

Comunicazioni ordinate Comunicazioni ordinate Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 211-212 Leonardo Querzoni Comunicazioni ordinate Abbiamo già visto come sia possibile costruire sopra ad un perfect

Dettagli

Problemi e Algoritmi distribuiti

Problemi e Algoritmi distribuiti Problemi e Algoritmi distribuiti Problemi nei sistemi distribuiti Problemi di coordinamento: Mutua esclusione Leader Election Consenso Problemi di comunicazione ordinata: Comunicazione FIFO Comunicazione

Dettagli

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica.

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica. Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Problemidiconsenso neisistemidistribuiti

Dettagli

Sistemi Distribuiti soggetti a Guasti

Sistemi Distribuiti soggetti a Guasti Sistemi Distribuiti soggetti a Guasti Overview i guasti... Fino ad ora abbiamo assunto un modello di sistema senza guasti, abbiamo analizzato l effetto della concorrenza sugli algoritmi distribuiti (mutua

Dettagli

Modelli di sistemi distribuiti

Modelli di sistemi distribuiti Modelli di sistemi distribuiti Sistema distribuito sincrono Un sistema distribuito viene detto sincrono quando è possibile stabilire sia un limite inferiore sia un limite superiore a il tempo di esecuzione

Dettagli

Principi di progettazione di sistemi distribuiti

Principi di progettazione di sistemi distribuiti Principi di progettazione di sistemi distribuiti i modelli sincrono ed asincrono il problema dell agreement i guasti e loro rilevazione Sistema distribuito sincrono Un sistema distribuito viene detto sincrono

Dettagli

Le comunicazioni ordinate

Le comunicazioni ordinate Le comunicazioni ordinate Comunicazioni Ordinate E importante (e utile definire delle primitive di comunicazione che diano qualche garanzia sull ordine di consegna dei messaggi inviati all interno di un

Dettagli

Elezione di un leader in una rete ad anello

Elezione di un leader in una rete ad anello Elezione di un leader in una rete ad anello Corso di Algoritmi Distribuiti Prof. Roberto De Prisco Lezione n a cura di Rosanna Cassino e Sergio Di Martino Introduzione In questa lezione viene presentato

Dettagli

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica.

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica. Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Comunicazioni di gruppo Sommario

Dettagli

Comunicazioni di gruppo

Comunicazioni di gruppo Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Comunicazioni di gruppo Sommario

Dettagli

Sistemi distribuiti su larga scala

Sistemi distribuiti su larga scala Sistemi distribuiti su larga scala Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Dove siamo arrivati Replicazione Attiva Replicazione Primary/Backup Atomic

Dettagli

Mutua esclusione. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. mercoledì 29 febbraio 12

Mutua esclusione. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. mercoledì 29 febbraio 12 Mutua esclusione Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Accesso concorrente alle risorse Consideriamo un sistema in cui N processi vogliono accedere

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi sul Text Processing

Dati e Algoritmi I (Pietracaprina) Esercizi sul Text Processing Dati e Algoritmi I (Pietracaprina) Esercizi sul Text Processing Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T un testo di n caratteri e P un pattern di m n caratteri e si supponga che

Dettagli

Approfondimento di Sistemi Distribuiti. Autore: Lionello Marco matricola:

Approfondimento di Sistemi Distribuiti. Autore: Lionello Marco matricola: Approfondimento di Sistemi Distribuiti Autore: Lionello Marco matricola: 810079 15 Maggio 2006 ii Indice 1 Introduzione 1 2 Modelli di sistema e definizione del problema 3 2.1 Definizione del problema

Dettagli

Nome Cognome N. di matricola (10 cifre) Riga Col

Nome Cognome N. di matricola (10 cifre) Riga Col Nome Cognome N. di matricola (10 cifre) Riga Col UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2006/2007 CONCORRENZA - 15 Giugno 2007

Dettagli

Architetture data-flow

Architetture data-flow Architetture data-flow Le architetture che abbiamo visto finora sono dette architetture control flow. Ciò sta ad indicare che il flusso dell elaborazione è dettato dall ordine con cui le varie istruzioni

Dettagli

Sistemi Distribuiti Il Modello della Computazione Distribuita

Sistemi Distribuiti Il Modello della Computazione Distribuita Sistemi Distribuiti Il Modello della Computazione Distribuita Autori: Cecchini Gabriele De Sanctis Adriano Mastrogiuseppe Simoni Paolo Sperduti Daniele Sistemi Distribuiti Il Modello della Computazione

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

SCD. Sincronizzazione in distribuito. Sistemi distribuiti: sincronizzazione. Stato del sistema 2. Stato del sistema 3. Stato del sistema 1

SCD. Sincronizzazione in distribuito. Sistemi distribuiti: sincronizzazione. Stato del sistema 2. Stato del sistema 3. Stato del sistema 1 Stato del sistema 2 Sincronizzazione in distribuito Anno accademico 2017/18 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Distributed snapshot Riflette uno stato

Dettagli

Teoria della Replicazione

Teoria della Replicazione Teoria della Replicazione Sistemi Distribuiti a.a. 2003/2004 Prof. Roberto Baldoni, Ing.. Alessia Milani milani@dis.uniroma1.it www.dis.uniroma1.it/~milani 1 Argomenti (1) Introduzione alla replicazione:

Dettagli

Algoritmi distribuiti su reti sincrone. Introduzione alle reti sincrone

Algoritmi distribuiti su reti sincrone. Introduzione alle reti sincrone Lucia Pallottino. Sistemi Robotici Distribuiti - Versione del 18 Aprile 2012 194 Algoritmi distribuiti su reti sincrone Per questo capitolo si può fare riferimento al libro Distributed Algorithms di Nancy

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente

Dettagli

Dati e Algoritmi 1: A. Pietracaprina. Text Processing

Dati e Algoritmi 1: A. Pietracaprina. Text Processing Dati e Algoritmi 1: A. Pietracaprina Text Processing 1 Campi Applicativi text editing web searching computational biology (e.g., DNA analysis) vision... 2 Definizioni Stringa P P P[0]P[1]... P[m 1] (lunghezza

Dettagli

Colloquio di informatica (5 crediti)

Colloquio di informatica (5 crediti) Università degli studi della Tuscia Dipartimento di Scienze Ecologiche e Biologiche Corso di laurea in Scienze Ambientali A.A. 2013-2014 - II semestre Colloquio di informatica (5 crediti) Prof. Pier Giorgio

Dettagli

Esercitazioni 13 e 14

Esercitazioni 13 e 14 Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazioni 13 e 14 Comunicazione tra processi (IPC) Meccanismo per la comunicazione

Dettagli

Esercitazione 10 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 10 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Esercitazione 10 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu May 10, 2016 Elementi fondamentali Un algoritmo non deterministico è un algoritmo che posto di fronte alla necessità di

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare

Dettagli

Il modello a scambio di messaggio

Il modello a scambio di messaggio Il modello a scambio di messaggio Ciascun processo evolve in un proprio ambiente che non può essere modificato direttamente da altri processi. Quindi non esiste memoria condivisa e le risorse sono tutte

Dettagli

SCD. Sincronizzazione. Sistemi distribuiti: sincronizzazione. Stato del sistema 2. Stato del sistema 3. Stato del sistema 1. Distributed snapshot

SCD. Sincronizzazione. Sistemi distribuiti: sincronizzazione. Stato del sistema 2. Stato del sistema 3. Stato del sistema 1. Distributed snapshot Stato del sistema 2 Sincronizzazione Anno accademico 2014/15 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Laurea Magistrale in Informatica, Università di Padova

Dettagli

Collezione di slides presentate al corso di ESD A. Fantechi

Collezione di slides presentate al corso di ESD A. Fantechi Collezione di slides presentate al corso di ESD A. Fantechi Programmazione difensiva Checkpointing in ambito distribuito Memoria stabile Two phase commit Paradosso dei generali bizantini Consenso Distribuito

Dettagli

Studio degli algoritmi

Studio degli algoritmi COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi

Dettagli

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,

Dettagli

Coordinamento e sincronizzazione

Coordinamento e sincronizzazione Coordinamento e sincronizzazione Tempo locale e globale Nei sistemi distribuiti non esiste un orologio fisico globale Algoritmi di sincronizzazione e di coordinamento Applicazioni: correttezza di sequenze

Dettagli

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella Capitolo 3 - parte 2 Corso Reti ed Applicazioni Mauro Campanella Principi di un trasferimento dati affidabile strato di trasporto strato di applicazione (a) Servizio fornito (b) la realizzazione del Servizio

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Università degli Studi di Brescia Elementi di Informatica e Programmazione Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica

Dettagli

Tolleranza ai Guasti nei Sistemi Distribuiti

Tolleranza ai Guasti nei Sistemi Distribuiti Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Tolleranza ai Guasti nei Sistemi Distribuiti Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2008/09 Dependability Per comprendere

Dettagli

Nozioni di base (II Parte)

Nozioni di base (II Parte) Nozioni di base (II Parte) 1 Ricorsione [GTG14, Par. 5.1-5.4 and 13.1] Algoritmo Ricorsivo: algoritmo che invoca se stesso (su istanze sempre più piccole) sfruttando la nozione di induzione. La soluzione

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11) Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori (a.a. 2010/11) Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: tecniche

Dettagli

Problemi decidibili, semidecidibili, indecidibili

Problemi decidibili, semidecidibili, indecidibili Problemi decidibili, semidecidibili, indecidibili (Paragrafo 3.5 delle dispense) Il problema di determinare se una formula A della logica proposizionale sia valida o no può essere risolto mediante un procedimento

Dettagli

Nota Preliminare. Generalità (1/2) Generalità (2/2) Leader election con CSP. La presente dispensa è una rivisitazione di

Nota Preliminare. Generalità (1/2) Generalità (2/2) Leader election con CSP. La presente dispensa è una rivisitazione di Leader election con CSP Nota Preliminare La presente dispensa è una rivisitazione di Yucheng Fang, Huibiao Zhu, Huiwen Wang, Modeling and Verifying Leader Election Algorithm in CSP, Proc. of the 30th Int.l

Dettagli

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa Lezioni precedenti: Descrizione del dominio: modello statico Descrizione del dominio: modello dinamico

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

Università di Bologna

Università di Bologna Università di Bologna Laurea Magistrale in Ingegneria Informatica Corso di Reti di Calcolatori M - A.A. 2009-10 Prof. Antonio Corradi Progetto RE.VE.N.GE. CORBA REliable and VErsatile News delivery support

Dettagli

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica.

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica. Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Algoritmi di mutua esclusione

Dettagli

Algoritmi di mutua esclusione nei sistemi distribuiti

Algoritmi di mutua esclusione nei sistemi distribuiti Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Algoritmi di mutua esclusione

Dettagli

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella Capitolo 3 - parte 2 Corso Reti ed Applicazioni Mauro Campanella Principi di un trasferimento dati affidabile strato di trasporto strato di applicazione (a) Servizio fornito (b) la realizzazione del Servizio

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2015/ Luglio 2016

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2015/ Luglio 2016 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2015/2016 4 Luglio 2016 Testo Il database del sistema di gestione delle tessere fedeltà di un supermercato

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive

Dettagli

RETI DI CALCOLATORI Home Work ritardi e livello applicativo

RETI DI CALCOLATORI Home Work ritardi e livello applicativo RETI DI CALCOLATORI Home Work ritardi e livello applicativo Prima parte Q1. Supponiamo che un router A trasmetta un pacchetto su un collegamento con un router B, che la frequenza di trasmissione del collegamento

Dettagli

Modellazione e verifica formale di algoritmi per la mutua esclusione in ambiente distribuito.

Modellazione e verifica formale di algoritmi per la mutua esclusione in ambiente distribuito. Copertina Modellazione e verifica formale di algoritmi per la mutua esclusione in ambiente distribuito. Corso: Metodi formali nell ingegneria del software Anno accademico 2006/2007 Docente: Tony Mancini

Dettagli

Global Virtual Time (GVT) e Approfondimenti sul Time Warp

Global Virtual Time (GVT) e Approfondimenti sul Time Warp Global Virtual Time (GVT) e Approfondimenti sul Time Warp Gabriele D Angelo gda@cs.unibo.it http://www.cs.unibo.it/~gdangelo Dipartimento di Scienze dell Informazione Università degli Studi di Bologna

Dettagli

Esercizi vari. Alberto Montresor. 19 Agosto, 2014

Esercizi vari. Alberto Montresor. 19 Agosto, 2014 Esercizi vari Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive soluzioni

Dettagli

Efficienza: esempi. Fondamenti di Informatica. Ferdinando Cicalese. Nella lezione precedente. Pseudocodice per descrivere algoritmi

Efficienza: esempi. Fondamenti di Informatica. Ferdinando Cicalese. Nella lezione precedente. Pseudocodice per descrivere algoritmi Efficienza: esempi Fondamenti di Informatica Ferdinando Cicalese Nella lezione precedente Qualche problema computazionale Trova min Selection sort Pseudocodice per descrivere algoritmi Variabili Assegnamento

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/ Febbraio 2017

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/ Febbraio 2017 Cognome Matricola Nome Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/2017 3 Febbraio 2017 Testo Il database del sistema di gestione delle tessere fedeltà di un

Dettagli

Tecniche di prova per induzione

Tecniche di prova per induzione Aniello Murano Tecniche di prova per induzione 3 Lezione n. Parole chiave: Induzione Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Riassunto delle lezioni precedenti

Dettagli

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale Università degli Studi di Brescia INFORMATICA Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica e Industriale DIPARTIMENTO

Dettagli

Un problema di programmazione dei lavori

Un problema di programmazione dei lavori Un problema di programmazione dei lavori Un lavoro unitario è un lavoro che richiede esattamente una unità di tempo per essere eseguito. Dato un insieme S di lavori unitari, una programmazione per S è

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;

Dettagli

SISTEMI DI ELABORAZIONE

SISTEMI DI ELABORAZIONE SISTEMI DI ELABORAZIONE CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA SPECIFICHE DI PROGETTO A.A. 2011/2012 Il progetto consiste nello sviluppo di un applicazione client/server. Client e server

Dettagli

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di

Dettagli

Il problema delle azioni

Il problema delle azioni Il problema delle azioni Per studiare l andamento del mercato azionario bisogna seguire i prezzi delle azioni in un lasso di tempo abbastanza lungo, diciamo n giorni. Se si dispone dei prezzi di un azione

Dettagli

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non

Dettagli

Modelli Architetturali. Astrazione del sistema - componenti e struttura - distribuzione delle funzionalità

Modelli Architetturali. Astrazione del sistema - componenti e struttura - distribuzione delle funzionalità Modelli di Sistemi Modelli concettuali di supporto allo studio dei sistemi distribuiti Modelli architetturali Descrizione ad alto livello della distribuzione delle funzionalità delle componenti e loro

Dettagli

Ordinamento causale e stati globali nei Sistemi Distribuiti. Moreno Marzolla

Ordinamento causale e stati globali nei Sistemi Distribuiti. Moreno Marzolla Ordinamento causale e stati globali nei Sistemi Distribuiti Moreno Marzolla E-mail: marzolla@dsi.unive.it Web: http://www.dsi.unive.it/~ marzolla Introduzione Supponiamo di avere una computazione distribuita

Dettagli

Il livello trasporto: tecniche di trasmissione affidabile dei dati

Il livello trasporto: tecniche di trasmissione affidabile dei dati Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: tecniche di trasmissione

Dettagli

Semantica Operazionale del linguaggio imperativo IMP

Semantica Operazionale del linguaggio imperativo IMP Aniello Murano Semantica Operazionale del linguaggio imperativo IMP 2 Lezione n. Parole chiave: Sem. Operazionale Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduzione

Dettagli

Ingegneria del Software 18. Realizzazione casi d uso. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 18. Realizzazione casi d uso. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 18. Realizzazione casi d uso Dipartimento di Informatica Università di Pisa A.A. 2014/15 diagrammi di interazione Descrizione dinamica, che elenca i messaggi scambiati tra istanze

Dettagli

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare una lista di nomi alfabeticamente, o un

Dettagli

Algoritmi generali per PLI

Algoritmi generali per PLI Programmazione Lineare Intera: II Algoritmo Cutting Planes Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev.. ottobre Algoritmi generali per PLI Metodi esatti tradizionali (anni 6 oggi):

Dettagli

Se due computer sono sulla stessa rete Sappiamo come possono fare per scambiarsi datagram Usano gli indirizzi fisici

Se due computer sono sulla stessa rete Sappiamo come possono fare per scambiarsi datagram Usano gli indirizzi fisici Prof. Roberto De Prisco TEORIA - Lezione 12 IP, instradamento dei datagram (Comer, Cap. 8) Università degli studi di Salerno Laurea e Diploma in Informatica Routing (instradamento) 2 Se due computer sono

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/ Giugno 2019

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/ Giugno 2019 Cognome Matricola Nome Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/2019 10 Giugno 2019 Testo Il database del sistema di gestione delle officine di una compagnia

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/ Luglio 2019

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/ Luglio 2019 Cognome Matricola Nome Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/2019 1 Luglio 2019 Testo Il database del sistema di gestione delle officine di una compagnia

Dettagli

Approfondimenti sul ciclo while

Approfondimenti sul ciclo while Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione In questa lezione... Mostriamo semplici esempi di uso dei cicli Ciascuno di

Dettagli

Basi di dati II Prova parziale 29 maggio 2014 Compito A Tempo a disposizione: un ora e trenta minuti.

Basi di dati II Prova parziale 29 maggio 2014 Compito A Tempo a disposizione: un ora e trenta minuti. Basi di dati II Prova parziale 29 maggio 2014 Compito A Tempo a disposizione: un ora e trenta minuti. Cognome Nome Matricola Domanda 1 (20%) Considerare un sistema distribuito su cui viene eseguita una

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 15 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale A. Corradini e F. Bonchi Dip.to Informatica Logica per la Programmazione

Dettagli

Implementazione e analisi di un protocollo per la replicazione attiva

Implementazione e analisi di un protocollo per la replicazione attiva Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Tesi di Laurea in Ingegneria Informatica Dicembre, 2002 Implementazione e analisi di un protocollo per la replicazione attiva Stefano Cimmino

Dettagli

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Università degli Studi di oma Tor Vergata Facoltà di Ingegneria La mutua esclusione nasce nei sistemi concorrenti N processi vogliono accedere ad una risorsa condivisa Ogni processo vuole acquisire la

Dettagli

Algoritmo di Dijkstra

Algoritmo di Dijkstra Reti di alcolatori I Prof. Roberto anonico ipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione orso di Laurea in Ingegneria delle Telecomunicazioni orso di Laurea in Ingegneria dell

Dettagli

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 1 Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 2 Rivediamo questo esempio di activity diagram Università

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Ottimizzazione dei Sistemi Complessi

Ottimizzazione dei Sistemi Complessi 1 Giovedì 2 Marzo 2017 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Pseudo-code del metodo Fermi-Metropolis Input: x 0, 0, min, maxit k 0, x x 0, 0 while k maxit and min do k k + 1, x x

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Strumenti di specifica di protocolli e algoritmi di rete 1 of 44 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione

Dettagli

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi?

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi? Sommario Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi? Decisione vs ricerca! Se disponiamo di un efficiente algoritmo per risolvere

Dettagli

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe Programmazione Matematica: VII La scomposizione di Dantzig Wolfe Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev..0 Maggio 2004 Scomposizione di problemi Accade spesso che un problema

Dettagli

Alberi ed Alberi Binari di Ricerca

Alberi ed Alberi Binari di Ricerca Alberi ed Alberi Binari di Ricerca Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell

Dettagli