28
PROBLEMI E MODELLI NOTA: La scrittura del codice è solo l’ultimo passo! PROGRAMMAZIONE: insieme delle attività che, a partire da un problema, conducono alla stesura di un programma che il computer dovrà eseguire per risolverlo. DOMANDE FONDAMENTALI: 1. In cosa consiste il problema? 2. Come rappresentare il problema? 3. Come ottenere la soluzione? DOBBIAMO IMPARARE A: 1. Analizzare il problema 2. Creare un modello 3. Usare metodi e strategie di risoluzione

PROBLEMI E MODELLI - Altervista

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROBLEMI E MODELLI - Altervista

PROBLEMI E MODELLI

NOTA: La scrittura del codice è solo l’ultimo passo!

PROGRAMMAZIONE: insieme delle attività che, a partire da un problema, conducono alla stesura di un programma che il computer dovrà eseguire per risolverlo.

DOMANDE FONDAMENTALI:

1. In cosa consiste il problema?

2. Come rappresentare il problema?

3. Come ottenere la soluzione?

DOBBIAMO IMPARARE A:

1. Analizzare il problema

2. Creare un modello

3. Usare metodi e strategie di risoluzione

Page 2: PROBLEMI E MODELLI - Altervista

ANALISI DEL PROBLEMA

TIPI DI PROBLEMI:

1. Problema di decisione (SI/NO)

2. Problema di ricerca (soluzione ammissibile)

3. Problema di ottimizzazione (migliore soluzione ammissibile)

NOTA: Il cliente, spesso, pone all’informatico il problema in forma poco chiara, nella quale non sono ben specificati i dati del problema, le relazioni tra essi, e gli obiettivi da ottenere.

OBIETTIVO dell’ANALISI: riformulare il problema

- focalizzando l’attenzione sui dati rilevanti, trascurando quelli superflui

- cogliendo le regole e le relazioni tra i dati

- indicando esplicitamente e chiaramente gli obiettivi da raggiungere

Page 3: PROBLEMI E MODELLI - Altervista

RIFORMULAZIONE DEL PROBLEMA (astrazione)

ESEMPIO:

Un treno parte da Milano per Lecce, composto da 3 carrozze di 1° classe e 7 carrozze di 2°

classe. A Milano salgono 120 persone in 1° classe e 230 in 2° classe. A Piacenza scendono

20 persone dalla 1° classe e 50 dalla 2° classe, e ne salgono 60 in 1° e 80 in 2°. A Rimini

scendono 40 persone dalla 1° e 50 dalla 2°, e ne salgono 30 in 1° e 70 in 2°. A Bari

scendono 20 persone dalla 1° e 80 dalla 2°, e ne salgono 10 in 1° e 40 in 2°. A Lecce

scendono tutti. Quante fermate ha fatto il treno?

RIFORMULAZIONE DEL PROBLEMA: Un treno parte da Milano, ferma a Piacenza, poi ferma a

Rimini, poi ferma a Bari e infine arriva a Lecce. Quante fermate ha fatto il treno?

Page 4: PROBLEMI E MODELLI - Altervista

ASTRAZIONE DEL PROBLEMA

TIPI DI ASTRAZIONE:

1. Astrazione funzionale

2. Astrazione sui dati

ASTRAZIONE FUNZIONALE: permette di separare la struttura interna di un problema o

sottoproblema da come appare all’esterno.

Si crea così un insieme di blocchi o black box di cui si specifica l’interfaccia ma non

cosa c’è all’interno.

fi u

u = f(i)

+

nodo sommatorei = i1 + i2

i1

i2i

u1

u2

u3

i

diramazionei = u1 = u2 = u3

Page 5: PROBLEMI E MODELLI - Altervista

ASTRAZIONE FUNZIONALE

cella frigoriferatemperatura temperatura+

-

controllotemperatura

regolatemperatura

NOTA: ci tornerà molto utile quando divideremo un programma in sottoprogrammi!

ESEMPIO: controllo automatico della temperatura di una cella frigorifera

Page 6: PROBLEMI E MODELLI - Altervista

ASTRAZIONE DEI DATI

Riguarda, come nell’esempio visto prima, il poter tralasciare i dati e gli obiettiviritenuti superflui o non importanti, focalizzando l’attenzione solo su quelli rilevanti.

Riguarda, inoltre, l’organizzazione dei dati in strutture astratte, in grado di operare per mezzo di macro operazioni tralasciandone i dettagli implementativi.

ESEMPIO: gestione della coda a uno sportello

PUSH

POP

Page 7: PROBLEMI E MODELLI - Altervista

MODELLAZIONE

Un modo per poter studiare meglio e comprendere a pieno il problema è quello di creare una sua rappresentazione semplificata, o modello.

Il modello è sempre un’astrazione del problema, perché in esso vengono rappresentati solo gli aspetti essenziali.

PROBLEMA

- gestione traffico

- ponte sullo stretto

- ricerca automatica soluzioni

- sistema informativo aziendale

MODELLO

- mappa stradale

- plastico/disegno 3D

- algoritmo

- database

Page 8: PROBLEMI E MODELLI - Altervista

MODELLAZIONE

I modelli possono essere:

- Descrittivi: riproducono la realtà in modo semplificato

- Predittivi: prevedono il verificarsi di una certa situazione (stocastici)

- Prescrittivi: impongono un determinato comportamento

- Matematici: descrivono le relazioni tramite equazioni e disequazioni

- Analogici: riproducono la realtà in scala in modo fedele

Page 9: PROBLEMI E MODELLI - Altervista

MODELLI DESCRITTIVI

Sono quelli che descrivono la realtà in modo semplificato, e possono essere di tipo:

grafico

tabellare

X=1 Y = 2

X = 2 Y = 4

X = 3 Y = 6

X = 4 Y = 8

simbolicoE = MC2

Page 10: PROBLEMI E MODELLI - Altervista

IL MODELLO GRAFICO

ESEMPIO: un treno parte dalla stazione A alle 12, e arriva alla stazione B alle 16, mentreun altro treno parte dalla stazione B alle 12, e arriva alla stazione A alle 16.

Esiste un punto nel quale essi si incontrano?

12 16

A

B

RISPOSTA: SI

Page 11: PROBLEMI E MODELLI - Altervista

IL MODELLO TABELLARE

ESEMPIO: Una ninfea nasce in un laghetto. Ogni giorno la sua superficie raddoppia, e in 8 giorni copre l’intera superficie del lago.

Quanto impiega a coprire metà lago?

giorno dimensione

1 1

2 2

3 4

4 8

5 16

6 32

7 64

8 128

RISPOSTA: 7 giorni

Page 12: PROBLEMI E MODELLI - Altervista

IL MODELLO TABELLARE

ESEMPIO: per strada, un uomo chiede a un conoscente l’età dei suoi tre figli. Il secondo risponde: «il loro prodotto è 36 e la loro somma è il numero civico di questa casa». Il primo ci pensa, e poi dice: «non riesco a determinarlo così». Il primo allora dice «il maggiore suona il flauto».

Quali sono le età dei tre figli?

Età I Età II Età III Somma

36 1 1 38

18 2 1 21

12 3 1 16

9 4 1 14

9 2 2 13

6 6 1 13

6 3 2 11

4 3 3 10

RISPOSTA:9 anni2 anni2 anni

Page 13: PROBLEMI E MODELLI - Altervista

IL MODELLO SIMBOLICO

ESEMPIO: Un mattone pesa 1 Kg più mezzo mattone

Quanto pesa il mattone?

𝑥 = 𝑝𝑒𝑠𝑜 𝑑𝑒𝑙 𝑚𝑎𝑡𝑡𝑜𝑛𝑒 𝑥 = 1 +𝑥

2

𝑥

2= 1

𝑥 = 2 𝑘𝑔

Page 14: PROBLEMI E MODELLI - Altervista

RISOLUZIONE DEL PROBLEMA

La risoluzione di un problema è un processo creativo non automatizzabile!

La strategia risolutiva richiede conoscenze (matematiche, fisiche, logiche, ecc.) e capacità di utilizzare tali conoscenze adattandole alle diverse situazioni.

Comunque, ci sono alcune tecniche che si possono usare per pervenire più facilmente alla soluzione di un problema. Esse possono appartenere a uno tra due diversi approcci:

- TOP DOWN o metodo diretto: a partire dai dati iniziali, si «costruisce» passo passo la soluzione

- BOTTOM UP o metodo indiretto: a partire dalla soluzione da ottenere, si risale passo passo a ritroso fino ai dati iniziali.

Page 15: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

CONOSCENZA DELL’ARGOMENTO: una approfondita conoscenza dell’argomento di cui è oggetto il problema può sicuramente aiutare nell’elaborare la strategia risolutiva.

Questo permette di

- capire esattamente cosa bisogna fare

- avere a disposizione tutti i dati del problema

- analizzare tutte le possibili sfaccettature del problema, individuando i casi particolari

- avere ben chiaro l’obiettivo finale

- conoscere le regole utilizzabili e le implicazioni (sociali, giuridiche, economiche)

NOTA: l’informatico si trova spesso a diventare esperto di diversi altri argomenti!

Page 16: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

PROCEDIMENTO PER TENTATIVI: La soluzione del problema, molto spesso, non arriva «al primo colpo», ma dopo una serie di tentativi falliti.

Prima di dire «non ci riesco» occorre:

- esplorare altre strade per la possibile soluzione del problema

- usare il «pensiero laterale»

- cercare la soluzione «più semplice» (è sempre la migliore!)

NOTA: l’informatico si trova spesso a vivere momenti frustranti!

Page 17: PROBLEMI E MODELLI - Altervista

ESEMPIO della LAMPADINA e dei 3 INTERRUTTORI:

- solo un interruttore accende la lampadina- si può entrare una sola volta a verificare lo stato

SOLUZIONE ANALITICA

IMPOSSIBILE

PENSIERO LATERALEOsservazione chiave: luce accesa, luce spenta, lampadina calda, lampadina fredda

SOLUZIONE- accendi due interruttori (A e B)- dopo qualche minuto spegni uno dei due (B)- vai a controllare

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

Il pensiero laterale

Page 18: PROBLEMI E MODELLI - Altervista

ESEMPIO dei 9 punti e delle 4 linee:Unire tutti i punti con 4 linee spezzate senza alzare la penna

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

Il pensiero laterale

Page 19: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

Ricerca della soluzione più semplice

ESEMPIO: superficie totale di un cubo

Qual è la soluzione migliore?

Perché?

Page 20: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

SFRUTTAMENTO DELL’ESPERIENZA: Non sempre i problemi sono totalmente nuovi, anzi, molto spesso «assomigliano» ad altri problemi che abbiamo già affrontato.

PROBLEMI SIMILI HANNO SOLUZIONI SIMILI!

E’ possibile allora, per analogia, adattare la soluzione di un problema già affrontato alla nuova situazione.

- Se l’analogia è perfetta, si parla di isomorfismo.

- Se l’analogia non è perfetta, si parla di somiglianza.

NOTA: l’informatico conosce molti problemi «tipo»!

Page 21: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

ESEMPIO: il problema del commesso viaggiatore (TSP)

PROBLEMI SIMILI:

- trasposti (bus, corriere, camion, carrelli elevatori, carro ponte, ecc.)- scheduling e produzione manifatturiera- logistica (movimentazione del magazzino)- circuiti integrati (movimento del trapano e del saldatore, disposizione dei componenti

sulla motherboard)- mappatura del genoma umano- calcolo delle sequenze del DNA- routing di pacchetti tcp o datagram su internet- ecc.

