Closed vitopalmis closed 4 years ago
Innanzitutto scusa per il ritardo con cui rispondo a questa proposta. Il tipo di applicazione è interessante ed i data set sembrano adeguati. Non è troppo chiaro quali siano in vincoli specificati dall'utente. In altre parole, qual è l'obiettivo che la funzione ricorsiva dovrà massimizzare? Se io scelgo di stare nella provincia (o comune) X, e mi interessano le attività Y, non sarebbe semplice (banale?) trovare le attività di tipo Y che trovo ad una distanza massima di K kilometri (facendo un semplice calcolo di cammini minimi)? O ci sono ulteriori vincoli per cui quest soluzione banale non sarebbe accettabile? Ti chiederei di chiarire questo aspetto.
Mi scusi se le rispondo solo ora.
Precisazione: a seguire, con il termine 'attività', indico, per semplicità, 'luoghi di interesse', 'attività turistiche' e 'stabilimenti balneari', nominati nella descrizione già data in precedenza.
Riguardo ai vincoli specificati dall'utente, egli imposterebbe un budget massimo che sarebbe disposto a spendere, la distanza massima che sarebbe disposto a percorrere per raggiungere una determinata meta, il giorno della partenza ed il giorno del ritorno.
In queste due date appena citate, sono implicite la durata della vacanza ed il periodo dell'anno durante il quale la si vorrebbe svolgere. Per quanto riguarda il periodo, esso è utile per escludere la possibilità di andare in un lido nei mesi non estivi (gli stabilimenti balneari si ipotizzerebbero aperti solo nei mesi che vanno da inizio maggio a fine settembre).
Inoltre, precedentemente, non ho specificato abbastanza l'importanza di alcuni di questi vincoli, quali la durata in giorni della vacanza ed il budget massimo.
Il budget massimo è un vincolo che riguarda la somma dei costi dei pernottamenti e di tutte le attività svolte, di conseguenza, al variare delle attività svolte, varierà la spesa complessiva.
Il numero di giorni pone invece un vincolo sulla quantità di attività che è possibile svolgere durante la vacanza.
All'interno dell'applicazione si ipotizzerebbe che non sia possibile svolgere più di due differenti attività nell'arco della stessa giornata (una al mattino ed una al pomeriggio).
In base a quest'ultimo vincolo si viene a creare una situazione nella quale si hanno due possibili casi:
1) numeroAttivitaSelezionate >= 2numeroGiorniVacanza
2) numeroAttivitaSelezionate < 2numeroGiorniVacanza.
In entrambi i casi, una ricorsione restituirebbe una lista contenente le varie combinazioni di attività, cioè una lista contenente delle liste di Attivita (List<List
ok, va bene, puoi procedere con i chiarimenti forniti (che ti pregherei di riportare nel documento finale)
Studente proponente
s248020 Vito Palmisano
Titolo della proposta
Creazione di un'applicazione per il turismo della regione Puglia
Descrizione del problema proposto
L'obiettivo prefissato consiste nella creazione di un’applicazione, in grado di garantire all’utente un’esperienza di viaggio sul territorio Pugliese, che soddisfi a pieno le sue esigenze e che rispecchi la tipologia di vacanza desiderata. A tal proposito, all’utente verrebbero proposti degli itinerari sviluppati a partire da alcune sue preferenze: le zone che principalmente vorrebbe visitare, il budget che sarebbe disposto a spendere, la distanza massima che vorrebbe percorrere, il periodo dell'anno ed il numero di giorni a disposizione.
Descrizione della rilevanza gestionale del problema
Dal punto di vista gestionale l'applicazione avrebbe rilevanza per il turismo Pugliese, in quanto consentirebbe all’utente di cercare con una singola applicazione e attraverso pochi e semplici passaggi, sia le attività da svolgere che i luoghi in cui pernottare.
Descrizione dei data-set per la valutazione
Si utilizzeranno più data-set, i quali saranno principalmente di 2 tipologie. Una prima tipologia di data-set conterrà informazioni riguardanti b&b e strutture simili presenti sull'intero territorio Pugliese. Una seconda tipologia di data-set conterrà le informazioni riguardanti: 1) attività turistiche (escursioni, attività sportive, attività di formazione); 2) luoghi di interesse (castelli, parchi, riserve, teatri, chiese, grotte, masserie, trulli); 3) stabilimenti balneari. I vari data-set sono già stati trovati ed analizzati, per quanto possibile, per verificare la correttezza dei dati. Per quanto riguarda la prima tipologia è stato trovato un data-set delle strutture alberghiere e dei b&b che si affidano al portale Airbnb, aggiornato ad Aprile 2020. Questo data-set è fornito gratuitamente dal sito 'insideairbnb.com' e non contiene dati sensibili riguardanti gli host. La seconda tipologia di data-set comprende al momento 3 data-set, uno per ognuna delle tre descrizioni date sopra. Anche questi data-set sono stati trovati su siti che ne forniscono l'utilizzo gratuito ed in tutti i casi l'autore viene identificato come 'Regione Puglia'. E' importante specificare che tutti i data-set contengono le informazioni riguardanti il comune, la latitudine e la longitudine, in cui è situato l'elemento specifico del data-set. Vi è inoltre un ulteriore data-set contente esclusivamente i dati sui singoli comuni, così da poter collegare facilmente fra di loro i data-set descritti precedentemente.
Descrizione preliminare degli algoritmi coinvolti
Il primo passo consiste nel creare un grafo non orientato pesato, i cui vertici saranno i vari comuni della regione ed il peso sarà la distanza fra i comuni. Ovviamente non tutti i comuni saranno collegati, ma solo quelli che risultano avere una distanza massima fra loro, inferiore ad un certo valore (ipotizzabile, in maniera preliminare, attorno ai 20km). Le distanze sarebbero calcolate attraverso l'utilizzo dei dati relativi a latitudine e longitudine presenti in ogni data-set. Il secondo passo consiste, una volta ricevuti i dati di input inseriti dall'utente, nel creare nuovi nodi all'interno del grafo, corrispondenti ai b&b della zona scelta ed alle attività che hanno come tipologia una di quelle scelte dall'utente. Questi nodi saranno connessi al nodo corrispondente al comune in cui il b&b/attività ha sede. Terzo passo sarà quello di eseguire una ricorsione per trovare le migliori combinazioni di attività e b&b rispettanti i dati di input.
Descrizione preliminare delle funzionalità previste per l’applicazione software
L'Utente avrà la possibilità di selezionare, da un apposito menu a tendina, la provincia in cui vorrebbe svolgere la vacanza. Avrà anche la possibilità, se lo desidera, di scendere più nel dettaglio, selezionando il comune specifico in cui vorrebbe soggiornare. Selezionerà successivamente la tipologia di attività che gradirebbe svolgere, che siano esse di tipo culturale, ricreativo o sportivo. Una volta impostati il budget che è disposto a spendere, la distanza massima che è disposto a percorrere per raggiungere un qualsiasi punto d'interesse, il periodo dell'anno in cui vorrebbe svolgere la vacanza e la sua durata, l'utente riceverà in output una lista delle attività corrispondenti alle tipologie scelte, accompagnata da una lista dei b&b più qualificati presenti nella zona. Le liste fornite saranno tali da rispettare i limiti imposti dall'utente.