UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI CORSO DI LAUREA IN INFORMATICA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI CORSO DI LAUREA IN INFORMATICA"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI CORSO DI LAUREA IN INFORMATICA MODELLI DECISIONALI PER L E-COMMERCE Implementazione di un recommender system utilizzando gli algoritmi K-Means e Apriori A cura di: Cattaneo Francesco cattaneo.francesco@hotmail.it Prandi Alessandro alessando.prandi@gmail.com

2 INDICE INTRODUZIONE... 3 GUIDA PER L INSTALLAZIONE... 4 SOFTWARE... 5 Weka... 5 Tomcat... 5 Eclipse... 6 LINGUAGGI DI PROGRAMMAZIONE... 7 Java... 7 JSP... 7 HTML... 7 CENNI TEORICI... 8 Recommender Systems... 8 K-Means... 9 Apriori IMPLEMENTAZIONE Creazione del dataset Algoritmo K-Means Algoritmo Apriori Inserimento viaggi Ricerca viaggi Visualizzazione risultati IL PROGETTO TEST

3 INTRODUZIONE Il lavoro è consistito nella progettazione e implementazione di un sistema di raccomandazione, pensato per un sito di un agenzia viaggi online. Abbiamo inizialmente creato un dataset che contiene 4000 istanze, ognuna delle quali rappresenta un utente diverso; per ciascun utente abbiamo inserito automaticamente, con una procedura semirandom, una sequenza di attributi YES/NO. Ogni YES/NO si riferisce al fatto che un utente sia o non sia andato in un determinato luogo, per un totale di 33 attributi divisi in 3 categorie, che indicano la tipologia del viaggio: Avventuroso, Esotico, Montagna. Questo file così costruito viene passato all algoritmo K-Means che clusterizza tutte le istanze, dividendole nelle 3 categorie di viaggi. Infine il file in output viene processato dall algoritmo Apriori, che permette di rilevare quali siano le associazioni di viaggi più frequenti all interno di una categoria specifica. L idea che sta alla base del progetto è che il recommender system possa suggerire un viaggio ad un utente, in base alle scelte effettuate da altri utenti con un profilo simile. Il sito propone all utente una serie di mete, tra le quali l utente deve selezionare quelle a lui più congeniali o simili per tipologia ai luoghi che desidera visitare. In questo modo andiamo a costruire una specie di dataset storico, costruito sulle preferenze espresse, e il recommender system potrà suggerire una meta, confrontandosi con le scelte fatte da altri utenti. L ordinamento dei viaggi proposti dipenderà dalla similarità del profilo dell utente che si è venuto a creare con le regole trovate dall algoritmo Apriori, che sono ordinate in base al livello di confidenza. 3

4 GUIDA PER L INSTALLAZIONE Per procedere con l installazione è sufficiente seguire questi passaggi: 1. installare Tomcat 2. copiare la cartella Progetto-E all interno della cartella webapps di Tomcat 3. inserire nella variabili di ambiente del sistema operativo il path per CatalinaHome ( In particolare va inserito il persorso alla cartella dove è installato Tomcat ) 4. startare il server Tomcat 5. aprire il browser all indirizzo Il comando rebuild.bat genera un nuovo dataset sul quale vengono applicati l'algoritmo K-Means e l'algoritmo Apriori. Grazie a questa funzione è possibile ricreare l'intero sistema alla base del recommender system per effettuare nuove prove sul software; facciamo presente che il tempo necessario al completamento di questa operazione si aggira attorno ai 15 minuti(con 4000 utenti e 1000 regole sull algortimo apriori), su computer potenti. Per cambiare il numero di utenti del dataset iniziale o il numero di regole dell algoritmo Apriori bisogna modificare i parametri presenti nel file configuration.java; lanciando poi rebuild.bat viene generato il dataset con le nuove impostazioni. 4

