La være en rettet graf, med startnode . (Hvis grafen er urettet, kan man erstatte hver kant med to kanter - én i hver retning). Vi antar at har en vei til alle andre noder i . Hver kant er en tuppel mellom to noder og . Hver kant har en lengde som for eksempel kan representere tid, kostnad eller avstand. Det er viktig at kan være negativ.