🎁 Registrati ora e ottieni fino a 30 minuti gratuiti di IA online. Nessuna carta di credito richiesta.

Algoritmo Bellman Ford: guida all'intervista alla codifica

August 18, 2026
Impara l'algoritmo Bellman Ford, traccia il rilassamento dei bordi, rileva i cicli negativi, spiega la complessità e scrivi uno pseudocodice pronto per l'intervista.
Tabella del percorso più breve Bellman Ford con rilassamento dei bordi ripetuto
Algoritmo di Bellman Ford
algoritmo del percorso più breve
rilevamento di cicli negativi
preparazione dell'intervista di codifica

TL;DR: L'algoritmo Bellman Ford trova i percorsi più brevi da un'unica sorgente in un grafico diretto ponderato, anche quando alcuni archi hanno pesi negativi. Inizializza la distanza della sorgente a zero, tutte le altre all'infinito, rilassa ogni bordo fino a V meno 1 volte, quindi esegui un passaggio extra: qualsiasi ulteriore miglioramento dimostra che esiste un ciclo di peso negativo raggiungibile.

Algoritmo Bellman Ford: guida all'intervista alla codifica

Impara l'algoritmo Bellman Ford, traccia il rilassamento dei bordi, rileva i cicli negativi, spiega la complessità e scrivi uno pseudocodice pronto per l'intervista.

Prova YesToTheOffer

Tabella del percorso più breve Bellman Ford con rilassamento dei bordi ripetuto

Cos'è l'algoritmo Bellman Ford?

Bellman Ford è un algoritmo del percorso minimo in stile programmazione dinamica. Dopo il primo passaggio completo, i sentieri più conosciuti utilizzano al massimo un bordo; dopo il secondo, al massimo due spigoli. Un percorso semplice contiene al massimo V meno 1 spigoli, il che spiega sia il conteggio dei cicli che l'argomento della correttezza. A differenza dell'algoritmo di Dijkstra, Bellman Ford non assume pesi degli archi non negativi.

Come spieghi il rilassamento dei bordi?

Per un arco da u a v con peso w, il rilassamento chiede se la distanza[u] + w è minore della distanza[v]. Esegui l'addizione solo quando u è raggiungibile. Se il candidato è migliore, aggiorna distance[v] e imposta predecessor[v] su u. L'array precedente è facoltativo per le distanze, ma consente di ricostruire il percorso effettivo e spiegare chiaramente il risultato.

Lista di controllo dell'intervista a Bellman Ford per distanze, predecessori e cicli negativi

Come rintracciare Bellman Ford in un'intervista?

Utilizza un piccolo grafico e scrivi una riga di distanza per passaggio. Inizia con la sorgente A a 0 e ogni altro vertice all'infinito. Esegui la scansione dell'elenco completo dei bordi in un ordine coerente, registrando ogni aggiornamento. Fermati presto quando un intero passaggio non apporta modifiche. Sii esplicito che l'ordine dei bordi può modificare le righe intermedie ma non le distanze finali corrette quando non esiste un ciclo negativo raggiungibile.

Quale pseudocodice dovresti scrivere?

Creare array di distanza e predecessore, quindi ripetere una scansione completa del bordo V meno 1 volte. Utilizzare un flag modificato per la risoluzione anticipata. Infine, scansiona nuovamente tutti i bordi e segnala un ciclo negativo se una distanza raggiungibile può ancora migliorare. Nel codice di produzione, scegli un tipo numerico che possa contenere somme di percorsi e proteggere la sentinella dell'infinito prima dell'aggiunta.

Quali sono le complessità temporali e spaziali?

L'implementazione standard dell'elenco dei bordi di adiacenza viene eseguita in tempo O(VE) perché può scansionare i bordi E su ciascuno dei passaggi V meno 1, più un passaggio di rilevamento. Utilizza lo spazio ausiliario O (V) per distanze e predecessori. L’arresto anticipato migliora gli input favorevoli, ma il limite del caso peggiore rimane O(VE).

