Keresés legrövidebb út
Jellemzően az utat a grafikonon keresési probléma az alábbiak szerint történik: megtalálni a legjobb utat. Kevesebb a legjobb útvonalat, mint a szabály, hogy megértsék a legrövidebb. Keresse meg a legrövidebb út lehetséges választás az összes találat. Azonban nem szükséges, hogy vizsgálja meg az összes útvonalat.
Megteheti másképp: ha kiválasztja a következő pont, hogy ellenőrizze, hogy a hossza nem haladja meg a hosszát az útvonal alakult már megtalálta az utat, ha ezen a ponton fog szerepelni az útvonalon; Ha ez meghaladja, hogy ezen a ponton kell kimarad, és válasszon egy másik.
Így, miután az első útvonalat, a program megkeresi csak azokat az ágakat a grafikon, amely javíthatja a megoldást találtuk vágással módon, hogy az útvonal már képződött már találtak.
Listing 12.6 ábrán egy eljárás, amely egy lépéssel eljárás, amely elvégzi a kiválasztás a következő fordulópont, így keresni az utat a minimális hosszát.
Listing 12.6. Keresés legrövidebb út
eljárás TForm1.Button1Click (Sender: TObject);
// Karta.map [i, j] nem 0, ha
// pontot az i és j össze vannak kötve
// Road - a kártya pontok száma
Bruttó: array [1..n] Boole; // együtt [1] IGAZ, ha a pont
// száma i benne van a közúti
// kezdő és végpontja
talált: logikai; LEN: integer; // hossza talált (minimum)
// Útvonal> c_len: integer; // aktuális hossza (kialakított)
// Válassza a következő pont