presentazione corso di formazione · etimologia della parola: algoritmo •la parola algoritmo ha...

74
Fondamenti dell’Informatica Prof.ssa E. Gentile Informatica e Comunicazione Digitale - sede di Taranto a.a. 2015-2016

Upload: ngotuyen

Post on 16-Feb-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell’Informatica

Prof.ssa E. Gentile Informatica e Comunicazione Digitale - sede di Taranto

a.a. 2015-2016

Page 2: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Etimologia della parola: Algoritmo

• La parola algoritmo ha origine nel Medio

Oriente. Proviene dall’ultima parte del

nome dello studioso persiano

Abu Jàfar Mohammed Ibn Musa Al-Knowarizmi

• Il suo testo di aritmetica (825 DC circa)

esercitò una grande influenza nei secoli

successivi

Fondamenti dell'Informatica 2

Page 3: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 3

Definizione di Algoritmo

• Def.: Per Algoritmo si intende un elenco

di istruzioni che specificano una serie di

operazioni con le quali è possibile

risolvere ogni problema di un dato tipo.

Page 4: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 4

Algoritmo Euclideo

• Dati due numeri positivi a e b, trovare il

loro massimo comune divisore.

• Il Massimo Comune Divisore di due (o

più) numeri è il numero naturale più

grande per il quale possono entrambi

essere divisi.

Page 5: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 5

Istruzioni

1. Considerare la coppia di numeri a, b.

2. Confrontare i due numeri considerati (determinare se il

primo è uguale, maggiore o minore del secondo).

3. Se i due numeri sono uguali, ognuno di essi fornisce il

risultato richiesto; il calcolo si arresta. Altrimenti

continua.

4. Se il primo numero è minore del secondo, scambiare i

due numeri.

5. Sottrarre il secondo numero dal primo e rimpiazzare i due

numeri considerati rispettivamente col sottraendo e con

la differenza. Ritornare alla istruzione 2.

Page 6: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 6

Algoritmo numerico

•Un algoritmo per risolvere un sistema di

equazioni lineari in due incognite:

222

111

cybxa

cybxa

Page 7: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 7

Soluzioni

1221

1221

baba

cacay

1221

1221

baba

bcbcx

Page 8: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 8

Soluzioni possibili

• Per qualsiasi scelta dei coefficienti:

• Ammesso che:

212121 ,,,,, ccbbaa

01221 baba

Page 9: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 9

Algoritmo come funzione

• Un algoritmo definisce implicitamente una funzione

dall’insieme dei dati di ingresso all’insieme dei dati di

uscita. Al tempo stesso indica un procedimento

effettivo che permette di determinare, per ogni

possibile configurazione in ingresso, i corrispondenti

valori in uscita.

• Def.: Dato un algoritmo A, indichiamo con la

funzione che associa ad ogni valore in ingresso il

corrispondente valore in uscita .

Af

xfA

Page 10: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 10

Problema Def.:

• Un Problema è una funzione

definita su un insieme di elementi

che chiamiamo istanze, ed a valori su un

insieme di soluzioni.

• Diciamo che un algoritmo A risolve un

problema P se , per ogni

istanza .

SI DDP :

ID

SD

xfxP A

x

Page 11: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 11

Programma

• «Un programma è l’esposizione di un algoritmo in un

linguaggio accuratamente definito. Quindi, il

programma di un calcolatore rappresenta un

algoritmo, per quanto l’algoritmo stesso sia un

costrutto intelligente che esiste indipendentemente

da qualsiasi rappresentazione. Allo stesso modo, il

concetto di “numero 2” esiste nella nostra mente

anche quando non sia espresso graficamente.»

(D.E. Knuth – Fundamental Algorithms vol I,

The Art of Computer Programming, 1968)

Page 12: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 12

Costo di calcolo

• Def.: Il costo relativo all’esecuzione di

un programma viene definito come la

quantità di risorse di calcolo che il

programma utilizza durante

l’esecuzione.

Page 13: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 13

Risorse di calcolo

• Le risorse di calcolo a disposizione del

programma sono:

1. Il Tempo utilizzato per eseguire l’algoritmo;

2. Lo Spazio di lavoro utilizzato per memorizzare i risultati intermedi; (memoria)

3. Il Numero degli esecutori, se più esecutori collaborano per risolvere lo stesso problema (processori).

Page 14: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 14

Efficienza dell’algoritmo

• Def.: Un algoritmo è efficiente se fa un

uso contenuto delle risorse di calcolo a

sua disposizione.

Page 15: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 15

Modelli di calcolo

• Def.: Un modello di calcolo è

semplicemente una astrazione di un

esecutore reale, in cui si omettono

dettagli irrilevanti allo studio di un

algoritmo per risolvere un problema.

Page 16: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 16

Scelta del modello di calcolo

1. Capacità espressiva del modello in

relazione al problema assegnato;

2. Livello di astrazione;

3. Generalità.

Page 17: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 17

Irrisolubilità

• Def.: Un problema è non risolubile

algoritmicamente se nessun

procedimento di calcolo è in grado di

fornire la soluzione in tempo finito.

Page 18: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 18

Problemi risolubili

• Si considera “risolti” una classe di

problemi quando si è trovato un

algoritmo per risolverli.

• In alcuni casi se non è possibile risolvere

problemi di un dato tipo è possibile

individuare dei casi particolari nei quali

ciò invece è possibile.

Page 19: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 19

Intrattabilità

• Def.: Un problema è intrattabile se

qualunque algoritmo che lo risolva

richieda una quantità molto elevata di

risorse.

• Per esempio, alcuni giochi sono

considerati intrattabili

Page 20: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 20

Algoritmi Deterministici

• Un algoritmo deve essere dato sotto forma di

una lista finita di istruzioni che specificano il

procedimento esatto da eseguire in ogni passo

del calcolo. In altri termini, il calcolo non

dipende da chi lo esegue; esso è un processo

deterministico che può essere ripetuto con

successo da chiunque in qualunque momento.

Page 21: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 21

Generalità degli Algoritmi

• Un algoritmo è un’unica lista di istruzioni le

quali definiscono il calcolo che può essere

eseguito su un insieme qualunque di dati

iniziali, e che in ogni caso fornisce il risultato

corretto. In altre parole, un algoritmo indica

come risolvere non un solo problema

particolare, ma un’intera classe di problemi

simili.

Page 22: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 22

Definizione di Knuth

• L’Algoritmo è un insieme di regole (o

istruzioni) avente le seguenti

caratteristiche:

− Finito

− Non Ambiguo

− Dati di ingresso precisi

− Fornisce un risultato

− Eseguibile

Page 23: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Algoritmi dei giochi

Page 24: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 24

Algoritmi per giochi

• Un gioco è la descrizione di una situazione in cui un

certo numero di giocatori ha bisogno di prendere

decisioni che si influenzano vicendevolmente.

• Una soluzione è la descrizione formale delle azioni

che i giocatori possono o devono intraprendere e delle

situazioni in cui si vengono a trovare dopo aver

eseguito una particolare azione.

Page 25: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 25

Il gioco dell’undici

• Undici oggetti sono su una tavola. I due

giocatori si alternano nel raccogliere 1,

2 o 3 oggetti finché non restano più

oggetti sul tavolo.

• Il giocatore costretto a raccogliere

l’ultimo oggetto perde.

Page 26: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 26

Strategia vincente

1. A raccoglie 2 oggetti.

2. B raccoglie K oggetti (k ≤ 3)

3. A raccoglie 4–K oggetti

Page 27: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 27

Gioco del pari

• Il gioco comincia con 27 oggetti su una

tavola. Alternandosi, i giocatori

raccolgono ogni volta da 1 a 4

fiammiferi. Vince chi ha in mano un

numero pari di oggetti quando questi

sono stati tutti raccolti.

Page 28: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 28

Strategia vincente

1. A raccoglie 2 oggetti

2. Sia r il resto ottenuto dividendo per 6 il numero di

oggetti ancora da raccogliere.

3. Se B ha un numero pari di oggetti: 1. Se r = 2, 3, 4 o 5 allora A raccoglie, rispettivamente 1, 2, 3

o 4 oggetti

4. Se B ha un numero dispari di oggetti: 1. Se r = 0, 1, 2 o 3 e se sulla tavola restano ancora almeno 4

oggetti, allora A raccoglie, rispettivamente 1, 2, 3 o 4 oggetti

2. Se r = 4 allora A raccoglie 4 oggetti

3. Se sulla tavola restano 1 o 3 oggetti allora A li raccoglie tutti

Page 29: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

La Dama Unidimensionale

Regole di gioco:

• I due giocatori dispongono di una pedina (bianca o nera) ciascuno, che sono collocate nelle

caselle estreme della scacchiera (una sola riga di sei caselle).

• I giocatori muovono i pezzi alternativamente. Inizia il bianco.

• Con la prima mossa il giocatore può spostare la sua pedina di una o due caselle; in tutte le

mosse che seguono può spostarla di una sola casella.

• Se la casella successiva è occupata dalla pedina dell’avversario, il giocatore deve scavalcarla.

• Vince chi riesce a collocare per primo la sua pedina all’altra estremità della scacchiera,

purché il suo avversario non lo faccia alla mossa successiva. In quest’ultimo caso infatti la

partita termina con un pareggio.

Fondamenti dell'Informatica 29

Page 30: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Albero della dama unidimensionale

Fondamenti dell'Informatica 30

Page 31: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Esapedina

• L’esapedina si gioca su una scacchiera 3x3 con tre pedine da

entrambe le parti disposte sulla prima e sull’ultima fila della

scacchiera.

• Sono permessi solamente due tipi di mossa:

− 1. Una pedina può avanzare di un quadrato fino a un

quadrato vuoto.

− 2. Una pedina può catturare una pedina nemica

muovendosi diagonalmente di un quadrato, a destra o a

sinistra. Il pezzo catturato viene tolto dalla scacchiera.

• Si vince la partita in uno dei seguenti modi:

− 1. facendo avanzare una pedina fino alla terza riga;

− 2. catturando tutti i pezzi avversari;

− 3. arrivando ad una situazione in cui l’avversario non può

muovere (negli scacchi si avrebbe patta per stallo).

• Le mosse dei giocatori si alternano e ognuno muove un pezzo

alla volta.

• Il primo a muovere è il nero.

Fondamenti dell'Informatica 31

Page 32: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Primo caso

Fondamenti dell'Informatica 32

Page 33: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Secondo caso

Fondamenti dell'Informatica 33

Page 34: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 34

Proprietà dei giochi

1. Il gioco è condotto da due giocatori che

eseguono alternativamente una mossa

2. Il gioco termina con esattamente uno di due

possibili risultati: 1. O vince A il giocatore che gioca per primo

2. O vince B l’avversario

3. Ogni mossa consiste in una scelta da parte

del giocatore di una mossa tra un insieme di

mosse possibili

Page 35: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 35

Proprietà dei giochi

4. Ad ogni istante del gioco, i giocatori

sono informati completamente su tutte

le mosse già compiute e su tutte quelle

che potranno venir fatte

5. Esiste un limite superiore per il numero

di mosse in una partita

Page 36: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 36

Teorema: Strategia vincente

• In ogni gioco che soddisfi le proprietà

da 1 a 5 già definite, esiste una

strategia vincente per uno dei

giocatori.

Page 37: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Classificazione dei giochi

• Cooperazione

− Giochi non cooperativi

− Giochi cooperativi

• Informazione

− Giochi ad informazione perfetta

− Giochi ad informazione imperfetta

• Tempo

− Giochi strategici normali

− Giochi strategici a conoscenza successiva

Fondamenti dell'Informatica 37

Page 38: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 38

Giochi combinatori

• Sono giochi a 2 giocatori

• I giocatori alternano le proprie mosse

• Somma zero: un giocatore vince nella misura in cui

l’altro perde

• Informazione perfetta: i due giocatori conoscono

completamente lo stato del gioco ogni volta che

muovono; nessuna informazione è nascosta ad uno dei