Decisione del colloquioUsa Bellman Ford quandoPreferisci un altro approccio quando
Pesi dei bordiPotrebbero verificarsi fronti negativiTutti i bordi sono non negativi e la velocità è importante
Requisito del cicloRileva un ciclo negativo raggiungibileIl rilevamento del ciclo non è richiesto
ComplessitàO(VE) è accettabileIl grafico è troppo grande o denso per scansioni ripetute

Quando dovresti scegliere Bellman Ford invece di Dijkstra?

Scegliere Bellman Ford quando sono consentiti i pesi dei fronti negativi o quando l'intervistatore richiede esplicitamente il rilevamento del ciclo negativo raggiungibile. Scegli Dijkstra con una coda di priorità per i grafici i cui pesi dei bordi sono tutti non negativi perché normalmente è più veloce. Per i percorsi più brevi costituiti da tutte le coppie, chiarire innanzitutto la densità del grafico, i pesi negativi e se sono necessari percorsi o solo distanze.

Quali errori dovresti evitare?

Non rilassatevi da un vertice irraggiungibile, non confondete un fronte negativo con un ciclo negativo, né affermate che ogni ciclo negativo invalida il risultato: solo un ciclo raggiungibile dalla sorgente ne influenza i cammini più brevi. Evitare inoltre di eseguire solo i passaggi V meno 2, di saltare il passaggio di rilevamento finale o di ricostruire un percorso senza mantenere i predecessori.

Come puoi esercitarti nella spiegazione?

Esercitati in tre versioni: una definizione di 30 secondi, una spiegazione della correttezza di due minuti e un'implementazione completa. Testare un vertice irraggiungibile, un fronte negativo senza ciclo, un ciclo negativo raggiungibile e un grafico che si stabilizzi presto. Ciò separa il codice memorizzato dalla comprensione genuina.

Usa l'intelligenza artificiale per organizzare il materiale che già capisci, provare le spiegazioni e rivedere le tue prestazioni. Seguire le regole del datore di lavoro e dell'organismo di valutazione e non inventare mai esperienze, numeri o risultati.

Continua con la guida per il copilota al colloquio con intelligenza artificiale, la preparazione basata sul curriculum e il flusso di lavoro di revisione post-colloquio.

Domande frequenti

FAQ

Bellman Ford può gestire pesi negativi?

SÌ. Può gestire pesi del bordo negativo. Non può produrre percorsi minimi finiti per i vertici interessati da un ciclo di peso negativo raggiungibile, motivo per cui il passaggio di rilassamento extra è essenziale.

Perché Bellman Ford esegue V meno 1 volte?

Qualsiasi percorso semplice ha al massimo V meno 1 spigoli. Dopo il passaggio k, l'algoritmo ha considerato i percorsi minimi utilizzando al massimo k archi, quindi V meno 1 passaggi coprono ogni percorso minimo semplice.

In che modo Bellman Ford rileva un ciclo negativo?

Dopo i passaggi normali, scansiona nuovamente tutti i bordi. Se una distanza raggiungibile può ancora diminuire, esiste un ciclo di peso negativo raggiungibile perché un percorso semplice dovrebbe già essere finalizzato.

Qual è la complessità di Bellman Ford?

L'algoritmo standard utilizza il tempo O(VE) e lo spazio ausiliario O(V). Un flag di uscita anticipata può interrompere il ciclo quando un passaggio completo non apporta aggiornamenti, ma non modifica il limite del caso peggiore.

Bellman Ford è migliore di Dijkstra?

Nessuno dei due è universalmente migliore. Bellman Ford supporta i pesi negativi e il rilevamento dei cicli; Dijkstra è generalmente più veloce quando tutti i pesi dei bordi sono non negativi.

Esercitati con le prove, non con un copione

YesToTheOffer può fondare la preparazione e la struttura delle risposte in tempo reale nel tuo curriculum, nella descrizione del ruolo e nelle note private, quindi conservare una trascrizione per la revisione post-colloquio.

Esercitati con le prove, non con un copione

YesToTheOffer può fondare la preparazione e la struttura delle risposte in tempo reale nel tuo curriculum, nella descrizione del ruolo e nelle note private, quindi conservare una trascrizione per la revisione post-colloquio.

Prova YesToTheOffer