LANDASAN TEORI
2.1.Graf
Teori Graf mulai dikenal pada saat seorang matematikawan bangsa Swiss, bernama Leonhard Euler, berhasil mengungkapkan Misteri Jembatan Konigsberg pada tahun 1736.
Sebuah Graf G mengandung 2 himpunan yaitu himpunan V, yang elemennya disebut simpul atau verteks dan himpunan E yang merupakan pasangan tak terurut dari verteks-verteks yang disebut garis atau edge. Sehingga sebuah graf dinotasikan sebagai G ( V, E ). Dalam menggambarkan sutu graf tidak ada ketentuan khusus dalam penyajian graf secara geometri, seperti dimana dan bagaimana menyajikan simpul dan ruas. Berikut contoh penyajian Graf yang sama, tetapi disajikan berbeda.
Jika diketahui G ( V, E ) dimana
V = { A, B, C, D } dan E = {(A,B),( B, C ), ( C, D), ( D, A ), ( B, D ) }. Gambar 2.1.graf C A D A A B D B C D B C
2.1.1 Terminologi Dasar
Definisi 2.1
Graf berarah (directed graph) G terdiri dari suatu himpunan V dari verteks-verteks dan himpunan E dari edge sedemikian rupa sehingga setiap rusuk e ∈ E menghubungkan pasangan verteks terurut.Jika terdapat sebuah edge tunggal yang menghubungkan pasangan terurut (v,w) dari verteks-verteks, dituliskan e = (v,w) yang menyatakan sebuah edge dari v ke w.
Graf tak berarah (undirected graph) G terdiri dari dari suatu himpunan V dari verteks-verteks dan himpunan E dari edge sedemikian rupa sehingga setiap edge e ∈ E dikaitkan dengan pasangan verteks tak berurut..Jika terdapat sebuah edge tunggal yang menghubungkan verteks v dan w, dituliskan e = (v,w) atau e = (w,v) yang menyatakan sebuah edge antara v dan v dan bukan sebuah pasangan terurut. Gambar 2.2 merupakan contoh graf berarah.
Gambar 2.2.Graf berarah
Edge yang hanya berhubungan dengan verteks yang sama (sebuah verteks) disebut dengan Loop. Edge paralel yaitu jika terdapat edge-edge yang menghubungkan 2 simpul yang sama. Dua verteks dikatakan berhubungan (adjacent)
jika ada edge yang menghubungkan keduanya. Verteks yang tidak memiliki edge yang berhubungan dengannya disebut verteks terasing (isolated verteks).
Sebuah graf dikatakan multigraf bila graf tersebut mengandung edge paralel atau loop. Sedangkan graf yang tidak mengandung edge paralel atau loop dikenal sebagai graf sederhana, atau yang disebut graf.
Dari gambar tersebut dapat dijelaskan bahwa Loop adalah e2. Edge paralel adalah e5 dan e6.Verteks yang adjacent adalah A dan B, A dan C, B dan C,dll.Verteks terasing adalah E E Gambar 2.3 Multigraf B C D e2 A e3 e4 e1 e5 e6
2.1.2.Graf Bipartite
Definisi 2. 2
Graf lengkap dengan n verteks adalah graf sederhana dengan n verteks (simbol k ),di n mana setiap 2 verteks berbeda dihubungkan dengan suatu edge.
Teorema 2.1
Banyaknya edge dalam suatu graf lengkap dengan n verteks adalah
2 ) 1 (n− n buah. Bukti:
Misalkan G adalah sebuah graf lengkap dengan n verteks v ,1 v ,…,2 v .Ambil n
sembarang titik (sebut saja v ).Oleh karena G merupakan graf lengkap, maka 1 v 1 dihubungkan dengan (n-1) verteks lainnya (v ,2 v ,…,3 v ).Jadi, ada (n-1) buah edge. n
Selanjutnya ambil sembarang verteks kedua (sebut saja v ).Oleh karena G 2 adalah graf lengkap,maka v juga dihubungkan dengan semua verteks sisanya 2 (v ,1 v ,…,3 v ) sehingga ada (n-1) buah edge yang berhubungan dengan n v .Salah satu 2 edge tersebut menghubungkan v dengan 2 v .Edge tersebut telah diperhitungkan pada 1 waktu menghitung banyaknya edge yang berhubungan dengan v .Jadi, ada (n-2) edge 1 yang belum diperhitungkan.
Proses dilanjutkan dengan menghitung banyaknya edge yang berhubungan dengan v ,3 v …,4 vn−1 dan yang belum diperhitungkan sebelumnya.Banyak edge yang
didapatkan berturut-turut adalah (n-3), (n-4),…, 3,2,1.Jadi secara keseluruhan terdapat (n-1) + (n-2) +…+ 2 + 1 = 2 ) 1 (n− n buah. Definisi 2.3
Suatu graf G disebut bipartite (dwi pihak) apabila V (G) merupakan gabungan dari 2 himpunan tak kosong v1danv2 dan setiap garis dalam G menghubungkan suatu titik dalam v dengan titik dalam 1 v . Apabila dalam graf bipartite setiap verteks 2 dalamv berhubungan dengan setiap verteks dalam 1 v , maka grafnya disebut graf 2 bipartite lengkap(simbol km,n).
Gambar 2.4 Graf bipartite
2.1.3 Komplemen Graf
Komplemen suatu graf G (simbol G ) dengan n verteks adalah suatu graf sederhana dengan
a. Verteks-verteks ( G ) sama dengan verteks-verteks G. Jadi V( G ) = V(G) b. Edge G adalah komplemen verteks-verteks G terhadp graf lengkapnya (K ). n
Verteks-verteks yang dihubungkan dengan edge dalam G tidak terhubung dalam G .Sebaliknya, verteks- verteks yang terhubung dalam G menjadi tidak terhubung dalam G .
Contoh :
Gambarlah G dari graf berikut ini.
b a
c d
e
Gambar 2.5.Graf G
Pada gambar diatas verteks-verteks yang tidak dihubungkan dengan edge dalam G adalah edge dengan titik ujung {a,d},{a,e},{b,c},dan {b,e}.Sehingga G sbb:
a b
c d
e
Gambar 2.6 Graf G 2.1.4.Graf Berlabel/Berbobot
Graf berlabel/ berbobot adalah graf yang setiap ruasnya mempunyai nilai/bobot berupa bilangan non negatif.Dalam graf berbobot bisa dipakai graf berarah maupun graf tidak berarah.
Contoh :
Gambar 2.7.Graf Berbobot 2.1.5 Subgraf
Definisi 2.4
Misalkan G (V,E) adalah suatu graf.Graf G‘(V‘, E‘) adalah Subgraf bila dan hanya bila: B D F C E G H A 3 19 8 13 3 3 4 2 2 2 12 6 3
a. V ⊆ V ' b. E'⊆ E
c. Setiap edge dalam H memiliki verteks ujung yang sama dengan edge tersebut dalam G.
Apabila E‘ mengandung semua ruas di E yang kedua ujungnya di V‘ , maka G‘ adalah Subgraf yang dibentuk oleh V‘
Contoh Gambar 2.8 Subgraf (Spanning Subgraph) e e e e e C D A B
G
e e A B DG’ :
G’ subgraf dari G e e e A B DG’ :
2.1.6 Lintasan dan Sirkuit
Definisi 2.5
Misalkan v dan 0 v adalah verteks-verteks dalam sebuah graf. Sebuah lintasan dari n v 0 ke v dengan panjang n adalah sebuah barisan berselang seling dari n n+1 verteks n dan n edge yang berawal dengan verteks v dan berakhir dengan verteks 0 v , n
(v0,e1,v1,e2,v2,...,vn−1,en,vn)
dengan edge e insiden pada verteks 1 vi−1danvi untuk I = 1,2, …,n.
Teorema 2.2
Di dalam suatu graf (baik berarah maupun tidak berarah) dengan n verteks , jika ada suatu lintasan dari verteks v ke verteks 1 v , maka ada suatu lintasan dengan tidak 2 lebih dari n-1 rusuk dari verteks v ke verteks 1 v . 2
Bukti:
Misalkan ada suatu lintasan dari v ke 1 v . Misalkan pula (2 v , … , 1 v , …,i v ) adalah 2 barisan verteks yang ditemui lintasan itu ketika ditelusuri dari v dan 1 v . Jika ada 2 l
buah edge dalam lintasan itu , maka ada l+1 verteks di dalam barisan verteks tersebut. Agar l lebih besar daripada n-1, harus ada verteks v yang muncul lebih dari sekali di k dalam barisan itu. Dengan kata lain, barisan verteks itu mempunyai bentuk umum (v , 1 … , vk,..., vk,...,v ). Jika edge di dalam lintasan yang membawa 2 v kembali ke k v k itu dibuang, maka akan diperoleh suatu lintasan dari v ke 1 v yang memiliki lebih 2 sedikit rusuk daripada jumlah rusuk semula.Argumentasi dapat diulang sampai ada lintasan dengan n-1 edge atau lebih sedikit lagi.
Definisi 2.6
Sebuah graf dikatakan tersambung (conected) jika diketahui sembarang verteks v dan w di G, maka terdapat sebuah lintasan dari v ke w.
(a) (b)
Gambar 2.9 Graf terhubung dan Graf tidak terhubung
Definisi 2.7
Misalkan v dan 0 v adalah verteks-verteks dalam sebuah graf. Sebuah sirkuit dari n v 0 ke v dengan panjang n adalah sebuah barisan berselang seling dari n n+1 verteks n dan n edge yang berawal dengan verteks v dan berakhir dengan verteks 0 v ,lalu n kembali lagi ke v 0
(v0,e1,v1,e2,v2,...,vn−1,en,vn,e0,v0)
dengan edge e insiden pada verteks 1 vi−1danvi untuk I = 1,2, …,n.
Lintasan dan Sirkuit Hamilton
Lintasan Hamilton (Sirkuit Hamilton) didefinisikan sebagai suatu lintasan (rangkaian) yang melalui setiap verteks tepat satu kali. Sir Wiliam Hamilton menciptakan permainan “all around the world”. Di dalam permainan ini pemain diharuskan
mencari rute pada dodecahedron yang melalui setiap titik sudut sekali dan hanya sekali.
Gambar 2.10 Dodecahedron
Teorema 2.3
Misalkan G sebuah graf linear dengan n verteks.Jika jumlah derajat semua pasangan verteks di dalam G lebih kecil atau sama dengan n-1, maka ada lintasan Hamilton di dalam G.
Bukti:
Pertama tama akan ditunjukkan bahwa G sebuah graf terhubung.Misalkan G mempunyai dua atau lebih komponen yang tidak terhubungkan.Misalkan v sebuah 1 vertks di dalam satu komponen yang mempunyai n verteks dan 1 v adalah sebuah 2 verteks di dalam komponen lain yang mempunyai n verteks. Karena derajat 2 v tidak 1 lebih besar dari n - 1 dan derajat 1 v tidak lebih dari 2 n -1, maka jumlah derajatnya 2
tidak lebih dari n1 + n -2, yang masih lebih kecil dari n-1, dan ini berarti sebuah 2 kontradiksi.
Sekarang akan ditunjukkan bagaimana lintasan Hamilton dapat dibuat setahap demi setahap , mulai dengan lintasan yang terdiri dari satu rusuk.Misalkan ada lintasan dengan p-1 edge, p< n, di dalam G yang bertemu dengan barisan verteks-verteks (v1,v2,...,vp).Jika v atau 1 vp berdekatan dengan sebuah verteks yang tidak berada pada lintasan ini, dengan mudah lintasan ini dapat diperluas agar mencakup verteks tadi sehingga memperoleh lintasan dengan p edge. Jika tidak demikian, berarti
1
v dan vp keduanya hanya berdekatan dengan verteks verteks pada lintasan. Dalam
hal demikian, akan ditunjukkan bahwa ada suatu rangkaian yang hanya mengandung verteks verteks v1,v2,...,vp. Jika v berdekatan dengan 1 vp, maka sirkuit (v1,v2,...,vp,v1) sudah mencukupi.
Lalu misalkan v hanya berdekatan dengan 1
k i i i v v v , ,..., 2 1 , dengan 1
2≤ij ≤ p− . Jika vp berdekatan dengan salah satu dari vi1−1,vi2−1,vik−1,katakanlah dengan vj−1 maka sebagaimana ditunjukkan dalam gambar, sirkuit (v1,v2,v3,...,vj−1,vp,vp−1,...,vj,v1) mengandung tepat verteks verteks v1,v2,...,vp. Jika
p
v tidak berdekatan dengan salah satu dari vi1−1,vi2−1,vik−1, maka vp berdekatan
dengan tidak lebih dari p− k −1 buah verteks.Akibatnya, jumlah derajat v dan 1 vp
v1 v2 v3 Vj-1 vj
vp
Gambar 2.11 Lintasan
Kemudian ambil sebuah verteks v yang tidak berada dalam rangkaian ini.Karena x graf G terhubungkan , berarti ada verteks v yang tidak berada pada rangkaian ini k dengan sebuah edge antara v dan x v untuk suatu verteks tertentu di dalam k
(v1,v2,...,vp), sebagaimana ditunjukkan dalam gambar. Sekarang telah diperoleh
lintasan (vx,vk,vk+1,...,vj−1,vp,vp−1,...,vj,v1,v2,...,vk−1), yang mengandung p edge, sebagaimana ditunjukkan dalam gambar.
v1 v2 vx Vk-1 vk Vj-1 vj vp v1 v2 vx Vk-1 vk Vj-1 vj vp Gambar 2.12 Lintasan (vx,vk,vk+1,...,vj−1,vp,vp−1,...,vj,v1,v2,...,vk−1)
Langkah langkah pembuatan ini dapat diulangi sampai diperoleh sebuah lintasan dengan n-1 edge.
2.1.8 Matriks dan Graf
Untuk menyelesaikan suatu permasalahan model graf dengan bantuan komputer, maka graf tersebut disajikan dalam bentuk matriks. Jika A adalah matriks m x n, maka notasi matriksnya dapat ditulis sbb:
= mn m m n n a a a a a a a a a A 2 1 2 22 21 1 12 11 Definisi 2.8
Suatu matriks A berorde n x n disebut simetris jika A = A. T Berikut adalah contoh matriks simetris:
3 5 4 5 1 3 4 3 2 ; − − − 3 2 2 2 1 1 2 1 0 Definisi 2.9
Transpos dari suatu matriks A berorde m x n adalah matriks B berorde m x n yang didefinisikan oleh:
ij
ji a
b =
Untuk j = 1,2, … ,n dan I = 1,2, …,m.Transpos dari suatu matriks A dinyatakan oleh
T
Contoh: Jika = 6 5 4 3 2 1 A maka = 6 3 5 2 4 1 T A
Matriks-matriks yang dapat menyajikan model graf tersebut antara lain : • Matriks Sekawan (Incidence)
• Matriks Kedampingan (Adjacency)
Sebagai contoh, untuk graf seperti di bawah ini
Matriks Adjacency Gambar 2.13.Graf V4 V5 V2 V3 V1 e6 e5 e4 e3 e2 e1 e8 e7 V1 V2 V3 V4 V5 V1 0 1 1 1 1 V2 1 0 1 0 0 V3 1 1 0 1 1
Matriks Incidence :
Teorema 2.4
Jika A adalah matriks kedampingan dari sebuah graf sederhana, entri ke-ij dari A n sama dengan banyaknya lintasan dengan panjang n untuk verteks j, n=1,2,…
Bukti
Dengan menggunakan induksi, pada kasus n=1,A adalah A. Entri ke-ij adalah 1 jika 1 terdapat sebuah edge dari I ke j, yang merupakan sebuah lintasan dengan panjang 1, dan 0 jika tidak terdapat edge. Sehingga teorema tersebut benar untuk kasus n =1.Langkah dasar telah terbukti.
Asumsikan bahwa teorema tersebut benar untuk n, maka A
A An+1 = n
Sehingga entri ke-I dalam An+1 diperoleh dengan saling mengalikan unsur unsur pada baris ke-I dari A dengan unsur unsur pada kolom ke-k dari A dan menjumlahkannya. n
e1 e2 e3 e4 e5 e6 e7 e8 V1 1 1 0 1 1 0 0 0 V2 1 0 1 0 0 0 0 0 V3 0 1 1 0 0 1 1 0 V4 0 0 0 1 0 1 0 1 V5 0 0 0 0 1 0 1 1
Kolom ke-k dari A
Baris ke-i dari
m j m j n t t t t s s s s A 2 1 2 1, ,..., ,..., ( =s1t1 +s2t2 +...+sjtj +...+smtm =entri ke-ik dalam An+1
Menurut induksi, sj menyatakan banyaknya lintasan dengan panjang n dari I ke j dalam graf G. Maka tjdapat 0 atau 1. Jika tj adalah 0, maka tidak terdapat edge dari j
ke k, sehingga terdapat sjtj =0 lintasan dengan panjang n+1 dari i ke k, dimana edge terakhirnya adalah (j,k). Jika tj adalah 1, maka terdapat sebuah edge dari verteks j ke
verteks k (lihat gambar). Karena terdapat sj lintasan dengan panjang n dari verteks i ke verteks j, maka terdapat sjtj =sj lintasan dengan panjang n+1 dari i ke k, yang edge terakhirnya adalah (j,k) (lihat gambar).
i j
k
Dengan menjumlahkan semua j, maka akan dihitung semua lintasan dengan panjang n+1 dari I ke k.ehingga entri ke-i dalam An+1 menyatakan banyaknya lintasan dengan panjang n+1 dari i ke k sehingga langkah induktif terbukti. Menurut Prinsip induksi matematika, teorema tersebut berlaku.
2.1.9 Graf Planar
Definisi 2.10
Sebuah Graf adalah planar jika graf tersebut dapat digambar dalam bidang datar dengan rusuk-rusuknya tidak bersilangan.
Jika sebuah graf planar tersambung digambar pada bidang datar, bidang tersebut dibagi menjadi daerah-daerah berbatasan yang disebut muka (face) . Sebuah muka ditandai dengan siklus yang membentuk batasnya.Sebagai contoh, dalam graf pada gambar, muka A dibatasi oleh siklus (5,2,3,4,5) dan muka C dibatasi oleh siklus (1,2,5,1).Muka luar D dianggap dibatasi oleh siklus (1,2,3,4,6,1).
6 1 2 3 4 5 A B C D
Graf pada gambar mempunyai f = 4 muka, e = 8 rusuk, dan v = 6 verteks.Perhatikan bahwa f, e, dan v memenuhi persamaan
2 + − =e v
f Persamaan 1
Pada tahun 1752, Euler telah membuktikan bahwa persamaan 1 berlaku untuk sembarang graf planar tersambung.
2.2 Program Dinamik
Program dinamik adalah salah satu metode yang digunakan untuk mengoptimalkan proses pengambilan keputusan secara bertahap ganda.Pendekatan program dinamik didasarkan pada prinsip optimisasi Richard Bellman yang dinyatakan sebagai berikut (Siagian, P.,1987):
“Suatu kebijakan optimal mempunyai sifat bahwa apapun keadaan dan keputusan awal, keputusan berikutnya harus membentuk suatu kebijakan optimal dengan memperhatikan keadaan dari hasil keputusan pertama”.
Hal ini berarti:
1) Pengambil keputusan diperkenankan untuk mengambil keputusan yang layak bagi tahap persoalan yang tersisa, tanpa melihat kembali keputusan pada tahap-tahap terdahulu.
2) Dalam rangkaian keputusan yang telah diambil, hasil dari masing-masing tahap tergantung pada hasil keputusan pada tahap sebelumnya.
2.2.1 Karakteristik Program Dinamik
1) Permasalahannya dapat dibagi menjadi tahapan dengan keputusan kebijakan pada tiap tahap
2) Tiap tahap mempunyai sejumlah kondisi terkait
3) Pengaruh keputusan kebijakan pada setiap tahapan adalah transformasi kondisi saat ini kepada sebuah kondisi yang terkait dengan awal dari tahapan berikutnya
4) Prosedur penyelesaian dirancang untuk mendapatkan kebijakan optimum untuk seluruh tahapan yaitu dengan membuat kebijakan optimum untuk setiap tahap pada setiap kemungkinan kondisi
5) Pada suatu kondisi, sebuah kebijakan optimum untuk tahapan selanjutnya tidak terkait oleh kebijakan optimum dari tahapan sebelumnya.Jadi keputusan optimum yang diambil hanya tergantung pada kondisi sekarang bukan dari bagaimana kita sampai pada kondisi sekarang. Inilah yang dinamai prinsip optimum dari Program Dinamik.
6) Prosedur penyelesaian mulai dengan mendapatkan solusi optimum untuk tahap terakhir.
7) Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik untuk setiap status pada tahap k memberikan keputusan terbaik untuk setiap status pada tahap k + 1.
2.2.2 Pendekatan Program Dinamik
1) Program dinamik maju (forward atau up down). Misalkan x1,x2,...,xn menyatakan peubah (variable) keputusan yang harus dibuat masing masing untuk tahap 1,2,…,n. Program dinamis bergerak mulai dari tahap 1 terus maju ke tahap 2, 3, dan seterusnya sampai tahap n.Runtutan peubah keputusan adalah x1,x2,...,xn. ) , ( 1 1 1 s x f f2(s2,x2) . . . fn(sn,xn)
Gambar 2.16 Program Dinamik Maju
2) Program dinamik mundur (backward atau bottom up).Proram dinamis ini merupakan kebalikan dari program dinamis maju.Program dinamis ini bergerak mulai dari tahap n terus mundur ke tahap n-1, n-2, dan seterusnya sampai tahap 1.Runtutan peubah keputusan adalah xn,xn−1,...,x1
fn(sn,xn) … f2(s2,x2) f1(s1,x1) Gambar 2.17 Program Dinamik Mundur
Tahap n … Tahap2 Tahap1
2.2.3 Pernyataan Matematis Program Dinamik
Masalah pogram dinamik dapat dinyatakan dalam bentuk umum:
Opt :
∑
= = n j j j n X r X f 1 ) ( ) ( dengan batasan∑
= = n j j X X 1 dan Xj ≥0 (j =1,2,...,n) dimana: ) ( Xfn = jarak total dari seluruh kegiatan (tahap)
j
X = kota yang dialokasikan ke kegiatan ke-j )
( j
j X
r = jarak dari kegiatan ke-j X = kota yang tersedia.
Dalam masalah umum diatas, jarak optimum dari seluruh kegiatan ditentukan oleh kota X yang tersedia dan jarak dari kegiatan – kegiatan individual rj(Xj). Oleh sebab itu, jarak keseluruhan dari µ dari kegiatan dapat dinyatakan oleh suatu urutan, fungsi–fungsi sebagai berikut :
n n
n X optF X X X X
f ( )= ( 1, 2,..., −1, )
Kota total yang tersedia X harus dialokasikan secara berurutan ke semua kegiatan-kegiatan pada tahap-tahap yang berbeda, untuk mencapai hasil yang maksimum. Bila dialokasikan sejumlah X dari kota ke kegiatan ke n di mana n 0≤ Xn ≤ X,akan
((X −Xn)kota yang tersedia untuk (n-1) kegiatan. Bila jarak total dari (n-1) kegiatan ditunjukkan oleh :
∑
− = − − = ≥ 1 1 1( ) ( ) 0 n j j j j n n X X r X X fJarak total dariµ kegiatan dapat dinyatakan sebagai
) ( ) ( ) ( n n n 1 n n X r X f X X f = + − −
Kuantitas kota optimal yang dialokasikan ke n kegiatan, X , menentukan nilai n )
(X −Xn , dan hal ini sebaliknya akan menentukan nilai maksimum persamaan jarak total.Oleh sebab itu, masalah program dinamik dapat dinyatakan dalam bentuk fungsi umum sebagai ,... 3 , 2 )} ( ) ( { ) (X =opt r X + f −1 X −X n= fn n n n n
Persamaan ini disebut sebagai recursive equation atau recurrence relations
2.2.4 Formulasi Program Dinamik Untuk Persoalan TSP
Misalkan G = (V, E) adalah graf lengkap berarah dengan sisi-sisi yang diberi harga c > 0 untuk setiap i dan j adalah simpul-simpul di dalam V. Misalkan V = n
dan n > 1. Setiap simpul diberi nomor 1, 2, …, n.Asumsikan perjalanan (tur) dimulai dan berakhir pada simpul 1. Setiap tur pasti terdiri dari sisi (1, k) untuk beberapa k ∈ V – {1} dan sebuah lintasan dari simpul k ke simpul 1.
Lintasan dari simpul k ke simpul 1 tersebut melalui setiap simpul di dalam V – {1, k} tepat hanya sekali. Prinsip Optimalitas: jika tur tersebut optimal maka lintasan dari simpul k ke simpul 1 juga menjadi lintasan k ke 1 terpendek yang melalui simpul-simpul di dalam V – {1, k}. Misalkan f(i, S) adalah bobot lintasan terpendek yang berawal pada simpul i, yang melalui semua simpul di dalam S dan berakhir pada simpul 1. Nilai f(1, V – {1}) adalah bobot tur terpendek. Berdasarkan prinsip optimalitas tersebut, diperoleh hubungan rekursif sebagai berikut:
(1, {1}) min{1 ( , {1, })} 2 c f k V k V f k n k + − = − ≤ ≤ (1)
Dengan merampatkan persamaan (1), diperoleh f(i,∅)=ci,1 , 2 ≤ i ≤ n (basis) })} { , ( { min ) , (i S c f j S j f ij S j + − = ∈ (rekurens) (2)
Persamaan (1) dapat dipecahkan untuk memperoleh {1}) jika kita mengetahui f(k, V – {1, k}) untuk semua pilihan nilai k. Nilai f tersebut dapat diperoleh dengan menggunakan persamaan (2).
Kemudian gunakan persamaan (2) untuk memperoleh f(i, S) untuk S = 1, kemudian dapat diperoleh f(i, S) untuk S = 2, dan seterusnya. Bila S = n – 1, nilai i dan S ini diperlukan sedemikian sehingga i ≠ 1, 1 ∉ S dan i ∉ S.
Pada masalah TSP dengan menggunakan program dinamik perlu diperhatikan beberapa hal yaitu:
1.Tahap (stage) adalah jalur (jalan) yang harus dilalui dari satu kota agar sampai ke kota berikutnya.Dalam suatu tahap akan terdapat beberapa alternatif pilihan jalan yang dapat dilalui.
2.Status (state) adalah kota awal pada setiap tahap.
3.Variabel keputusan adalah jalur atau jalan yang harus diambil