Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-08-2009, 16:45   #1
agosteeno
Member
 
Iscritto dal: Aug 2009
Messaggi: 119
[C] Calcolo itinerari

Salve a tutti, posto questo messaggio per chiedervi qualche consiglio riguardo un progettino che devo svolgere. Sostanzialmente devo scrivere (in c come da titolo) un modulo che, data un orario, una data, un origine e una destinazione calcoli un (in realta' vari) itinerario che colleghi questi luoghi tramite mezzi pubblici a partire dalla data e dall'orario specificati. Gli orari e le tratte sono contenuti in opportuni file di testo, dal quale il modulo deve attingere per fare i calcoli.
Io pensavo di inizare cercando l'origine considerata tra i vari file e considerare le possibili destinazioni e, contemporaneamente, cercare la destinazione tra i file e considerare le possibili origini. A questo punto, in maniera "ricorsiva" continuare con i risultati di queste operazioni fino a quando non si incontrano origine e destinazione.
Quello che mi rende perplesso e' che il costo puo' essere spropositato sia in termini di memoria che di tempo di elaborazione, anche se i file dai quali attingere fossere piccoli.
Vi ringrazio in anticipo per l'eventuale collaborazione, accetto qualsiasi tipo di consiglio...
agosteeno è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2009, 20:49   #2
british
Member
 
L'Avatar di british
 
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
prova a guardare:

http://en.wikipedia.org/wiki/Dijkstra's_algorithm

http://en.wikipedia.org/wiki/Bellman-Ford_algorithm

potrebbero fare al caso tuo.

ciao!

british
british è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2009, 11:29   #3
agosteeno
Member
 
Iscritto dal: Aug 2009
Messaggi: 119
Grazie per la risposta. Naturalmente avevo gia' preso in considerazione questi algoritmi. Sopratutto quello di Dijkstra, in quando prevedo di nn avere costi negativi nel grafo, rendendo quindi inutile usare quello di Bellman-Ford.
Il problema che maggiormente mi preoccupa e' il costo computazionale: infatti il programma potenzialmente potrebbe ricevere centinaia se nn migliaia possibili "archi". Infatti potrebbe ricevere il percorso di tutti i treni, i pullman, le navi e gli aerei d'italia. A questo proposito pensavo infatti di fare la ricerca sia dal punto di partenza che, al contrario diciamo, dal punto di origine, in modo da poter bloccare il tutto quando si incrociano i risultati.
Inoltre con Dijkstra trovo i cammini minimi nel grafo, ma nn e' necessariamente questo il criterio che piu' mi interesserebbe. Potrei sia cercare il cammino piu' breve (inteso come orario) che quello con meno scambi, ma potrei anche restituire itinerari simili, senza particolari differenze di costo, giusto per dare un'alternativa (per intenderci: origine Firenze, destinazione alghero: it1: firenze-olbia aereo, olbia-alghero treno... it2: firenze-pisa treno, pisa-alghero aereo).
agosteeno è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2009, 12:52   #4
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12936
Prova a dare un'occhiata all'algoritmo A*.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2009, 15:59   #5
agosteeno
Member
 
Iscritto dal: Aug 2009
Messaggi: 119
Nn mi e' ben chiaro come funziona. In particolare nn ho capito cosa si intende per stima euristica. In pratica mi viene chiesto di stimare la distanza fino alla destinazione. Ma nn riesco a capire come poter implementare questa cosa nel mio problema. Attualmente mi sembra piu' semplice da implementare l'algoritmo di Dijkstra...
agosteeno è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2009, 21:31   #6
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da agosteeno Guarda i messaggi
Salve a tutti, posto questo messaggio per chiedervi qualche consiglio riguardo un progettino che devo svolgere. Sostanzialmente devo scrivere (in c come da titolo) un modulo che, data un orario, una data, un origine e una destinazione calcoli un (in realta' vari) itinerario che colleghi questi luoghi tramite mezzi pubblici a partire dalla data e dall'orario specificati. Gli orari e le tratte sono contenuti in opportuni file di testo, dal quale il modulo deve attingere per fare i calcoli.
Io pensavo di inizare cercando l'origine considerata tra i vari file e considerare le possibili destinazioni e, contemporaneamente, cercare la destinazione tra i file e considerare le possibili origini. A questo punto, in maniera "ricorsiva" continuare con i risultati di queste operazioni fino a quando non si incontrano origine e destinazione.
Quello che mi rende perplesso e' che il costo puo' essere spropositato sia in termini di memoria che di tempo di elaborazione, anche se i file dai quali attingere fossere piccoli.
Vi ringrazio in anticipo per l'eventuale collaborazione, accetto qualsiasi tipo di consiglio...
Costruisici la matrice delle adiacenze e poi passi tutto a Dijkstra.
Poiche' immagino che tu non sappia cosa siano, ti consiglio di leggere bene, anche solo su Wikipedia, di cosa si tratta.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2009, 12:20   #7
agosteeno
Member
 
Iscritto dal: Aug 2009
Messaggi: 119
Mmm. Sostanzialmente era quello che volevo fare io anche se effettivamente nn avevo pensato di metterlo come matrice di adiacenza. Infatti anche se so' di cosa si tratta, nn le ho mai usate in pratica, quindi nn mi e' venuta in mente. Grazie per il consiglio. Inizio a lavorare e se ho altri dubbi vi ricontattero'.
agosteeno è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2009, 17:13   #8
agosteeno
Member
 
Iscritto dal: Aug 2009
Messaggi: 119
Salve di nuovo a tutti. Siccome alla fine era agosto ed ero in vacanza nn ho piu' fatto nulla. Ora pero' le vacanze sono finite e quindi mi rimetto a lavoro. Ora che ci ho pensato su' un po' meglio, nn posso risolvere il problema con le matrici di adiacenza: infatti la matrice potrebbe risultare troppo grande. Gia' se dovessi considerare solo i treni e tutte le possibili destinazioni risulterebbe dell'ordine delle decine di migliaia... L'unico approccio che mi viene in mente e' di costruire un grafico volta per volta e scegliere in qualche modo come costruire la parte successiva...
agosteeno è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2009, 22:34   #9
fracarro
Senior Member
 
L'Avatar di fracarro
 
Iscritto dal: Jul 2002
Messaggi: 869
Quote:
Originariamente inviato da agosteeno Guarda i messaggi
Salve di nuovo a tutti. Siccome alla fine era agosto ed ero in vacanza nn ho piu' fatto nulla. Ora pero' le vacanze sono finite e quindi mi rimetto a lavoro. Ora che ci ho pensato su' un po' meglio, nn posso risolvere il problema con le matrici di adiacenza: infatti la matrice potrebbe risultare troppo grande. Gia' se dovessi considerare solo i treni e tutte le possibili destinazioni risulterebbe dell'ordine delle decine di migliaia... L'unico approccio che mi viene in mente e' di costruire un grafico volta per volta e scegliere in qualche modo come costruire la parte successiva...
Riguardo la dimensione della matrice, hai problemi di memoria? Pur avendo milioni di celle non dovrebbe occupare molto spazio in memoria.

L'algoritmo di Dijkstra può essere implementato in diversi modi (la chiave sta nella struttura dati utilizzata per implementare la coda a priorità). Ad ogni modo l'algoritmo è in grado di risolvere in pochi secondi problemi su grafi contenenti anche milioni di nodi.
__________________
Notebook: MBP 15 i7 Retina, (Mid 2014)
fracarro è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2009, 00:05   #10
agosteeno
Member
 
Iscritto dal: Aug 2009
Messaggi: 119
Ho capito quale era il problema. Io ero convinto di dover scorrere i file con gli orari ogni volta che dovevo effettuare una computazione. Come ben capite in questo modo sarebbe uscito un grafo esageratamente grande ogni volta, specie se si considerano i treni, gli autobus, aerei ecc di tutta italia se nn d'europa!!! In realta' devo "costruire" il grafo una volta per tutte all'avvio e poi usare sempre quello, quasi come fosse un database... ora il problema si riduce di molto. Penso si possa realizzare senza troppi problemi con un algoritmo classico... grazie per l'aiuto cmq...

ah, anche se l'algoritmo usato dovrebbe essere veloce, la struttura uscirebbe molto molto grande... andrebbe ad essere potenzialmente infinita... in ogni caso dovrei anche considerare che queste operazioni nn siano effettuate una alla volta, ma potrebbero essere parecchie contemporaneamente... infatti questo programma e' pensato come il nucleo di un'applicazione web o cose simili, alla quale possono essere fatte tante richieste...

Ultima modifica di agosteeno : 02-09-2009 alle 00:10. Motivo: aggiunta
agosteeno è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2009, 09:19   #11
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da agosteeno Guarda i messaggi
ah, anche se l'algoritmo usato dovrebbe essere veloce, la struttura uscirebbe molto molto grande... andrebbe ad essere potenzialmente infinita... in ogni caso dovrei anche considerare che queste operazioni nn siano effettuate una alla volta, ma potrebbero essere parecchie contemporaneamente... infatti questo programma e' pensato come il nucleo di un'applicazione web o cose simili, alla quale possono essere fatte tante richieste...
Non sono un eseperto, ma rifelttendonci penso siano due cose distinte (l'esecuzione dell' algoritmo con prduzione di un output e la gestione di un servizio che soddisfi richieste da più client).

Cioè io qui vedo un'entità software che è il tuo algoritmo.
Prende un input, elabora, sputa un output.

Poi vedo un'altro strato/entità software, che usa il tuo algoritmo ma il cui scopo è ricevere le richieste dei client e usare la migliore strategia/politica di gestione per rispondere a tutti nel modo più veloce.
Possono esserci diversi modi; sicuramente dovrai gestire l'accodamento delle richieste da soddisfare, ma potrebbe essere anche il caso di eseguire il caching dei risultati già calcolati per non doverli ripetere (con quale criterio non lo so, è tutto da decidere in base al contesto).
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2009, 09:34   #12
agosteeno
Member
 
Iscritto dal: Aug 2009
Messaggi: 119
mi sono spiegato male... nn devo produrre tutto il lavoro, ma solo il modulo interno diciamo, quello che fa' la computazione vera e propria. Solo che siccome questo verra' usato in maniera intensiva, devo curare particolarmente l'aspetto della velocita' della computazione (e naturalmente anche lo spazio utilizzato)...
agosteeno è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Meta, Snap, TikTok e YouTube: la prossim...
Daredevil Born Again seconda stagione: o...
IPTV illegali, Operazione 'Switch off': ...
Gli agenti di IA sono ovunque, e incontr...
Un'email inviata per errore svela che Am...
Samsung ha valutato il tasto fotocamera ...
L'Agenzia Spaziale Europea lancia un'IA ...
L'UE sfida Google sull'IA: integrazione ...
Problemi su Google Pixel dopo gli aggior...
SK hynix ha fatto boom: nel 2025 risulta...
Facebook e Instagram bloccano ICE List, ...
La Francia dice addio a Zoom e Teams: il...
Zotac definisce i prezzi della memoria i...
Attacco a SoundCloud: 29,8 milioni di pr...
Fastweb + Vodafone e AI4I insieme per po...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:58.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v