due giocatori

• Deterministici: nessun elemento di casualità

• Finiti: il numero di scelte possibili ad ogni mossa è

finito, e il gioco dura un numero finito di mosse

Page 39: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 39

Come giocare

• Un possibile approccio ad un gioco combinatorio:

− Considera tutte le mosse ammissibili nello stato iniziale

− Calcola la nuova posizione risultante da ogni mossa

− Valuta ogni posizione risultante e determina la migliore

− Gioca la mossa corrispondente

− Attendi la mossa dell’avversario e ricomincia

• Difficoltà

− Rappresentazione della base di gioco

− Generazione di tutte le posizioni risultanti

− Valutazione di una posizione

Page 40: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 40

Funzione di valutazione

• Una funzione di valutazione viene usata per

stimare la bontà di una situazione di gioco

• Per l’assunzione di somma nulla, una singola

funzione è sufficiente a valutare la situazione

di entrambi i giocatori

− f(s)>0: la posizione s è buona per il primo giocatore e cattiva per il secondo

− f(s)<0: la posizione s è cattiva per il primo giocatore e buona per il secondo

− f(s)=0: la posizione s è neutra

Page 41: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 41

Albero di un gioco

x x x

x x x x x x

x x x O O O

O O O

O

O

O

O O

O O

O

O

x

x x x

x

x

x x

x

x x

x x

x

x x

x x

… … … …

f(s) =+1 se la posizione è vincente per X

f(s) =-1 se la posizione è vincente per O

f(s) = 0 se la posizione è patta

Page 42: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 42

Albero del gioco

• I vertici rappresentano le diverse

situazioni che si possono presentare in

una partita

• I rami rappresentano le possibili scelte

che un giocatore può fare

Page 43: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 43

Potatura alfa-beta

• Possiamo migliorare l’efficienza

dell’albero con una potatura

• Idea di base:

− Se hai un’idea che di certo non è buona non

perdere tempo per capire quanto sia cattiva

• Non valutiamo dei nodi che non è

necessario valutare

Page 44: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 44

Gioco del sei

• Su una tavola ci sono 6 oggetti

• Ogni giocatore, a turno, ne sceglie uno o

due.

• Perde il giocatore che raccoglie l’ultimo

oggetto

Page 45: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 45

B

A A A A A A

B B B B B

A

1 2

2

3

3 3 4

4 4

4

4 5 5 5 6

6 6 6 6 6 6 5 5 5 5

5 6 6 6 6 6

6

A

B

A

B

A

B

A

Albero del gioco del sei

Page 46: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 46

Regole

• Il massimo livello in un albero viene

detto ordine. È uguale alla massima

lunghezza di una partita.

• I vertici di livello dispari corrispondono

alle mosse di A, quelli di livello pari alle

mosse di B.

Page 47: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 47

Dimostrazione

• L’algoritmo è costruito per induzione

sulla lunghezza v della più lunga partita

possibile nel gioco (v è l’ordine

dell’albero)

• v=0: nessuna mossa.

• Se è vero per gli ordini ≤v dimostriamo

che è vero per v+1

Page 48: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 48

Storia della Teoria dei Giochi

• 1912 Bermelo - gioco degli scacchi

• 1921 Borel – poker

• 1928 Von Neumann – giochi combinatori

• 1950 Nash – equilibrio nei giochi non a

somma zero

• 1966 Rapoport – giochi a 2 giocatori

Page 49: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 49

Dilemma del prigioniero

• Due prigionieri accusati dello stesso

crimine hanno queste possibilità:

− Se solo uno dei due confessa, chi ha confessato evita la pena; l’altro però viene condannato a 7 anni di carcere;

− Se entrambi confessano, vengono entrambi condannati a 6 anni di carcere;

− Se nessuno dei due confessa, vengono entrambi condannati a 1 anno di carcere.

Page 50: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 50

Dilemma del prigioniero

confessa non confessa

confessa (6,6) (0,7)

non confessa (7,0) (1,1)

• Se Confessa:

− Caso migliore 0 anni

− Caso peggiore 6 anni

• Se Non Confessa:

− Caso migliore 1 anno

− Casso peggiore 7 anni

Page 51: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 51

Gioco del pollo

• Basato sulla sfida automobilistica del

film “Gioventù Bruciata”.

− se entrambi sterzano fanno entrambi una magra figura con gli amici

− Se uno sterza per primo e l’altro continua per un tratto di strada: uno fa la figura del pollo e l’altro guadagna il rispetto degli amici

− Se entrambi continuano, moriranno

Page 52: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 52

Gioco del pollo

sterza continua

sterza (pari,pari) (pollo,vince)

continua (vince,pollo) (muore,muore)

• Il problema sta nel convincere l’altro che non si è disposti a

sterzare nonostante l’alto rischio implicito di questa scelta.

• La cooperazione in questo gioco è la soluzione migliore

Page 53: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 53

Gioco dell’eroe

•L’eroe cerca il gesto eclatante

•Nessun altro deve compiere lo stesso gesto

coopera defeziona

coopera (1,1) (3,4)

defeziona (4,3) (2,2)

•La cooperazione ha il minimo vantaggio

Page 54: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 54

Gioco del leader

•Uno sceglie il conflitto, l’altro si allea

coopera defeziona

coopera (2,2) (3,4)

defeziona (4,3) (1,1)

•Uno deve imporre la propria volontà all’altro

•La cooperazione è ottimale

Page 55: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 55

Teorema di Nash

• Estendeva la teoria dei giochi ad un numero arbitrario

di partecipanti e dimostrava che, in certe condizioni,

esiste sempre una situazione di equilibrio che si

ottiene quando ciascun individuo sceglie la sua mossa

strategica in modo da massimizzare la sua funzione di

retribuzione.

• Tutti i giocatori possono così operare una scelta dalla

quale ciascuno trae un vantaggio o limita il suo

svantaggio al minimo

Page 56: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 56

Equilibrio

• Equilibrio in Strategia dominante

− Io faccio meglio che posso

indipendentemente da ciò che fai tu

− Tu fai meglio che puoi indipendentemente da

ciò che faccio io

• Equilibrio di Nash

− Io faccio meglio che posso dato ciò che fai tu

− Tu fai meglio che puoi dato ciò che faccio io

Page 57: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 57

Dilemma del viaggiatore

• Una compagnia aerea ha danneggiato due oggetti

preziosi identici che due viaggiatori avevano

acquistato durante un viaggio di piacere.

• Il comandante chiede ad ognuno di loro di indicare il

valore dell’oggetto compreso tra € 2,00 e € 100,00

precisando che:

− Rimborserà ad entrambi la cifra più bassa

− Premierà con € 2,00 chi ha espresso il valore più basso

− Ridurrà il rimborso di € 2,00 all’altro viaggiatore

Page 58: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 58

Problema del commesso viaggiatore

• Un rappresentante deve consegnare della merce in

diversi paesi

• Attraverso il navigatore satellitare conosce

esattamente le distanze effettive presenti tra i paesi

• Si vuole minimizzare la distanza totale che occorre

percorrere per effettuare il giro completo dei clienti,

senza passare due volte per lo stesso paese e ritornare

alla località di partenza

Page 59: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 59

Labirinto

• Possiamo immaginare un labirinto come

un sistema finito di nodi dai quali si

dipartono dei corridoi.

• Ogni corridoio congiunge due nodi che

vengono detti adiacenti.

• I nodi morti sono quelli da cui si diparte

un solo corridoio.

Page 60: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 60

Rappresentazione grafica

A

B

C

D

F

E

H

I

K

N

M

L

Page 61: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 61

Regola

• Diciamo che un nodo Y è accessibile da un

nodo X se esiste un cammino che conduce da X

a Y attraverso qualche successione di corridoi

intermedi.

• Se Y è accessibile da X allora esiste un

cammino semplice tra i due nodi, cioè un

cammino che non attraversa più di una volta

ciascun nodo.

Page 62: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 62

Algoritmo del labirinto

• Corridoio:

− Verde: non è mai passato

− Giallo: è passato una volta