Un commesso viaggiatore deve visitare N città, minimizzando il percorso.

Soluzione ottima? Difficile (problema NP-hard) N! soluzioni

Page 22: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

ESEMPIO: il problema dello zaino (Knapsack)

Riempire lo zaino scegliendo tra N oggetti, ognuno dei quali ha un peso wi e un profitto pi.Obiettivo: massimizzare il profitto totale, non eccedendo il peso massimo C dello zaino.

PROBLEMA INFORMATICO: Progettare un algoritmo per la ricerca della soluzione ottima.

Soluzione ottima? Difficile (problema NP-hard) >N! soluzioni

PROBLEMI SIMILI: trasporti, 3G/4G/5G, taglio ottimo, reti neurali, ecc.

Page 23: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

SCOMPOSIZIONE (divide et impera): Un problema complesso può essere risolto più facilmente scomponendolo in problemi più semplici.

Esempio: visualizza tutti i numeri primi minori di N

SCOMPOSIZIONE:

Sottoproblema1(visualizza tutti i primi fino a N):

- enumera tutti i numeri i da 1 a N

- per ogni i, determina se i è primo se si, visualizzalo

Sottoproblema2(determina se i è primo):

- enumera tutti i numeri j da 2 a i-1

- se non trovi un divisore i è primo

Page 24: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

Esempio: area di un trapezio rettangolo

SCOMPOSIZIONE:

Sottoproblema1(area del rettangolo)

Sottoproblema2(area del triangolo)

Area_totale = Area_rettangolo + Area_triangolo

Page 25: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

METODO DEDUTTIVO: Si determinano, a partire dai dati, alcune relazioni/conclusioni che sono il punto di partenza per nuove deduzioni che portano a nuove relazioni/conclusioni, e così via.

Il metodo deduttivo usa:

- Il sillogismo

- L’inferenza logica

Esempio di sillogismo

A. Tutti gli uomini sono mortali

B. Socrate è un uomo

Conclusione: Socrate è mortale

Esempio di sillogismo

A. Nessun pazzo è normale

B. Qualche genio è pazzo

Conclusione: Qualche genio non è normale

SILLOGISMO

B → C, A → B A → C

Page 26: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

Regole dell’inferenza logica:

- Modus-ponens

- Modus-tollens

- …

MODUS-TOLLENS

A. P → Q (si verifica Q ogni volta che si verifica P)

B. not Q (non si è verificato Q)

Deduzione: not P (non si è verificato P)

MODUS-PONENS

A. P → Q (si verifica Q ogni volta che si verifica P)

B. P (si è verificato P)

Deduzione: Q (si è verificato Q)

Page 27: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

ALTRE TECNICHE:

- Raggruppamento: cogliere caratteristiche comuni tra elementi

Esempio: la sentinella

Una spia ascolta il dialogo tra un soldato e la sentinella per carpire la parola d’ordine.

Sentinella: «12» Soldato: «6»

Sentinella: «10» Soldato: «5»

Sentinella: «8» Soldato: «4»

Sentinella: «6» Soldato: «3»

Sentinella: «OK passa»

Sentinella: «20» Spia: «10»

Sentinella: «ALLARME!»

SOLUZIONE: in quanti modi si possono raggruppare le coppie soldato-sentinella?

Page 28: PROBLEMI E MODELLI - Altervista

TECNICHE PER LA RISOLUZIONE DEL PROBLEMA

ALTRE TECNICHE:

- Esemplificazione: dedurre regola generale dal caso particolare

Esempio: giorni totali a partire dal 1 gennaio dell’anno 0

GENERALE:ESEMPIO:

Siamo al 3 Marzo dell’anno 2

- sono passati 2 anni (anno 0 e anno 1) +

- sono passati 2 mesi (gennaio e febbraio) +

- sono passati 3 giorni

Dati g, m, a:

a*360 giorni per gli anni +

(m-1)*30 giorni per i mesi +

g giorni