OPS- Introduzione all’informatica

Slides:



Advertisements
Presentazioni simili
Equazioni e calcoli chimici
Advertisements

Premessa: si assume di aver risolto (correttamente
Flusso Massimo Applicazione di algoritmi
Algoritmi e Strutture Dati
Strutture dati per insiemi disgiunti
Alberi binari Definizione Sottoalberi Padre, figli
Ricorrenze Il metodo di sostituzione Il metodo iterativo
Algoritmi e Strutture Dati (Mod. B)
Estendere i linguaggi: i tipi di dato astratti
Sistemi di numerazione
Sintassi (prima parte)
Capitolo 8 Sistemi lineari.
Introduzione Cosa sono le reti di Petri?
a’ = f(a) Definizione e proprietà
1 Grandezze omogenee, commensurabili e incommensurabili
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Le basi del calcolo statistico
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Flusso Massimo Applicazione di algoritmi
Flusso Massimo Applicazione Algoritmi Esercizio 1 Sia dato la seguente rete di flusso, in cui la sorgente è il nodo 1 e la destinazione è il nodo 6. I.
Corso di Informatica (Basi di Dati)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e strutture dati
Albero: insieme di punti chiamati NODI e linee chiamate EDGES
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Unità Didattica 2 I Linguaggi di Programmazione
Fondamenti di Informatica Algoritmi
SSIS-Veneto Indirizzo FIM A.A
Motivazione allo studio
Elementi di Informatica di base
Dalle potenze ai numeri binari
Prof. Cerulli – Dott.ssa Gentili
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Ispezione lineare La funzione hash h(k,i) si ottiene da una funzione hash ordinaria h'(k) ponendo L’esplorazione inizia dalla cella h(k,0) = h'(k) e continua.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
2. Grafi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
EQUAZIONI DI PRIMO GRADO
….e la risoluzione dei problemi
Gli algoritmi del minimo percorso
Le regole per la stesura di un articolo di tipo scientifico
Alberi CORDA – Informatica A. Ferrari Testi da
Circonferenza e cerchio
alberi completamente sbilanciati
LAB-SCI/Dipartimento I.C. Centro storico Pestalozzi Primo Incontro 15 Gennaio 2014.
Informatica 3 V anno.
Logica F. orilia. Lezz Lunedì 4 Novembre 2013.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Grammatiche Grammatiche libere da contesto Grammatiche regolari
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Informatica e Informatica di Base
Cloud informatica V anno.
6. LIMITI Definizione - Funzioni continue - Calcolo dei limiti
OTTIMIZZAZIONE DI UN PERCORSO GRAFO CAMMINO MINIMO.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Unità di apprendimento 6
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

OPS- Introduzione all’informatica LUGO 7/5/2014 terza parte

UN (ALTRO) ESEMPIO DI PROBLEM SOLVING PROBLEMA “TIPO” Su una mappa (schematica) sono rappresentate delle città e delle strade che le congiungono (con la relativa lunghezza); trovare il percorso più breve tra due città assegnate (che non siano direttamente collegate). Esempio di mappa 6 9 5 7 2 4 3 n1 n4 n2 n3 n5 n6 n7

DEFINIZIONE: un disegno di questo tipo si dice grafo: è composto da nodi (con un nome) e da archi (con una lunghezza). N.B. Gli archi sono disegnati come segmenti di retta, ma rappresentano “strade” (non valgono le proprietà dei triangoli per le lunghezze). Le strade si suppongono a due sensi di percorrenza In tutti i problemi considerati il grafo è disegnato su un(a porzione di) piano e gli archi non si intrecciano (cioè si “incontrano” solo nei nodi). Un grafo così fatto si dice planare.

PRIMO ESERCIZIO Rappresentare il “disegno” in maniera “non grafica”: cioè esprimere tutte le informazioni contenute nello schema in modo “testuale”. 6 9 5 7 2 4 3 n1 n4 n2 n3 n5 n6 n7 SOLUZIONE arco(n1,n4,6) arco(n2,n6,7) arco(n3,n5,4) arco(n2,n7,4) arco(n7,n3,2) arco(n6,n4,9) arco(n5,n1,5) arco(n1,n3,3) arco(n5,n4,6) arco(n7,n5,9) arco(n5,n6,5) arco(n2,n5,9)

<nome>(<argomento>,<argomento>,…) DEFINIZIONE. Si dice termine una scrittura del tipo: <nome>(<argomento>,<argomento>,…) Il grafo in figura è stato descritto da dodici termini, ciascuno dei quali è associato ad un arco del grafo. Il nome del termine è “arco”; il primo argomento è il nome di un nodo, il secondo argomento è il nome di un altro nodo direttamente connesso al primo con un arco; il terzo argomento è la lunghezza dell’arco (dedotta dalla mappa). N.B. È “consuetudine” (!) assumere come elementi fondamentali di “disegni” di questo tipo (e problemi di questo tipo) l’arco e “tradurre” il disegno con tanti termini quanti sono gli archi.

Si è realizzata la “trasformazione” grafo  elenco di termini N.B. Gli archi rappresentano strade a doppio senso di circolazione, quindi (stipuliamo che) i termini: arco(n1,n4,6) e arco(n4,n1,6) rappresentano lo stesso arco: occorre sceglierne uno solo (uno qualunque dei due). DOMANDA. I nomi delle “città” (i nomi dei nodi del grafo) compaiono come argomenti nei termini; quante volte? Si è realizzata la “trasformazione” grafo  elenco di termini cioè un esempio della trasformazione informazioni grafiche  informazioni sintattiche N.B Useremo spesso la espressione “sintattico” per dire “testuale”

SECONDO ESERCIZIO (esempio “semplice” del problema iniziale) È dato un grafo descritto dal seguente elenco di archi: arco(n1,n6,4) arco(n6,n4,3) arco(n4,n3,2) arco(n3,n2,8) arco(n1,n2,1) arco(n1,n5,2) arco(n2,n5,3) arco(n5,n6,1) Disegnare il grafo e: trovare la lista L1 dei nodi che individua il percorso più breve tra n1 e n3 e calcolare la lunghezza K1 del percorso; trovare la lista L2 dei nodi che individua il percorso più lungo (senza passare più volte per uno stesso nodo) tra n1 e n3 e calcolare la lunghezza K2 del percorso.

elenco di termini  grafo SCHEMA DI SOLUZIONE (1) La prima parte dell’esercizio è il processo inverso di quello visto precedentemente: occorre realizzare la trasformazione elenco di termini  grafo Per disegnare il grafo si osservi innanzitutto che vengono menzionati 6 nodi (n1, n2, n3, n4, n5, n6); si procede per tentativi: si disegnano 6 nodi nel piano e li si collega con archi rettilinei a due a due, come specificato dai termini elencati nel testo dell’esercizio; probabilmente al primo tentativo gli archi si incrociano, come per esempio nella seguente figura. n3 n4 n6 n1 n5 n2

SCHEMA DI SOLUZIONE (2) Si cerca poi di risistemare i punti in modo da evitare gli incroci degli archi: (spesso) questo si può fare in più modi. Da ultimo si riportano le distanze sugli archi, come mostrato dalla figura seguente. 1 2 3 8 n3 n4 n6 n1 n5 n2 4 Per rispondere alle due domande del problema occorre elencare sistematicamente tutti i percorsi tra n1 e n3, che non passino più volte per uno stesso punto. La maniera sistematica consiste (essenzialmente) nel costruire un albero (analogo a un albero genealogico!). Un albero è un grafo “particolare”: è articolato su “livelli” orizzontali; sul livello più alto esiste un solo nodo, detto radice. Ogni nodo, di un livello, può essere connesso a nodi del livello immediatamente più basso; ogni nodo, tranne la radice, è connesso a uno solo del livello più alto.

SCHEMA DI SOLUZIONE (4) n1 n2 n5 n6 n4 n3 1 2 3 8 n3 n4 n6 n1 n5 n2 4

SCHEMA DI SOLUZIONE (5) Nell’albero genealogico (maschile! “legge salica”) ogni personaggio ha un solo padre e può avere nessuno, uno o più figli. Quindi ogni nodo ha una sola catena di ascendenti (o antenati) che lo lega alla radice (il fondatore della “casata”). Un nodo che non ha figli si dice anche foglia. L’albero si costruisce con le seguenti regole: il nodo di partenza (del percorso) è la radice dell’albero; ogni nodo ha tanti figli quanti sono i nodi connessi direttamente (con un arco) a lui nel grafo originale con esclusione di quei nodi che compaiono come suoi antenati; un “ramo” si arresta se (non è possibile continuarlo o) se è il nodo di arrivo. I possibili percorsi, di cui parla il problema, sono le successioni di nodi dalla radice alle foglie (consistenti nel nodo di arrivo).

SCHEMA DI SOLUZIONE (6) Esaminiamo in dettaglio la costruzione dell’albero. n1 n2 n5 n6 n4 n3 1 2 3 8 n3 n4 n6 n1 n5 n2 4 Tutti i possibili percorsi sono le successioni di nodi dalla radice alle foglie.

[<elemento>, <elemento>, …] SCHEMA DI SOLUZIONE (7) TERZO ESERCIZIO (all’interno del secondo) Descrivere tutti i percorsi tra n1 e n3. SOLUZIONE Un percorso, definito come una successione di nodi, si può descrivere con un particolare termine detto lista, che ha il seguente schema: [<elemento>, <elemento>, …] L’albero costruito si può “arricchire” associando ad ogni ramo una informazione: la lunghezza, riportata come etichetta numerica associata al ramo. A questo punto si possono elencare tutti i percorsi tra n1 e n3 come liste; inoltre è facile calcolare la lunghezza del percorso sommando i valori delle etichette numeriche di ogni ramo del percorso.

N.B. sono stati costruiti ed esaminati tutti i percorsi SCHEMA DI SOLUZIONE (8) n1 n2 n5 n6 n4 n3 1 2 3 8 4 SOLUZIONE N.B. sono stati costruiti ed esaminati tutti i percorsi PERCORSO da n1 a n3 LUNGHEZZA [n1,n2,n5,n6,n4,n3] 10 [n1,n2,n3] 9 [n1,n5,n6,n4,n3] 8 [n1,n5,n2,n3] 13 [n1,n6,n4,n3] 9 [n1,n6,n5,n2,n3] 16

 SCHEMA DI SOLUZIONE (9) Il problema diceva: trovare la lista L1 dei nodi che individua il percorso più breve tra n1 e n3 e calcolare la lunghezza K1 del percorso; trovare la lista L2 dei nodi che individua il percorso più lungo (senza passare più volte per uno stesso nodo) tra n1 e n3 e calcolare la lunghezza K2 del percorso. L1 K1 L2 K2 L1 [n1,n5,n6,n4,n3] K1 8 L2 [n1,n6,n5,n2,n3] K2 16 SOLUZIONE 

SINOSSI DI QUELLO CHE È STATO FATTO (1) Abbiamo: enunciato un problema: in realtà non c’erano dati, quindi è stata individuata una classe di problemi; trasformato delle informazioni (grafiche) in stringhe di caratteri opportunamente costruite, cioè in informazioni, meglio strutture, sintattiche (dette anche strutture di dati); enunciato un particolare problema (della classe prima vista) in cui le informazioni erano di tipo sintattico (non grafico); trasformato le strutture sintattiche del problema in strutture grafiche (un grafo); ragionato sulle strutture grafiche, costruendo altre strutture grafiche (un albero); dedotto da queste strutture grafiche delle strutture sintattiche (liste) tra cui individuare la soluzione del problema. N.B. Usiamo in modo informale le parole: informazioni, strutture sintattiche, strutture dati supponendo che sia “chiaro” cosa vogliano dire (senza definirle rigorosamente)

SINOSSI DI QUELLO CHE È STATO FATTO (2) Schematizzando (graficamente!!): Problema con strutture sintattiche  traduzione in strutture grafiche (grafo)  ragionato e costruito altre strutture grafiche (albero) strutture sintattiche  traduzione  individuato la soluzione (sintattica!) Sembrano esistere: - un “mondo”, a sinistra, in cui esistono solo strutture sintattiche - un “mondo”, a destra, in cui esistono strutture “di vario tipo”

SINOSSI DI QUELLO CHE È STATO FATTO (3) Prima descrizione (approssimata): il mondo a sinistra è quello dei il mondo a destra è quello degli “programmi” (informatici) “umani” che ragionano … che “ragionano” sintatticamente L’informatica si può schematizzare nel modo seguente (mondo di sinistra): Problema descritto da strutture sintattiche  programma  strutture sintattiche che individuato la soluzione N.B. Il nostro modo di risolvere il problema (quindi le OPS!) è una preparazione all’uso dell’informatica, cioè una preparazione alla scrittura dei programmi per la soluzione dei problemi.

SINOSSI DI QUELLO CHE È STATO FATTO (4) In realtà esiste una corrispondenza “strettissima” tra Informazioni/strutture sintattiche  informazioni/strutture di altro tipo con (poco) studio e (poco) allenamento si riesce a costruire un programma “traducendo” passo passo quello che si fa nel mondo di destra. Programma  algoritmo = manipolazione “sintattica” di strutture di dati (o di “simboli”) E il mondo di destra? stat rosa pristina nomine: nomina nuda tenemus (Bernardo da Cluny)

ESERCIZIO FINALE PROBLEMA È dato un grafo descritto dal seguente elenco di archi: arco(n1,n2,6) arco(n2,n3,7) arco(n3,n4,4) arco(n8,n7,4) arco(n7,n6,2) arco(n6,n5,9) arco(n8,n1,5) arco(n6,n3,3) arco(n5,n4,1) arco(n7,n2,9) Si supponga che arco (n7,n2,9) sia a senso unico, percorribile solo da n7 verso n2. Disegnare il grafo e trovare: la lista L1 del percorso più breve tra n1 e n4 e calcolarne la lunghezza K1 la lista L2 del percorso più lungo (senza nodi ripetuti) tra n1 e n4 e calcolarne la lunghezza K1 L1 K1 L2 K2 L1 [n1,n2,n3,n4] K1 17 L2 [n1,n8,n7,n2,n3,n6,n5,n4] K2 38

Una citazione Hommage à Marcel-Paul Schützenberger Il m’a dit il y a longtemps qu’il considérait que son rôle était d’utiliser ses intuitions sur le traitement des données pour contribuer à enrichir les mathématiques d’objets et de propriétés nouvelles. Plaisantait-il? Dominique Perrin, 1996