Esercizio Grafi C

di il
4 risposte

Esercizio Grafi C

Salve ragazzi, scrivo per chiedervi dei suggerimenti su come muovervi per questo esercizio in C.
Ho un grafo non orientato e pesato in cui il peso descrive la lunghezza di una strada.
Per ogni nodo del grafo c'è un attributo che indica l'altezza della strada oltre al numero che riconosce il nodo stesso.
Il dilemma è che devo trovare un percorso minimo per raggiungere l'ultimo nodo del grafo e questo percorso deve prevedere prima un cammino tutto in salita e poi uno tutto in discesa. Quindi se sono in un nodo di altezza 20(per esempio) posso continuare a salire in nodi con altezza >20 oppure iniziare la discesa e a quel punto ogni altezza deve essere minore del successivo. Infine,la complessità deve non deve essere maggiore O(n+m) con n numero di vertici ed m numero di archi.
Sapete darmi qualche dritta?

4 Risposte

  • Re: Esercizio Grafi C

    Normale algoritmo di navigazione su un grafo, con constraints!
  • Re: Esercizio Grafi C

    Senza averci messo la testa fino in fondo, direi che potresti partire con l'algoritmo di Dijkstra modificando i parametri di selezione del cammino minimo fra due nodi.
  • Re: Esercizio Grafi C

    Vi ringrazio per le risposte. In realtà non ho dapito benissimo dove mettere mano.
    Anche perchè l'algoritmo di Dijkstra ha complessità superiore a quella che è richiesta.
  • Re: Esercizio Grafi C

    Sono un po' arrugginito, ma dubito che ti abbiamo richiesto O(n+m). Più facilmente sarà O(nm). Dijkstra è O(n+mlogm) (usando la tua nomemclatura) che quindi ha una complessità più bassa.

    Ma magari mi sbaglio...
Devi accedere o registrarti per scrivere nel forum
4 risposte