− Rosso: è passato due volte

• Modalità di passaggio:

− Svolgendo il filo (passa da verde a giallo)

− Riavvolgendo il filo (passa da giallo a rosso)

• Non è possibile passare in un corridoio rosso

Page 63: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 63

Condizione dei Nodi

• Arrivo: si è raggiunta la meta

• Ciclo: esistono almeno due altri corridoi gialli

che si dipartono dal nodo

• Verde: Esiste almeno un corridoio verde che si

diparte dal nodo

• Partenza: Ci troviamo nel nodo iniziale

• Quinto caso: Non si verifica nessuna delle

condizioni precedenti

Page 64: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 64

Metodo di ricerca

Condizione

1. Arrivo

2. Ciclo

3. Verde

4. Partenza

5. Quinto caso

Mossa

1. Stop

2. Riavvolgere il filo

3. Svolgere il filo

4. Stop

5. Riavvolgere il filo

Page 65: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 65

Motivazioni del metodo

1. Qualunque sia la posizione di Partenza e di Arrivo

nel labirinto, alla fine, dopo un numero finito di

mosse, si deve raggiungere un ordine di Stop.

2. Se l’ordine di Stop giunge in Arrivo, il punto è

accessibile. Inoltre, siamo giunti attraverso un

cammino semplice e riavvolgendo il filo possiamo

tornare alla Partenza.

3. Se l’ordine di Stop giunge in Partenza, vuol dire che

l’Arrivo è inaccessibile.

Page 66: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 66

Esempio 1

Numero della

mossa

Condizione

trovata

Mossa Corridoio scelto Stato dopo la

mossa

1 Verde Svolge AB Giallo

2 Verde Svolge BC Giallo

3 Verde Svolge CD Giallo

4 Verde Svolge DH Giallo

5 Verde Svolge HI Giallo

6 Quinto caso Riavvolge IH Rosso

7 Quinto caso Riavvolge HD Rosso

8 Verde Svolge DB Giallo

9 Ciclo Riavvolge BD Rosso

10 Verde Svolge DF Giallo

11 Arrivo Stop Stop Stop

Page 67: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 67

Esempio 2

Numero della

mossa

Condizione

trovata

Mossa Corridoio scelto Stato dopo la

mossa

1 Verde Svolge KN Giallo

2 Verde Svolge NL Giallo

3 Verde Svolge LM Giallo

4 Verde Svolge MN Giallo

5 Ciclo Riavvolge NM Rosso

6 Quinto caso Riavvolge ML Rosso

7 Quinto caso Riavvolge LN Rosso

8 Quinto caso Riavvolge NK Rosso

9 Partenza Stop Stop Stop

Page 68: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 68

La regola della destra

• Entra nel labirinto. Quando ti trovi a un nodo prendi il

ramo più a destra. Se arrivi a un vicolo cieco, ritorna

sui tuoi passi fino all'ultimo nodo e prendi il ramo più

a destra tra quelli ancora inesplorati.

• Il modo migliore per visualizzare questo algoritmo è

toccare con la mano destra il muro alla propria destra

per tutto il labirinto, senza saltare mai un ramo

situato alla propria destra.

• Naturalmente la "regola della sinistra" funziona

altrettanto bene. È solo necessario essere coerenti

una volta entrati nel labirinto.

Page 69: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 69

Il metodo di Tremaux

• Entra nel labirinto. Dapprima vai dove ti pare, contrassegnando il

sentiero con un filo, o con sassolini, o molliche di pane, o con

qualsiasi cosa tu abbia a disposizione. Continua così finché arrivi:

− alla meta (se hai fortuna),

− oppure a un vicolo cieco,

− oppure a un nodo che avevi già attraversato in precedenza.

• Se arrivi a un vicolo cieco, ritorna al nodo precedente,

assicurandoti di contrassegnare il percorso anche a ritroso: in tal

modo, se entri ed esci da un vicolo cieco, questo avrà due piste

di briciole di pane. Ciò ti permetterà di evitarlo in futuro.

Nell'algoritmo di Tremaux non si esplora mai un ramo più di due

volte.

