Strumenti Utente

Strumenti Sito


matematica:asd:asd_19:progetto_19

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
matematica:asd:asd_19:progetto_19 [05/06/2020 alle 15:13 (5 anni fa)] – creata Roberto Grossimatematica:asd:asd_19:progetto_19 [24/06/2020 alle 06:58 (5 anni fa)] (versione attuale) Roberto Grossi
Linea 1: Linea 1:
 ===== Progetto di ASD, anno accademico 2019/20 ===== ===== Progetto di ASD, anno accademico 2019/20 =====
  
-Questo progetto sostituisce l'esame scritto del corso. Utilizza i dati dei trasporti locali della città di Parigi e chiede di realizzare un "city route planner", che permette di stabilire il percorso tra due fermate in città fornite come interrogazione. I passi concettuali sono i seguenti:+Questo progetto sostituisce l'esame scritto del corso. Utilizza i dati dei trasporti locali della città di Parigi e chiede di realizzare un "city route planner", che permette di stabilire il percorso tra due fermate fornite come interrogazione. I passi concettuali sono i seguenti:
  
   - utilizzare i dati per la città di Parigi [dettagli di seguito];   - utilizzare i dati per la città di Parigi [dettagli di seguito];
Linea 10: Linea 10:
   - elencare i mezzi per arrivare in orario (come stimato nel punto 5)   - elencare i mezzi per arrivare in orario (come stimato nel punto 5)
  
-I dati per Parigi possono essere scaricati da questa directory (occorre accedere tramite Università di Pisa): https://drive.google.com/drive/folders/118FKFni-bPGvX84DqGPz0M-Dc4UKH710?usp=sharing +I dati per Parigi possono essere scaricati accedendo alle pagine di Microsoft Teams per il corso, nella sezione "files", c'è il folder denominato "Progetto_ASD_2019_2020"
  
 La descrizione dei campi utilizzati in tali dati si trova nel seguente articolo, a partire dalla pagina 10: [[https://www.nature.com/articles/sdata201889|Kujala, R., Weckström, C., Darst, R. et al. A collection of public transport network data sets for 25 cities. Sci Data 5, 180089 (2018).]] La descrizione dei campi utilizzati in tali dati si trova nel seguente articolo, a partire dalla pagina 10: [[https://www.nature.com/articles/sdata201889|Kujala, R., Weckström, C., Darst, R. et al. A collection of public transport network data sets for 25 cities. Sci Data 5, 180089 (2018).]]
  
-I dati forniti sono presi da un data set reale e non sono tutti strettamente necessari allo svolgimento del progetto. Occorre quindi procedere per gradi:+I dati forniti sono presi da un data set reale e non sono tutti strettamente necessari allo svolgimento del progetto. Occorre quindi procedere per gradi (che poi sono anche i criteri di valutazione del progetto):
  
   * definire chiaramente l’obiettivo   * definire chiaramente l’obiettivo
Linea 23: Linea 23:
 Si noti che il progetto va svolto modellando il problema come un problema su grafi (orientati o meno) in cui i nodi e gli archi sono etichettati. Si noti che il progetto va svolto modellando il problema come un problema su grafi (orientati o meno) in cui i nodi e gli archi sono etichettati.
  
 +
 +//Nota.// Nella soluzione proposta è sempre possibile camminare tra due fermate, come alternativa agli altri mezzi, alla [[https://en.wikipedia.org/wiki/Preferred_walking_speed|velocità di 5km all'ora]]. 
 +
 +//Nota sul formato dei file.// I file che terminano in *.csv (textual comma separated values), sono utilizzati come formato semplice di scambio: ogni riga testuale rappresenta un "record" i cui campi sono separati da un punto e virgola nel nostro caso. Occorre quindi leggere una linea alla volta di ciascun file e separare i campi. Per esempio, possiamo reindirizzare l'input da tastiera in modo che il comando di lettura ''cin'' legga da file invece che da tastiera, usando il comando:
 +
 +<code>freopen("file.csv", "r", stdin);</code>
 +
 +A questo punto possiamo leggere ogni riga di ''file.csv'' come stringa C++ ed estrarne i campi separati dal delimitatore ';'. Iterando più volte sulla riga, possiamo ottenere tutti i campi.
 +
 +<code>
 +using namespace std;
 +string s;
 +cin >> s;
 +string delimitatore = “;”;
 +string campo = s.substr(0, s.find(delimitatore)); 
 +</code>
  
matematica/asd/asd_19/progetto_19.1591369980.txt.gz · Ultima modifica: 05/06/2020 alle 15:13 (5 anni fa) da Roberto Grossi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki