Programmare un viaggio richiede sempre molto tempo, perchè ci si vuole assicurare di poter ottenere l’esperienza migliore in relazione al budget personale. Solitamente, la ricerca dura più settimane per osservare l’oscillazione dei prezzi e si cerca di prenotare il più presto possibile per mantenere il costo totale basso.
L’obiettivo di questa applicazione è offrire all’utente una lista di voli e sistemazioni che rispettino i vincoli inseriti per poter rendere semplice, intuitiva e veloce la prenotazione di un viaggio simulato nel primo quarto del 2022. Oltre alla ricerca ottimizzata di un volo aereo, se la città di destinazione è una delle 6 metropoli supportate, l’applicazione permette anche la ricerca ottimizzata di una sistemazione AirBnB secondo le preferenze dell’utente
Descrizione della rilevanza gestionale del problema
L’interesse dal punto di vista gestionale si trova nel min-maxing parametrico che rispetti i vincoli inseriti dall’utente, oltre che nella semplificazione e automatizzazione di un processo che altrimenti sarebbe lungo e tedioso. Fornendo il data set adatto, con prezzi previsti tramite algoritmi statistici e voli programmati per il futuro, l’applicazione potrebbe potrebbe essere a tutti gli effetti operativa per la scelta delle opzioni migliori, indirizzando l’utente e risparmiandogli ore di ricerca. In caso di dati dinamici, come sono effettivamente i prezzi di voli e hotel, sarebbe anche interessante usare l’applicazione per studiare le tendenze e individuare il momento migliore per l’acquisto
Descrizione dei data-set per la valutazione
Una rappresentazione della struttura del data-set che ho creato è presente in allegato.
Per quanto riguarda la ricerca dei voli, ho utilizzato dati presi dall’ Airline Origin and Destination Survey (DB1B), un data-set fornito direttamente dal United States Department of Transportation (al link https://www.transtats.bts.gov/DatabaseInfo.asp?QO_VQ=EFI&DB_URL=) che raccoglie informazioni sul 10% dei voli con aeroporto di partenza e aeroporto di atterraggio negli USA dal 1993 ad oggi.
Date le dimensioni, ho estratto le informazioni relative al primo quarto del 2022, per poter avere una rappresentazione realistica di tratte e prezzi.
La tabella Coupon contiene circa 9 milioni di righe e contiene le informazioni su origine e destinazione dei voli. Queste sono le colonne che ho deciso di utilizzare tra quelle offerte dalla fonte.
Campo
Significato
ItinID
Itinerary ID
OriginAirportID
Origin Airport, Airport ID. An identification number assigned by US DOT to identify a unique airport. Use this field for airport analysis across a range of years because an airport can change its airport code and airport codes can be reused.
OriginAirportSeqID
Origin Airport, Airport Sequence ID. An identification number assigned by US DOT to identify a unique airport at a given point of time. Airport attributes, such as airport name or coordinates, may change over time.
Quarter
Quarter (1-4)
Origin
Origin Airport Code
OriginStateFips
Origin Airport, State FIPS Code
OriginState
Origin Airport, State Code
OriginStateName
Origin State Name
DestAirportID
Destination Airport, Airport ID. An identification number assigned by US DOT to identify a unique airport. Use this field for airport analysis across a range of years because an airport can change its airport code and airport codes can be reused.
DestAirportSeqID
Destination Airport, Airport Sequence ID. An identification number assigned by US DOT to identify a unique airport at a given point of time. Airport attributes, such as airport name or coordinates, may change over time.
Dest
Destination Airport Code
DestStateFips
Destination Airport, State FIPS Code
DestState
Destination Airport, State Code
DestStateName
Destination State Name
La tabella Ticket, facente parte dello stesso data-set originale di Coupon, contiene quasi 4 milioni di righe e la sua utilità è rappresentata dalle informazioni sui prezzi dei biglietti aerei. Queste sono le colonne che ho deciso di utilizzare tra quelle offerte dalla fonte.
Campo
Significato
ItinID
Itinerary ID
FarePerMile
Itinerary Fare Per Miles Flown in Dollars (ItinFare/MilesFlown).
Passengers
Number of Passengers
ItinFare
Itinerary Fare Per Person
Distance
Itinerary Distance (Including Ground Transport)
La tabella Airport è utile per la corrispondenza aeroporti-città. Ho estratto la tabella airports dal database dell’esercitazione exflightdelays svolta durante il corso, che contiene circa 300 righe. Queste sono le colonne che ho deciso di utilizzare tra quelle offerte dalla fonte.
Campo
Significato
ID
Id dell’aeroporto
IATA_CODE
Codice IATA dell’aeroporto
AIRPORT
Nome dell’aeroporto
CITY
Città dove si trova l’aeroporto
STATE
Stato dove si trova l’aeroporto
Per quanto riguarda la tabella Airbnb, data l’impossibilità di reperire un data-set soddisfacente sull’interità degli USA, ho optato per una più vasta offerta di alloggi a discapito del numero di città supportate. Le città supportate sono 6 tra le più grandi degli Stati Uniti: New York, Los Angeles, San Francisco, Washington D.C., Chicago e Boston.
Le informazioni relative agli AirBnB provengono da Kaggle (al link: https://www.kaggle.com/datasets/rudymizrahi/airbnb-listings-in-major-us-cities-deloitte-ml?select=train.csv). L’utente ha partecipato a una competizione il cui obiettivo è prevedere il costo di diverse offerte presenti su AirBnB nelle maggiori città statunitensi. Data la natura di studio e di previsione della colonna log_price, i valori non possono essere ritenuti reali, ma sono abbastanza realistici da permettere l’utilizzo per la mia applicazione. La tabella contiene circa 230 mila righe.
Campo
Significato
id
listing id
log_price
natural logarithm of the predicted price
property_type
property_type
accomodates
number of people the property can accomodate
city
city
name
name of the listing
number_of_reviews
number of reviews
reviews_score_rating
rating of the listing calculated from the reviews
Descrizione preliminare degli algoritmi coinvolti
Intendo creare un grafo semplice orientato e pesato con gli aeroporti come vertici e i voli come archi, utilizzando il costo del volo per il peso.
Il passo successivo sarà creare uno o più algoritmi di visita ricorsivi per raggiungere la destinazione, mirati all’ottenere il volo o una lista di essi che rispetti i parametri inseriti e sia la soluzione migliore.
Se la destinazione fa parte delle 6 città supportate, un successivo algoritmo ricorsivo scorrerà la lista degli AirBnB presenti nella città di arrivo e sarà utilizzato per la ricerca dell’hotel più adatto alla richiesta.
Descrizione preliminare delle funzionalità previste per l’applicazione software
Agli occhi dell’utente, l’interfaccia offrirà la scelta di una città di partenza e una di arrivo, seguita da un’area dove inserire il costo massimo del viaggio e una successiva area dove specificare il numero massimo di scali. In una tabella sottostante sarà visualizzato il risultato, formato da uno o più voli.
Sarà specificato che le funzionalità riguardanti gli AirBnB sono supportate solo se la città di arrivo fa parte delle 6 presenti nel database.
In caso la città di arrivo sia una di quelle supportate, l’interfaccia abiliterà i campi successivi, dove inserire le preferenze sulla sistemazioni da ricercare. Saranno proposti vincoli sul prezzo, sul tipo di proprietà, sulla quantità di persone che può ospitare la casa, sul numero di recensioni e sul rating del locale. Una successiva tabella mostrerà le sistemazioni risultato della ricerca.
Studente proponente
s260448 Campana Riccardo
Titolo della proposta
USA Travel Planner
Descrizione del problema proposto
Programmare un viaggio richiede sempre molto tempo, perchè ci si vuole assicurare di poter ottenere l’esperienza migliore in relazione al budget personale. Solitamente, la ricerca dura più settimane per osservare l’oscillazione dei prezzi e si cerca di prenotare il più presto possibile per mantenere il costo totale basso. L’obiettivo di questa applicazione è offrire all’utente una lista di voli e sistemazioni che rispettino i vincoli inseriti per poter rendere semplice, intuitiva e veloce la prenotazione di un viaggio simulato nel primo quarto del 2022. Oltre alla ricerca ottimizzata di un volo aereo, se la città di destinazione è una delle 6 metropoli supportate, l’applicazione permette anche la ricerca ottimizzata di una sistemazione AirBnB secondo le preferenze dell’utente
Descrizione della rilevanza gestionale del problema
L’interesse dal punto di vista gestionale si trova nel min-maxing parametrico che rispetti i vincoli inseriti dall’utente, oltre che nella semplificazione e automatizzazione di un processo che altrimenti sarebbe lungo e tedioso. Fornendo il data set adatto, con prezzi previsti tramite algoritmi statistici e voli programmati per il futuro, l’applicazione potrebbe potrebbe essere a tutti gli effetti operativa per la scelta delle opzioni migliori, indirizzando l’utente e risparmiandogli ore di ricerca. In caso di dati dinamici, come sono effettivamente i prezzi di voli e hotel, sarebbe anche interessante usare l’applicazione per studiare le tendenze e individuare il momento migliore per l’acquisto
Descrizione dei data-set per la valutazione
Una rappresentazione della struttura del data-set che ho creato è presente in allegato.
Per quanto riguarda la ricerca dei voli, ho utilizzato dati presi dall’ Airline Origin and Destination Survey (DB1B), un data-set fornito direttamente dal United States Department of Transportation (al link https://www.transtats.bts.gov/DatabaseInfo.asp?QO_VQ=EFI&DB_URL=) che raccoglie informazioni sul 10% dei voli con aeroporto di partenza e aeroporto di atterraggio negli USA dal 1993 ad oggi. Date le dimensioni, ho estratto le informazioni relative al primo quarto del 2022, per poter avere una rappresentazione realistica di tratte e prezzi.
La tabella Coupon contiene circa 9 milioni di righe e contiene le informazioni su origine e destinazione dei voli. Queste sono le colonne che ho deciso di utilizzare tra quelle offerte dalla fonte.
La tabella Ticket, facente parte dello stesso data-set originale di Coupon, contiene quasi 4 milioni di righe e la sua utilità è rappresentata dalle informazioni sui prezzi dei biglietti aerei. Queste sono le colonne che ho deciso di utilizzare tra quelle offerte dalla fonte.
La tabella Airport è utile per la corrispondenza aeroporti-città. Ho estratto la tabella airports dal database dell’esercitazione exflightdelays svolta durante il corso, che contiene circa 300 righe. Queste sono le colonne che ho deciso di utilizzare tra quelle offerte dalla fonte.
Per quanto riguarda la tabella Airbnb, data l’impossibilità di reperire un data-set soddisfacente sull’interità degli USA, ho optato per una più vasta offerta di alloggi a discapito del numero di città supportate. Le città supportate sono 6 tra le più grandi degli Stati Uniti: New York, Los Angeles, San Francisco, Washington D.C., Chicago e Boston. Le informazioni relative agli AirBnB provengono da Kaggle (al link: https://www.kaggle.com/datasets/rudymizrahi/airbnb-listings-in-major-us-cities-deloitte-ml?select=train.csv). L’utente ha partecipato a una competizione il cui obiettivo è prevedere il costo di diverse offerte presenti su AirBnB nelle maggiori città statunitensi. Data la natura di studio e di previsione della colonna log_price, i valori non possono essere ritenuti reali, ma sono abbastanza realistici da permettere l’utilizzo per la mia applicazione. La tabella contiene circa 230 mila righe.
Descrizione preliminare degli algoritmi coinvolti
Intendo creare un grafo semplice orientato e pesato con gli aeroporti come vertici e i voli come archi, utilizzando il costo del volo per il peso. Il passo successivo sarà creare uno o più algoritmi di visita ricorsivi per raggiungere la destinazione, mirati all’ottenere il volo o una lista di essi che rispetti i parametri inseriti e sia la soluzione migliore. Se la destinazione fa parte delle 6 città supportate, un successivo algoritmo ricorsivo scorrerà la lista degli AirBnB presenti nella città di arrivo e sarà utilizzato per la ricerca dell’hotel più adatto alla richiesta.
Descrizione preliminare delle funzionalità previste per l’applicazione software
Agli occhi dell’utente, l’interfaccia offrirà la scelta di una città di partenza e una di arrivo, seguita da un’area dove inserire il costo massimo del viaggio e una successiva area dove specificare il numero massimo di scali. In una tabella sottostante sarà visualizzato il risultato, formato da uno o più voli. Sarà specificato che le funzionalità riguardanti gli AirBnB sono supportate solo se la città di arrivo fa parte delle 6 presenti nel database. In caso la città di arrivo sia una di quelle supportate, l’interfaccia abiliterà i campi successivi, dove inserire le preferenze sulla sistemazioni da ricercare. Saranno proposti vincoli sul prezzo, sul tipo di proprietà, sulla quantità di persone che può ospitare la casa, sul numero di recensioni e sul rating del locale. Una successiva tabella mostrerà le sistemazioni risultato della ricerca.