Page 70: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 70

Il metodo di Tremaux

• Se arrivi a un nodo già attraversato, fai così: − se sei arrivato da un ramo fino ad allora inesplorato (una sola

pista di briciole di pane dietro di te) ripercorri quello stesso ramo fino al nodo precedente, altrimenti

− se c'è un ramo ancora inesplorato a partire dal nodo, prendi questa direzione, altrimenti:

− prendi qualsiasi ramo che sia stato percorso una sola volta.

• Queste regole esauriscono l'algoritmo di Tremaux.

Seguendole scrupolosamente farai un giro completo

del labirinto, attraversando ogni ramo due volte, in

ciascuna direzione. Ovviamente, puoi anche fermarti

quando raggiungi la meta, se non è necessario

percorrere l'intero labirinto.

Page 71: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 71

Il metodo di Ore

• Entra nel labirinto. Se non sei già a un nodo, raggiungi

quello più vicino. Se non sai quale direzione conduca a

quello più vicino, vai a caso fino a incontrare un nodo.

Poi contrassegna in qualche maniera questo nodo: sarà

la tua casa base.

• Partendo dal nodo base, esplora ogni ramo che si

diparte da questo. Metti un contrassegno (ad esempio

un ciottolo) all'entrata di ciascun ramo quando

cominci a percorrerlo. Esplora ciascun ramo solo fino

al nodo successivo. Poi metti un ciottolo all'estremità

lontana del ramo e ritorna sui tuoi passi fino alla casa

base.

Page 72: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 72

Il metodo di Ore – Prima fase

• Identifica i vicoli ciechi (ad es. con un ciottolo rosso, o

chiudendoli con uno spago). Una volta contrassegnato in questo

modo, un ramo potrà essere ignorato in futuro. Se un ramo gira

su se stesso e ritorna al nodo originario, contrassegnalo come un

vicolo cieco: è altrettanto privo di utilità.

• A te interessa individuare quei rami che conducono a nodi con

rami nuovi. Alla fine dell'esplorazione preliminare ciascun

percorso potenziale verso la meta ha un ciottolo a ciascuna

estremità, e tu ti trovi di nuovo al nodo base.

• Adesso esplora fino a una profondità di due nodi. Cammina lungo

ciascun ramo che non sia un vicolo cieco fino al nuovo nodo, ed

esplora allo stesso modo ciascun ramo che si diparte da questo.

Page 73: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 73

Il metodo di Ore – Seconda fase

• Aggiungi un ciottolo a ciascuna estremità dei rami primari,

cosicché adesso avranno due ciottoli su ciascuna estremità, e

metti un ciottolo su ciascuna estremità dei nuovi rami secondari.

Ciò ti consentirà di ritrovare la strada fino al nodo base: il ramo

che conduce a quest'ultimo ha un ciottolo in più rispetto agli

altri.

• Come in precedenza, contrassegna le entrate dei vicoli ciechi e

dei percorsi circolari. Se un ramo conduce a un nodo già

esplorato (con almeno un ciottolo segnaletico) contrassegna

anche questo sentiero a entrambe le estremità. Alla fine sarai

tornato sui tuoi passi e ti ritroverai di nuovo al nodo base.

Page 74: Presentazione corso di formazione · Etimologia della parola: Algoritmo •La parola algoritmo ha origine nel Medio Oriente. ... Strategia vincente 1. A raccoglie 2 oggetti 2

Fondamenti dell'Informatica 74

Il metodo di Ore – Terza fase

• Nella terza fase di esplorazione, spingiti fino a una

distanza di tre nodi dal nodo base, aggiungendo un

ciottolo a ciascuna estremità di ogni ramo esplorato.

• Prosegui l'esplorazione sempre più in profondità, fino

a raggiungere la meta.

• L'algoritmo di Ore ti permetterà di individuare la via

più breve verso la meta. Ovviamente l'andamento

dell'esplorazione non seguirà questa via più breve, ma

se, ad es., la via più breve attraversa cinque nodi

allora la troverai nella quinta fase dell'esplorazione, e

saprai che quella è la via più breve.