5 SOFTWARE Weka Weka è un progetto software per data mining sviluppato nell università di Waikato in Nuova Zelanda: Weka è un acronimo che sta per Waikato Environment for Knowledge Analysis. Tutti gli algoritmi implementati nel software sono liberamente disponibili nel web: lo scopo principale è consentire una piena comprensione di come lavorano e di che cosa fanno. Weka è scritto in Java, in quanto il software realizzato con questo linguaggio di programmazione orientato agli oggetti è automaticamente portabile in tutte le principali piattaforme per computer. Il funzionamento di Weka è stato testato su Linux, Windows e Macintosh; grazie alle caratteristiche di portabilità del linguaggio Java, Weka presenta una interfaccia uniforme e un identico funzionamento su tutti questi diversi sistemi operativi. Inoltre Weka è un software Open Source e viene rilasciato con licenza GNU General Public License: ciò consente l'utilizzo e la modifica del codice sorgente (disponibile insieme al software). Weka concentra il suo interesse principalmente sugli algoritmi di classificazione e sui filtri per la pre-elaborazione dei dataset (entrambi presenti in gran numero), ma include anche l'implementazione di un algoritmo per la scoperta di regole di associazione (l'algoritmo Apriori, il più noto) e di qualche algoritmo per il clustering e per la regressione. Tomcat Apache Tomcat (o semplicemente Tomcat) è un web container open source sviluppato dalla Apache Software Foundation. Implementa le specifiche JSP e Servlet di Sun Microsystems, fornendo quindi una piattaforma per l'esecuzione di applicazioni Web sviluppate nel linguaggio Java. La sua distribuzione standard include anche le funzionalità di web server tradizionale, che corrispondono al prodotto Apache. In passato, Tomcat era gestito nel contesto del progetto Jakarta, ed era pertanto identificato con il nome di Jakarta Tomcat; attualmente è oggetto di un progetto indipendente. Tomcat è rilasciato sotto licenza Apache Software License, ed è scritto interamente in Java; può quindi essere eseguito su qualsiasi architettura su cui sia installata un JVM. 5

6 Eclipse Eclipse è un progetto open source legato alla creazione e allo sviluppo di una piattaforma di sviluppo ideata da un consorzio di grandi società quali Ericsson, HP, IBM, Intel, MontaVista Software, QN, SAP e Serena Software, chiamato Eclipse Foundation, e creata da una comunità strutturata sullo stile dell'open source. Pur essendo orientata allo sviluppo del progetto stesso, questo IDE (ambiente di sviluppo integrato) è utilizzato anche per la produzione di software di vario genere. Si passa infatti da un completo IDE per il linguaggio Java (JDT, "Java Development Tools") ad un ambiente di sviluppo per il linguaggio C++ (CDT, "C/C++ Development Tools") e a plug-in che permettono di gestire ML, PHP e persino di progettare graficamente una GUI per un applicazione JAVA (Eclipse VE, "Visual Editor"), rendendo di fatto Eclipse un ambiente RAD. Il programma è scritto in linguaggio Java, ma anziché basare la sua GUI su Swing, il toolkit grafico di Sun Microsystems, si appoggia a SWT, librerie di nuova concezione che conferiscono ad Eclipse una straordinaria reattività. La piattaforma di sviluppo è incentrata sull'uso di plug-in, delle componenti software ideate per uno specifico scopo, per esempio la generazione di diagrammi UML, ed in effetti tutta la piattaforma è un insieme di plug-in, versione base compresa, e chiunque può sviluppare e modificare i vari plugin. Nella versione base è possibile programmare in Java, usufruendo di comode funzioni di aiuto quali: completamento automatico ("Code completion"), suggerimento dei tipi di parametri dei metodi, possibilià di accesso diretto a CVS e riscrittura automatica del codice (funzionalità questa detta di Refactoring) in caso di cambiamenti nelle classi. Essendo scritto in Java, Eclipse è disponibile per le piattaforme Linux, HP-U, AI, Mac OS e Windows. 6

7 LINGUAGGI DI PROGRAMMAZIONE Java Il linguaggio Java è un linguaggio di programmazione orientato agli oggetti, derivato dal C++ (e quindi indirettamente dal C) e creato da James Gosling e altri ingegneri di Sun Microsystems. Il gruppo iniziò a lavorare nel 1991, il linguaggio inizialmente si chiamava Oak. Il nome fu successivamente cambiato in Java a causa di un problema di copyright (il linguaggio di programmazione Oak esisteva già nel 1991). Java fu annunciato ufficialmente il 23 maggio 1995 a SunWorld. La piattaforma di programmazione Java è fondata sul linguaggio stesso, sulla Java Virtual Machine (JVM) e sulle API. JSP JavaServer Pages, (letto anche talvolta come Java Scripting Preprocessor) è una tecnologia Java per lo sviluppo di applicazioni Web che forniscono contenuti dinamici in formato HTML o ML. Si basa su un insieme di speciali tag con cui possono essere invocate funzioni predefinite o codice Java. In aggiunta, permette di creare librerie di nuovi tag che estendono l'insieme dei tag standard. JSP è una tecnologia alternativa rispetto a numerosi altri approcci alla generazione di pagine Web dinamiche, per esempio ASP o la più tradizionale CGI. Differisce da queste tecnologie non tanto per il tipo di contenuti dinamici che si possono produrre, quanto per l'architettura interna del software che costituisce l'applicazione Web (e, di conseguenza, sui tempi di sviluppo, la portabilità, la modificabilità, le prestazioni, e altri aspetti di qualità del software). HTML HTML (acronimo per Hyper Text Mark-Up Language) è un linguaggio usato per descrivere i documenti ipertestuali disponibili nel Web; è un linguaggio di pubblico dominio la cui sintassi è stabilita dal World Wide Web Consortium (W3C) ed è basato su un altro linguaggio avente scopi più generici, l'sgml. L'HTML prevede tag specifici per far fronte a molte necessità di formattazione e per fornire molte funzionalità, come ad esempio la visualizzazione di immagini e filmati, o l'accompagnamento audio della pagina, la visualizzazione di tabelle, la visualizzazione di liste, la gestione delle informazioni da passare ai motori di ricerca o ancora l'aspetto grafico del documento. Un'ulteriore ed importante caratteristica di HTML è che esso è stato concepito per definire il contenuto logico e non l'aspetto finale del documento. 7

8 CENNI TEORICI Recommender Systems Generalmente, gli utenti di un sistema informatico tendono a compiere sempre le stesse azioni o sequenze di azioni, dunque il comportamento passato dell'utente rappresenta con sorprendente accuratezza una stima del suo comportamento futuro; tale assunto è alla base dei più rudimentali, ma nondimeno efficaci, sistemi di personalizzazione. Tuttavia in alcuni contesti questo non si verifica: ad esempio un cliente di un servizio online per la vendita di libri non comprerà due volte lo stesso volume. È probabile invece che acquisti un libro simile ad altri libri acquistati in passato, dello stesso genere o dello stesso autore, ma per sfruttare questo dato occorre avere a disposizione un criterio per misurare la similitudine fra due libri. Un'altra possibilità consiste nel suggerire all'utente le scelte compiute da utenti con comportamenti simili. Le strategie adottate per effettuare le previsioni si dividono in content based, che raccomandano risorse simili a quelle che l'utente ha scelto in passato, e collaborative filtering, che raccomandano le risorse scelte da utenti diversi aventi profili simili. Metodi Content-Based I metodi di predizione content-based osservano le scelte di un utente e le registrano. Tali metodi richiedono una certa quantità di intelligenza, sotto forma di euristiche o modelli probabilistici, per individuare fra le risorse che l'utente ha esaminato (oppure comprato o scaricato) dei motivi ricorrenti di interesse. Sulla base di questi, il sistema tenta di predire l'interesse dell'utente per altre risorse, valutando la similitudine o la complementarità fra queste ultime e ciò che l'utente ha preferito in passato. Un limite dei sistemi content based e che essi non tengono in alcun conto le esperienze fatte con altri utenti nell effettuare predizioni, ma limitano le proprie inferenze ai dati raccolti sulle transazioni di uno specifico individuo. Metodi Collaborative-Filtering I metodi collaborative filtering non tengono conto della natura delle risorse, ma fanno uso del profilo utente per raccomandare le risorse scelte in passato da utenti con profili simili. La costruzione e la comparazione dei profili utente rappresenta il nodo cruciale di questi metodi che funzionano secondo il principio del passaparola. Se esiste un sistema esplicito di rating delle risorse da parte degli utenti, è possibile raggruppare gli utenti che hanno dato voti simili alle stesse risorse. Tuttavia tale feedback rappresenta un impegno che molti utenti non sono disposti a sostenere, anche perché non ne traggono diretto beneficio. Ancora più difficile è ottenere dagli utenti degli esempi negativi di risorse. Questo costituisce infatti un impegno ancora più gravoso dato che ciò che piace è in genere molto meno di ciò che non piace o non interessa. 8

9 K-Means L'algoritmo K-Means è un algoritmo di clustering che permette di suddividere gruppi di oggetti in k partizioni sulla base dei loro attributi. È una variante dell'algoritmo di aspettazione-massimizzazione, il cui obiettivo è determinare i k gruppi di dati generati da distribuzioni gaussiane. Si assume che gli attributi degli oggetti possano essere rappresentati come vettori, e che quindi formino uno spazio vettoriale. L'obiettivo che l'algoritmo si prepone è di minimizzare la varianza totale inter-cluster. Ogni cluster viene identificato mediante un centroide o punto medio. L'algoritmo segue una procedura iterativa: inizialmente crea k partizioni e assegna ad ogni partizione i punti d'ingresso o casualmente o usando alcune informazioni euristiche. Quindi calcola il centroide di ogni gruppo. Costruisce quindi una nuova partizione associando ogni punto d'ingresso al cluster il cui centroide è più vicino ad esso, quindi vengono ricalcolati i centroidi per i nuovi cluster e così via, finché l'algoritmo non converge. K-Means è uno dei più semplici algoritmi che risolvono il problema del clustering. L idea fondamentale consiste nel definire k centroidi, dove k è il numero di clusters scelto a priori. Dato un insieme di vettori d ingresso, ogni vettore è di dimensione n, tale insieme deve essere raggruppato in k clusters. Un centroide è un vettore di dimensione n che rappresenta il centro del cluster. L algoritmo consiste nei seguenti passi: 1. Posizionare i k centroidi nello spazio a n dimensioni. Tale posizionamento rappresenta la scelta iniziale per i centri dei clusters. 2. Assegnare ad ogni vettore da clusterizzare al cluster che ha il centroide più vicino alla propria posizione. 3. Una volta che tutti i vettori sono stati assegnati ad un cluster, calcolare nuovamente la posizione dei k centroidi. 4. Ripetere i punti 2 e 3 finché i centroidi non si muovono più. I principali svantaggi dell algoritmo K-Means sono i seguenti: Non è specificato il modo in cui si possono inizializzare i centroidi. Un metodo popolare è quello di inizializzarli con valori casuali. Il risultato prodotto dipende dai valori d inizializzazione scelti per i centroidi. Una soluzione standard di questo problema è provare con un certo numero di inizializzazioni differenti Il risultato dipende dalla scelta del numero di clusters k. Lo svantaggio di maggior rilievo è l ultimo visto che non c è un metodo per trovare il numero ottimo di cluster, che valga in generale. Una semplice soluzione del problema può essere quella di eseguire l algoritmo con diversi valori di k e scegliere il miglior valore di k secondo certi criteri che definiscono la qualità della clusterizzazione. Bisogna stare molto attenti con questo approccio perché, aumentando il numero dei clusters k, la funzione di errore diminuisce per definizione ma aumenta il rischio di overfitting. Per fare un esempio, se il numero di elementi da clusterizzare è pari al numero di cluster, un risultato dell algoritmo di clustering che manda la funzione di errore a zero può essere quello in cui ogni elemento è centroide di un cluster. Tale soluzione manda la funzione di errore a zero, ma il risultato di questa clusterizzazione risulta inutilizzabile. 9

10 Apriori Sia I = { i 1, i 2,..., i n } un insieme di oggetti (ogni oggetto è fondamentalmente una etichetta, un valore categorico). Sia D un insieme di transazioni, dove ogni transazione T è un insieme di oggetti tale che T I. Si noti che il numero di volte che un oggetto appare in una transizione è ininfluente, cioè quello che conta è che un dato oggetto sia presente o meno nella transazione (ad esempio, quando si comprano 12 uova e 2 litri di olio, quello che veramente interessa è il fatto che si siano acquistati uova e olio). Ogni transazione è individuata da un codice identificatore. Indicando con un insieme di oggetti (itemset), si dice che la transazione T contiene se e solo se T. Una regola di associazione è una implicazione del tipo: Y, dove I, Y I e Y = Il supporto per la regola Y si ottiene dividendo il numero di transazioni che soddisfano tale regola per il numero totale di transazioni presenti nell'insieme D. La confidenza per la regola Y si ottiene dividendo il numero di transazioni che soddisfano tale regola per il numero di transazioni che contengono l'insieme. La confidenza indica la precisione della regola, cioè quante volte, essendo presente, è presente anche Y; il supporto invece indica l'importanza della regola rispetto alle dimensioni del database. Spesso è desiderabile rivolgere l'attenzione solo a quelle regole che hanno un supporto ragionevolmente alto. Le regole con confidenza e supporto elevati sono dette regole forti. Lo scopo di qualsiasi algoritmo per la scoperta di regole è essenzialmente quello di trovare regole forti in database di grandi dimensioni. Tale obiettivo di solito si raggiunge dividendo il problema in due passi: scoperta di large itemset, cioè di insieme di oggetti aventi supporto più elevato di un predeterminato supporto minimo smin (se un itemset ha supporto minimo, allora ogni sottoinsieme dell itemset ha pure supporto minimo) utilizzo dei large itemset per generare le regole di associazione. L'algoritmo Apriori è iterativo: ripete per un numero finito di volte (al massimo m-1, dove m è il numero di oggetti della transazione più grande) i due passi appena descritti. Ad ogni iterazione costruisce un insieme di large itemset candidati, conta il numero di occorrenze di ogni large itemset candidato tra le transazioni (ossia valuta il supporto di ognuno), determina i large itemset effettivi (quelli il cui supporto è maggiore del supporto minimo smin), estrae le regole da ogni large itemset. Tra tutte le regole ottenute da un large itemset si escludono quelle che non raggiungono una certa confidenza minima decisa in precedenza. 10

11 IMPLEMENTAZIONE Creazione del dataset Il programma ha inizio con la creazione di una matrice, inizialmente vuota, che ha per righe gli utenti (o istanze) per un totale di 4000, e per colonne i viaggi (o attributi) per un totale di 33; abbiamo pensato di suddividere gli utenti in 3 categorie: Avventuroso, Esotico, Montagna. Ogni categoria contiene 11 destinazioni specifiche, rappresentative della categoria di appartenenza. Prima di procedere al riempimento della matrice, il programma lancia per ogni utente un tiro random compreso tra 0 e 2 (poiché ci sono 3 categorie di viaggi): il risultato del lancio serve a determinare a quale gruppo appartenga l utente (0=Avventuroso, 1=Esotico, 2= Montagna). Successivamente ha inizio l effettivo riempimento della matrice con 1 e 0, dove 1 indica che l utente ha effettuato un viaggio in una destinazione, 0 che non lo ha effettuato. Per stabilire se un viaggio debba essere messo a 1 o a 0 viene eseguito anche in questo caso un tiro random, con numeri compresi tra 0 e 9, influenzato dal lancio precedente: se infatti un utente è risultato essere appartenente alla categoria Esotico, allora col 70% della probabilità i viaggi appartenenti alla categoria Esotico verranno messi a 1. Riportiamo un esempio parziale della matrice: Tibet Sahara Gobi Antartide Canarie Jamaica Maldive Cuba Cervino Stelvio Bormio Sestriere Utente A Utente B Utente C Possiamo osservare che l utente A ha una predominanza di 1 nei viaggi appartenenti alla categoria Avventura, l utente B in quelli di tipo Esotico, l utente C nelle mete di tipo Montagna. Il passaggio seguente è la trasformazione del dataset in un file adatto a Weka; il processo avviene in 2 fasi: 1. introduzione di tutti gli attributi, ovvero dei nomi dei viaggi nella parte iniziale del file 2. sostituzione degli 1 e 0 con YES e NO, rispettivamente Questo procedimento è indispensabile, poiché gli algoritmi che andremo ad utilizzare sono di Weka; il dataset da processare deve quindi rispettare il suo standard. Per questo motivo il dataset in output è un file in formato.arff, le cui caratteristiche permettono a Weka di elaborarlo nelle fasi successive del programma. 11

12 Algoritmo K-Means Una volta che il dataset è pronto all utilizzo, nel programma vengono chiamate le funzioni di Weka che realizzano il K-Means. Tramite questo algoritmo intendiamo suddividere il dataset in 3 cluster, tante quante sono le categorie dei viaggi, al fine di creare gruppi più omogenei per quanto riguarda le preferenze sui viaggi; questo procedimento ci aiuterà poi ad ottimizzare i risultati dell applicazione dell algoritmo Apriori. Infatti andremo a creare 3 file distinti, su ognuno dei quali lanceremo l algoritmo Apriori. Abbiamo impostato il numero dei cluster a 3 ed il numero dei seed a 100, poiché in seguito a diversi tentativi questa scelta è risultata la più performante. Riusciamo infatti ad ottenere dei centroidi che risultano essere ideali ai nostri scopi, in quanto ci permettono di clusterizzare correttamente gli utenti come abbiamo potuto verificare nei test successivi; riportiamo di seguito i risultati ottenuti con Weka: Cluster 0 Mean/Mode: NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES YES YES YES YES YES YES YES YES YES Cluster 1 Mean/Mode: NO NO NO NO NO NO NO NO NO NO NO YES YES YES YES YES YES YES YES YES YES YES NO NO NO NO NO NO NO NO NO NO NO Cluster 2 Mean/Mode: YES YES YES YES YES YES YES YES YES YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO Possiamo osservare che otteniamo sequenze di 11 YES consecutivi per ogni cluster, caratteristica che ci permette di distinguere nettamente i 3 gruppi di utenti A partire da questi centroidi vengono clusterizzati tutti gli utenti del dataset; considerando i risultati finali, possiamo dire con un buon margine di sicurezza che la clusterizzazione avviene in maniera corretta per tutti (o almeno la maggior parte) degli utenti. Al termine dell esecuzione dell algoritmo abbiamo ottenuto i 3 cluster, che abbiamo etichettato come 0, 1, 2 in base alla similarità dei viaggi effettuati dagli utenti; per eseguire questa operazione di suddivisione Weka si basa sulla distanza euclidea. Una volta determinati i cluster il programma crea 3 distinti file (cluster0.arff, cluster1.arff, cluster2.arff), all interno dei quali gli utenti sono stati suddivisi in gruppi omogenei rispetto ai viaggi effettuati; la suddivisione viene effettuata in base al cluster di appartenenza con la quale l algoritmo ha etichettato ogni utente. La decisione di creare file distinti è dovuta al fatto che riteniamo che l algoritmo Apriori possa lavorare meglio su gruppi di utenti che hanno in comune mete simili; dovendo ricercare associazioni tra i viaggi, pensiamo sia più probabile che una persona faccia prevalentemente vacanze dello stesso genere: un utente che ha effettuato molti viaggi al mare continuerà a prediligerli rispetto a viaggi avventura o in montagna. Questa scelta ci ha permesso di implementare un recommender system che suggerisce mete più mirate rispetto ai gusti dell utente. 12

13 Tuttavia, per come abbiamo creato il dataset iniziale, questa scelta non esclude la possibilità che alcuni utenti, appartenenti ad un cluster a prevalenza di viaggi di tipo esotico, abbiano effettuato viaggi di tipo avventura o montagna. Algoritmo Apriori In questa fase, ognuno dei 3 file creati viene processato dall algoritmo Apriori al fine di creare regole associative tra viaggi appartenenti allo stesso cluster; con questo procedimento intendiamo trovare i sottoinsiemi di viaggi effettuati dagli utenti con supporto più elevato (large itemset). A differenza del K-Means, il numero delle che è possibile impostare è maggiore; di seguito specifichiamo quali abbiamo modificato rispetto a quelle di default: minmetric: considera solo le regole al di sopra di una determinata soglia (0.75 nel nostro caso) numrules: il numero di regole che l algoritmo cerca (1000) Al termine dell esecuzione vengono creati 3 file (Apriori0.txt, Apriori1.txt, Apriori2.txt) che contengono le regole rilevate dall algoritmo; i risultati sono ordinati in maniera decrescente rispetto al livello di confidenza. Le regole alle quali ci interesseremo saranno quelle che, nella parte a destra della freccia, hanno YES: considerando la regola 148, ad esempio, possiamo dire che se un utente è stato a Courmayeur e al Sestriere allora, con un livello di confidenza di 0.77 andrà anche a Cortina. 13

14 Inserimento viaggi La fase seguente comprende la selezione dei viaggi che un utente ha già effettuato: abbiamo inserito delle checkbox in una pagina html, dove possono essere selezionati uno o più viaggi. Nel momento in cui vengono messi i check, viene costruita una stringa di YES/NO in corrispondenza delle mete, al fine di compararla con le scelte effettuate dagli altri utenti presenti nel dataset. Il procedimento è semplice: dove la checkbox è segnata, viene messo YES, in tutti gli altri box lasciati non segnati viene messo NO. L effettiva creazione di questa stringa per il nuovo utente avviene quando si clicca sul bottone Procedi, posto in fondo alla pagina html. 14

15 Ricerca viaggi Una volta creata l istanza, questa viene confrontata con le istanze ottenute dall esecuzione dell algoritmo Apriori. Il meccanismo di confronto prende in ingresso la stringa creata in base ai checkbox segnati e ricerca, all interno del file.txt, le stringhe che più le sono simili. Più precisamente, il programma da noi implementato confronta gli YES presenti in entrambe le stringhe, effettuando così una prima selezione tra tutte le regole trovate dall algoritmo Apriori. Successivamente, per ogni stringa così trovata, viene ricercato un YES nella parte a destra della freccia: siamo infatti interessati ai viaggi che un utente potrebbe fare, non a quelli che non farà. Visualizzazione risultati L ultima fase si occupa di mostrare a schermo le stringhe rilevate dopo la ricerca: abbiamo pensato di ordinare i risultati prima in base alla similarità delle regole trovate dall algoritmo Apriori con la stringa inserita, e poi di ordinare i risultati così ottenuti in base al livello di confidenza; il criterio di similarità che abbiamo adottato confronta gli YES presenti nelle due stringhe in analisi, senza tenere conto dei NO. Abbiamo operato questa scelta poiché pensiamo sia più significativo che la meta proposta si basi sulle mete visitate, piuttosto che su quelle non visitate: il livello di confidenza, invece, viene calcolato dando egual peso agli YES e ai NO. 15

16 IL PROGETTO Il sistema descritto permette all utente di operare su strutture dati già esistenti ed ottimizzate per velocizzare la soluzione che viene proposta: riteniamo infatti che l utente finale sia poco propenso ad aspettare un tempo elevato per ottenere una risposta. L idea è che, una volta ottenuto il dataset, il lavoro di analisi ed elaborazione dei dati venga fatto a priori, e che l unico tempo di attesa debba essere quello necessario al confronto tra i viaggi effettuati dall utente e quelli effettuati dagli altri utenti. La fase iniziale della sessione internet prevede l inserimento, da parte dell utente, dei viaggi fino ad ora effettuati; questo procedimento è indispensabile per simulare i dati storici dell utente. Nel nostro caso proponiamo una pagina di checkbox rappresentativa dei viaggi inseriti nel dataset; bisogna quindi segnare tutti i viaggi che già sono stati compiuti. Questa operazione ha un duplice scopo: il primo è quello di cercare utenti che abbiano fatto viaggi simili, e fornire quindi il servizio di recommender system che ci siamo proposti di implementare; il secondo consiste nell evitare di proporre una meta che l utente abbia già visitato. Abbiamo effettuato questa scelta perché supponiamo sia più utile suggerire un luogo dove una persona non sia mai stata, piuttosto che un luogo già visitato: è più probabile che un utente abbia bisogno di essere consigliato rispetto ad una località che non conosce rispetto ad una già nota. Dopo aver selezionato i viaggi si preme il tasto Avvia la ricerca e dopo pochi secondi il sistema proporrà una serie di mete, ordinate in base alla similarità sopra descritta e al livello di confidenza. Per ogni destinazione viene visualizzata una foto della meta suggerita e vengono visualizzate informazioni riguardanti una particolare offerta per quello specifico viaggio, come numero di posti disponibili, il prezzo e la durata del soggiorno. 16

17 TEST Abbiamo fatto testare il prodotto finito a 10 utenti, diversi tra loro sia dal punto di vista anagrafico che di conoscenze di computer. Ad ognuno di essi abbiamo chiesto di effettuare una scelta tra le mete che il programma suggerisce e, in base ai risultati proposti, comunicarci quanto fossero soddisfatti. Riportiamo le informazioni essenziali dei tester e successivamente la tabella risultante in base al livello di soddisfazione in seguito alle prove effettuate. Utente 1: uomo, 59 anni, conoscenze informatiche discrete Utente 2: donna, 58 anni, conoscenze informatiche buone Utente 3: donna, 60 anni, conoscenze informatiche basse Utente 4: uomo, 65 anni, conoscenze informatiche discrete Utente 5: uomo, 25 anni, conoscenze informatiche buone Utente 6: uomo, 33 anni, conoscenze informatiche ottime Utente 7: donna, 42 anni, conoscenze informatiche ottime Utente 8: donna, 22 anni, conoscenze informatiche discrete Utente 9: donna, 51 anni, conoscenze informatiche buone Utente 10: uomo, 27 anni, conoscenze informatiche ottime Utente 1 Utente 2 Utente 3 Utente 4 Utente 5 Utente 6 Utente 7 Utente 8 Utente 9 Utente 10 Per niente Poco Abbastanza Molto Possiamo notare che la maggior parte degli utenti è sostanzialmente soddisfatta dei risultati proposti dal sistema, poiché questo propone scelte conformi ai gusti da loro espressi al momento della selezione viaggi già effettuati. Per quanto riguarda gli utenti meno soddisfatti, la motivazione deriva non tanto dalle mete proposte, quanto dal numero delle soluzioni che vengono visualizzate: avrebbero preferito una più vasta gamma di scelta. Per aumentare il numero di viaggi esposti basterebbe diminuire la soglia del livello di confidenza che abbiamo scelto in seguito ad alcune prove; tuttavia riteniamo che una soglia di 0,75 sia il minimo indispensabile per evitare di inserire anche viaggi che poco c entrano con i gusti della maggior parte degli utenti. 17

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

DOCUMENTAZIONE POISSON

DOCUMENTAZIONE POISSON DOCUMENTAZIONE POISSON INDICE: 1. Primo approccio all'interfaccia 2. Distribuzione dei dati 3. Effettuare una elaborazione e una lettura dell'elaborazione 4. Sistema di aggiornamenti 5. Assistenza 6. Acquisto

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Visual basic base Lezione 01. L'ambiente di sviluppo

Visual basic base Lezione 01. L'ambiente di sviluppo L'ambiente di sviluppo L'ambiente di sviluppo Visual basic è un linguaggio di programmazione Microsoft. In questo corso prenderemo in considerazione, l'ultima versione. net di questo linguaggio. Microsoft

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI ORDINAMENTO DEI DATI Quando si ordina un elenco (ovvero una serie di righe contenenti dati correlati), le righe sono ridisposte in base al contenuto di una colonna specificata. Distinguiamo due tipi di

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

Progetto: Servizio location based per la ricerca di punti di interesse

Progetto: Servizio location based per la ricerca di punti di interesse Mauro Gentile Matr. 701870 Progetto: Servizio location based per la ricerca di punti di interesse Il progetto consiste nello sviluppo di un servizio che fornisce informazioni relative a punti di interesse

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Guida Joomla. di: Alessandro Rossi, Flavio Copes Guida Joomla di: Alessandro Rossi, Flavio Copes Grafica e template 1. 15. La grafica e i template Personalizzare l'aspetto del sito aggiungendo nuovi template e customizzandoli 2. 16. Personalizzare il

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools Una breve introduzione operativa a STGraph Luca Mari, versione 5.3.11 STGraph è un sistema software per creare, modificare ed eseguire modelli di sistemi dinamici descritti secondo l approccio agli stati

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività Prerequisiti Mon Ami 000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività L opzione Centri di costo è disponibile per le versioni Contabilità o Azienda Pro. Introduzione

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

3. Installare Wamp Server

3. Installare Wamp Server E107 WEB SYSTEM Corso on line di progettazione siti dinamici: livello base R E A L I Z Z A Z I O N E D I 3. Installare Wamp Server By e107 Italian Team Sito web:http://www.e107italia.org Contatto: admin@e107italia.org

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

PowerPoint 2007 Le funzioni

PowerPoint 2007 Le funzioni PowerPoint 2007 Le funzioni Introduzione Cos è un ipertesto L' ipertesto è un testo organizzato in link, o collegamenti ad altre parti del testo e/o altri testi, in modo da consentire all utente di scegliere

Dettagli

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

Progettazione di un Database

Progettazione di un Database Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di

Dettagli

MODULO STAMPA BOLLETTINO PDF

MODULO STAMPA BOLLETTINO PDF MODULO STAMPA BOLLETTINO PDF MODULO STAMPA BOLLETTINO PDF pagina 2 di 7 INTRODUZIONE Il modulo STAMPA BOLLETTINO PDF è una applicazione stand-alone, sviluppata in linguaggio Java, che permette di produrre

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

lem logic enterprise manager

lem logic enterprise manager logic enterprise manager lem lem Logic Enterprise Manager Grazie all esperienza decennale in sistemi gestionali, Logic offre una soluzione modulare altamente configurabile pensata per la gestione delle

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Il Programma... 3 I moduli... 3 Installazione... 3 La finestra di Login... 4 La suite dei programmi... 6 Pannello voci... 10

Il Programma... 3 I moduli... 3 Installazione... 3 La finestra di Login... 4 La suite dei programmi... 6 Pannello voci... 10 MANCA COPERTINA INDICE Il Programma... 3 I moduli... 3 Installazione... 3 La finestra di Login... 4 La suite dei programmi... 6 Pannello voci... 10 epico! è distribuito nelle seguenti versioni: epico!

Dettagli

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

Dettagli

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved. SCENARIO Personas SCENARIO È una delle tecniche che aiuta il designer a far emergere le esigente dell utente e il contesto d uso. Gli scenari hanno un ambientazione, attori (personas) con degli obiettivi,

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

Guida Software GestioneSpiaggia.it

Guida Software GestioneSpiaggia.it Caratteristiche Guida Software GestioneSpiaggia.it 1. Gestione prenotazioni articoli (ombrellone, cabina, ecc ) ed attrezzature (sdraio, lettino ecc ) 2. Visualizzazione grafica degli affitti sia giornaliera

Dettagli

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,

Dettagli

Statistica 4038 (ver. 1.2)

Statistica 4038 (ver. 1.2) Statistica 4038 (ver. 1.2) Software didattico per l insegnamento della Statistica SERGIO VENTURINI, MAURIZIO POLI i Il presente software è utilizzato come supporto alla didattica nel corso di Statistica

Dettagli

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

marketing highlights Google Analytics A cura di: dott. Fabio Pinello

marketing highlights Google Analytics A cura di: dott. Fabio Pinello marketing highlights Google Analytics A cura di: dott. Fabio Pinello Google Analytics è uno strumento gratuito fornito da Google per monitorare il traffico di visite dei siti web su cui è installato. Cos

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

SPC e distribuzione normale con Access

SPC e distribuzione normale con Access SPC e distribuzione normale con Access In questo articolo esamineremo una applicazione Access per il calcolo e la rappresentazione grafica della distribuzione normale, collegata con tabelle di Clienti,

Dettagli

On-line Corsi d Informatica sul web

On-line Corsi d Informatica sul web On-line Corsi d Informatica sul web Corso base di FrontPage Università degli Studi della Repubblica di San Marino Capitolo1 CREARE UN NUOVO SITO INTERNET Aprire Microsoft FrontPage facendo clic su Start/Avvio

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

Metodi statistici per le ricerche di mercato

Metodi statistici per le ricerche di mercato Metodi statistici per le ricerche di mercato Prof.ssa Isabella Mingo A.A. 2014-2015 Facoltà di Scienze Politiche, Sociologia, Comunicazione Corso di laurea Magistrale in «Organizzazione e marketing per

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

www.filoweb.it STAMPA UNIONE DI WORD

www.filoweb.it STAMPA UNIONE DI WORD STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

Corso introduttivo all utilizzo di TQ Qualifica

Corso introduttivo all utilizzo di TQ Qualifica Corso introduttivo all utilizzo di TQ Qualifica Le pagine che seguono introducono l utente all uso delle principali funzionalità di TQ Qualifica mediante un corso organizzato in quattro lezioni. Ogni lezione

Dettagli

COSTER. Import/Export su SWC701. SwcImportExport

COSTER. Import/Export su SWC701. SwcImportExport SwcImportExport 1 Con SWC701 è possibile esportare ed importare degli impianti dal vostro database in modo da tenere aggiornati più Pc non in rete o non facente capo allo stesso DataBase. Il caso più comune

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

Dettagli

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015 COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015 Vicenza, 3 giugno 2015 Gentile cliente, si ricorda che a partire dall aggiornamento PROFIS 2011.1 è stato automatizzato

Dettagli

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti

Dettagli

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 Progetto ICoNLingua Scienza senza Frontiere CsF- Italia Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 1. Introduzione La valutazione sia in itinere

Dettagli

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

Dettagli

EasyPrint v4.15. Gadget e calendari. Manuale Utente

EasyPrint v4.15. Gadget e calendari. Manuale Utente EasyPrint v4.15 Gadget e calendari Manuale Utente Lo strumento di impaginazione gadget e calendari consiste in una nuova funzione del software da banco EasyPrint 4 che permette di ordinare in maniera semplice

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

I cookie sono classificati in base alla durata e al sito che li ha impostati.

I cookie sono classificati in base alla durata e al sito che li ha impostati. 1. Informativa sui cookie 1.1. Informazioni sui cookie I siti Web si avvalgono di tecniche utili e intelligenti per aumentare la semplicità di utilizzo e rendere i siti più interessanti per ogni visitatore.

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

INSERIMENTO DATI BASILARI

INSERIMENTO DATI BASILARI PASSO PASSO. Questo applicativo software nasce con l idea di essere molto semplice da usare. Di fatto lo è ed infatti non dispone di un help in linea all interno dello stesso. Tuttavia ci sentiamo in dovere

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

Corso sul pacchetto R

Corso sul pacchetto R Corso sul pacchetto R Introduzione ad R http://www.r-project.org ! R è un ambiente di sviluppo specifico per elaborare dati, eseguire calcoli ed effettuare rappresentazioni grafiche, che utilizza un linguaggio

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Come archiviare i dati per le scienze sociali

Come archiviare i dati per le scienze sociali Come archiviare i dati per le scienze sociali ADPSS-SOCIODATA Archivio Dati e Programmi per le Scienze Sociali www.sociologiadip.unimib.it/sociodata E-mail: adpss.sociologia@unimib.it Tel.: 02 64487513

Dettagli

Elementi di Psicometria con Laboratorio di SPSS 1

Elementi di Psicometria con Laboratorio di SPSS 1 Elementi di Psicometria con Laboratorio di SPSS 1 29-Analisi della potenza statistica vers. 1.0 (12 dicembre 2014) Germano Rossi 1 germano.rossi@unimib.it 1 Dipartimento di Psicologia, Università di Milano-Bicocca

Dettagli

Come modificare la propria Home Page e gli elementi correlati

Come modificare la propria Home Page e gli elementi correlati Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente Prerequisiti Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente L opzione Provvigioni agenti è disponibile per le versioni Vendite, Azienda Light e Azienda Pro. Introduzione

Dettagli

DINAMIC: gestione assistenza tecnica

DINAMIC: gestione assistenza tecnica DINAMIC: gestione assistenza tecnica INSTALLAZIONE SU SINGOLA POSTAZIONE DI LAVORO PER SISTEMI WINDOWS 1. Installazione del software Il file per l installazione del programma è: WEBDIN32.EXE e può essere

Dettagli

Progetto di Ingegneria del Software 2. SWIMv2

Progetto di Ingegneria del Software 2. SWIMv2 Progetto di Ingegneria del Software 2 2012/2013 SWIMv2 Guida di installazione Docente: Prof. Luca Mottola Davide Brambilla Antonio Caputo Paolo Caputo 1 Introduzione La piattaforma è stata sviluppata come

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti. SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo

Dettagli