Insiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative.
|
|
|
- Fabiana Calabrese
- 9 anni fa
- Visualizzazioni
Transcript
1 Insiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro
2 Definizione Un insieme è una collezione (o famiglia) di elementi (componenti o membri) di tipo omogeneo. A differenza delle liste gli elementi non sono caratterizzati da una posizione né possono apparire più di una volta. In matematica possono essere definiti estensionalmente A = { giallo, rosso, blu } oppure intensionalmente attraverso le proprietà che devono avere i componenti B = { elementi nel collegio ba19 nel 1994 } C = { numeri reali compresi tra 0 e 1 } In informatica ci riferiamo al modo estensionale Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 2
3 Operazioni Il numero di elementi ( A detto cardinalità ) rappresenta la dimensione dell insieme A = 3 B è finita C è infinita La relazione fondamentale è quella di appartenenza x A, da cui deriva l inclusione B A. Operazioni principali sono: unione A B intersezione A B differenza A \ B Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 3
4 Specifica sintattica Tipi insieme, boolean, tipoelem Operatori Creainsieme: ( ) insieme Insiemevuoto: ( insieme ) boolean Appartiene: (tipoelem, insieme ) boolean Inserisci: (tipoelem, insieme ) insieme Cancella: (tipoelem, insieme ) insieme Unione: ( insieme, insieme ) insieme Intersezione: ( insieme, insieme ) insieme Differenza: ( insieme, insieme ) insieme Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 4
5 Specifica semantica Tipi insieme = famiglia di insiemi costituita da elementi di tipo tipoelem boolean = insieme valori verità Operatori creainsieme = A post : A = {} insiemevuoto(a) = b post : b = vero se a = {}, b = falso altrimenti appartiene (x, A) = b post : b = vero se x A, b = falso altrimenti inserisci (x, A) = A' pre: x A (oppure senza precondizione) post : A' = A { x } (se x A: A' = A ) cancella (x, A) = A' pre : x A (oppure senza precondizione) post : A' = A \ {x} (se x A: A' = A) Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 5
6 Specifica semantica /2 unione(a, B) = C post: C = A B intersezione (A, B) = C post: C = A B differenza (A, B) = C post: C = A \ B Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 6
7 Realizzazioni Rappresentazione con vettore booleano Per linguaggi che non dispongono del tipo insieme, è possibile rappresentare un insieme A, i cui elementi siano, ad esempio, interi in [1, n], attraverso un vettore booleano di n bit, il cui k-esimo valore sarà vero se k A e falso altrimenti. (Vettore caratteristico) Un'altra possibile rappresentazione si avvale di una lista i cui elementi sono quelli dell'insieme in tal modo si può evitare che gli elementi siano assolutamente degli interi Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 7
8 Realizzazioni con liste non ordinate Gli elementi della lista sono quelli dell'insieme. Nel caso si usino realizzazioni con strutture dinamiche, l'occupazione di memoria è proporzionale al numero degli elementi presenti nell insieme class cella{ tipoelem elemento; posizione successivo; } class insieme{ cella * posizione; } L'inserimento avviene in testa alla lista semplice con cui è realizzato l insieme Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 8
9 Realizzazioni con liste ordinate Se è definita una relazione <= di ordinamento totale sugli elementi dell'insieme, esso può essere rappresentato con una lista ordinata per valori crescenti degli elementi utilizzando due puntatori che scorrono ognuno su un insieme. La realizzazione degli operatori non presenta particolari difficoltà Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 9
10 Applicazione Problema: trovare i numeri primi appartenenti all'intervallo 2..n con n > 2 Algoritmo (setaccio di eratostene ) metti tutti i numeri tra 2 e n nel setaccio scegli e rimuovi il numero in setaccio includi questo numero in numeri primi rimuovi dal setaccio tutti i multipli di questo numero se il setaccio non è vuoto ripeti i passi 2-5 Sia setaccio che numeri primi sono definibili come insiemi. Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 10
11 mfset Ci sono spesso delle applicazioni che non richiedono l'uso di tutte le operazioni Tenere le registrazioni degli stipendi degli impiegati di una impresa: non interessa alcuna struttura che riguarda gli impiegati e le operazioni unione, intersezione e differenza non sono necessarie Implementare la tabella dei simboli come è noto la tabella dei simboli di un compilatore è usata per memorizzare i nomi delle costanti, dei tipi e delle variabili di un programma sorgente tradizionalmente si usano strutture particolari (tavole o dizionari). In questi casi si opera attraverso la struttura mfset(merge-find-set) Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 11
12 mfset /2 Un mfset è una partizione di un insieme finito in sottoinsiemi disgiunti detti componenti. Le operazioni consentite permettono di : Stabilire a quale componente appartiene un elemento generico Unire due componenti distinte in una sola componente lasciando inalterate le componenti rimanenti Specifica sintattica Tipi: insieme, boolean, tipoelem, mfset, componente Operatori creamfset: (insieme) mfset fondi: (tipoelem,tipoelem,mfset ) mfset trova: (tipoelem,mfset ) componente Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 12
13 mfset /3 Specifica semantica Tipi insieme = famiglia di insiemi costituita da elementi di tipo tipoelem mfset = famiglia di partizioni di insiemi di elementi di tipo tipoelem componente = sottoinsieme di insieme, che è elemento di mfset Operatori: creamfset(a) = S post : S è una famiglia di n= A componenti c1, c2, cn ognuno delle quali contiene uno e un solo elemento di A e tali che ci = A, 1<= i <= n fondi (x, y, S )= S' pre : x e y appartengono a componenti distinte cx e cy di S post : S' è costituito da tutte le componenti che non contengono x e y e da una nuova componente ottenuta dall'unione delle due componenti cx e cy trova (x, S )= c pre : x appartiene ad una componente di S post : c è l'identificatore della componente cui x appartiene Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 13
14 mfset /4 In letteratura si può trovare anche un altro operatore trova teso a verificare se dati due elementi questi appartengono alla stessa componente in questo caso trova: (tipoelem, tipoelem, mfset ) boolean trova (x, y, S)= b pre : x e y appartengono a componenti di s post : b = vero se x e y appartengono alla stessa componente, falso altrimenti Realizzazioni efficaci di mfset prevedono l'uso di strutture ad albero che saranno presentate più avanti. Ora è data una rappresentazione intuitiva. Sia A = {1, 2, 3, 4, 5, 6, 7} creamfset restituisce S = { [1], [2], [3], [4], [5], [6], [7] } Poiché trova(1, S) è diverso da trova(5, S),m allora si può applicare la operazione di fusione fondi (1, 5, S) = { [2], [3], [4], [1, 5], [6], [7] } Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 14
15 mfset / FONDI (6,3,S) 4 7 FONDI (1,2,S) FONDI (1,3,S) 1 FONDI (4,7,S) FONDI (5,6,S) FONDI (3,7,S) Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 15 7
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro
Un insieme si dice ben definito quando si può stabilire in modo inequivocabile se un oggetto appartiene o non appartiene a tale insieme
Gli insiemi In matematica usiamo la parola insieme per indicare un raggruppamento, una collezione, una raccolta di oggetti (persone, simboli, numeri, lettere, figure ) che sono detti elementi dell insieme
STRUMENTI MATEMATICI
1. TABELLA A DOPPIA ENTRATA 1 STRUMENTI MATEMATICI E' un riquadro formato da righe orizzontali e colonne verticali. I dati sulla prima colonna sono i dati in entrata di ciascuna riga; i dati sulla prima
DISPENSE SU TEORIA DEGLI INSIEMI E NUMERI
FACOLTA' DI ECONOMIA UNIVERSITA DELLA CALABRIA Corso di Modelli Matematici per l Azienda a.a. 2011-2012 DISPENSE SU TEORIA DEGLI INSIEMI E NUMERI Prof. Fabio Lamantia INSIEMI INSIEME= gruppo di oggetti
Laboratorio di Algoritmi e Strutture Dati. Code con Priorità
Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile [email protected] Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso
Matematica e-learning - Corso Zero di Matematica. Gli Insiemi. Prof. Erasmo Modica A.A.
Matematica e-learning - Gli Insiemi Prof. Erasmo Modica http://www.galois.it [email protected] A.A. 2009/2010 1 Simboli Matematici Poiché in queste pagine verranno utilizzati differenti simboli matematici,
CORSO DI AZZERAMENTO DI MATEMATICA
CORSO DI AZZERAMENTO DI MATEMATICA 1 LE BASI FONDAMENTALI INSIEMI INSIEMI NUMERICI (naturali, interi, razionali e reali) CALCOLO LETTERALE RICHIAMI DI TRIGONOMETRIA I NUMERI COMPLESSI ELEMENTI DI GEOMETRIA
Matematica e Statistica per Scienze Ambientali
per Scienze Ambientali Insiemi e Combinatoria - Appunti 1 1 Dipartimento di Matematica Sapienza, Università di Roma Roma, 23 - Ottobre 2012 Il concetto di insieme Non tratterò la teoria assiomatica degli
Elementi di teoria degli insiemi
ppendice Elementi di teoria degli insiemi.1 Introduzione Comincia qui l esposizione di alcuni concetti primitivi, molto semplici da un punto di vista intuitivo, ma a volte difficili da definire con grande
Strutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
Insiemi: Rappresentazione
Insiemi: Rappresentazione Elencazione Per rappresentare un insieme per elencazione si indicheranno i suoi elementi tra parentesi graffe. Caratteristica Un insieme è rappresentato per caratteristica quando
Algoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
Precorsi di matematica
Precorsi di matematica Francesco Dinuzzo 12 settembre 2005 1 Insiemi Il concetto di base nella matematica moderna è l insieme. Un insieme è una collezione di elementi. Gli elementi di un insieme vengono
Insiemi e sottoinsiemi
Insiemi e sottoinsiemi DEFINIZIONE. Per insieme matematico si intende un raggruppamento di elementi che possono essere definiti con assoluta certezza. Gli insiemi matematici vengono indicati con una lettera
GLI INSIEMI RAPPRESENTAZIONE DI UN INSIEME. 1. Per ELENCAZIONE o RAPPRESENTAZIONE TABULARE
GLI INSIEMI Gli elementi di un insieme devono essere distinti (cioè diversi, non si ammettono due elementi uguali nello stesso insieme) e ben definiti (si deve poter stabilire se un elemento appartiene
Algoritmi e strutture dati
Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 4 Implementazioni delle partizioni Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio 2016.
INSIEMI. DEF. Un INSIEME è una qualsiasi collezione di oggetti.
INSIEMI DEF. Un INSIEME è una qualsiasi collezione di oggetti. Esso è ben definito quando è chiaro se un oggetto appartiene o non appartiene all insieme stesso. Esempio. E possibile definire l insieme
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
GLI INSIEMI PROF. WALTER PUGLIESE
GLI INSIEMI PROF. WALTER PUGLIESE INSIEME DEFINIZIONE UN RAGGRUPPAMENTO DI OGGETTI RAPPRESENTA UN INSIEME IN SENSO MATEMATICO SE ESISTE UN CRITERIO OGGETTIVO CHE PERMETTE DI DECIDERE UNIVOCAMENTE SE UN
Costanti e Variabili
Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli
01 - Elementi di Teoria degli Insiemi
Università degli Studi di Palermo Scuola Politecnica Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 01 - Elementi di Teoria degli Insiemi Anno Accademico 2015/2016
SEZIONE A INSIEMI E NUMERI
SEZIONE INSIEMI E NUMERI apitolo apitolo apitolo apitolo Insiemi Numeri naturali Numeri interi Numeri razionali e numeri reali Te lo ricordi ancora? PITOLO INSIEMI he cos è un insieme? Elencazione elemento
Nozioni introduttive e notazioni
Nozioni introduttive e notazioni 1.1 Insiemi La teoria degli insiemi è alla base di tutta la matematica, in quanto ne fornisce il linguaggio base e le notazioni. Definiamo un insieme come una collezione
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Il concetto di insieme. La rappresentazione di un insieme
Il concetto di insieme I concetti di insieme e di elemento di un insieme sono concetti primitivi, cioè non definibili mediante altri concetti più semplici. Il termine insieme è sinonimo di collezione,
Linguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine
RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale
1. Elementi di teoria degli insiemi
ISTITUZIONI DI MATEMATICHE E FONDAMENTI DI BIOSTATISTICA 1. Elementi di teoria degli insiemi A. A. 2014-2015 L.Doretti 1 Secondo il matematico tedesco Cantor (1845-1918), il vocabolo insieme va usato in
GLI INSIEMI. Il termine INSIEME è una parola primitiva, cioè un termine che ha bisogno di un esempio per essere spiegato e quindi compreso.
GLI INSIEMI Il termine INSIEME è una parola primitiva, cioè un termine che ha bisogno di un esempio per essere spiegato e quindi compreso. Non ha alcun senso affermare : Io possiedo un insieme Lui fa parte
Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota
Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi
