Matriks untuk orang A jika memilih pekerjaan 4 Matriks untuk orang B jika memilih pekerjaan 4
adalah sebagai berikut: adalah sebagai berikut:
1 2 3 4 1 2 3 4
A − − − − − − − −
A
B 6 4 3 − − − − −
[5 B
C 8 1 −] C
[5 8 − −]
D 7 6 9 − D 7 6 − −
sehingga perhitungan biaya minimum untuk simpul (A, 4) sehingga perhitungan biaya minimum untuk simpul (B, 3)
adalah adalah
Ĉ(A, 4) = 8+1+3+4 = 16 Ĉ(B, 3) = 7+5+6 = 18
dan nilai minimum untuk simpul (A, 4 ) adalah 16. dan nilai minimum untuk simpul (B, 4) adalah 18.
Karena simpul (B,1) memiliki nilai minimum
Karena simpul (A,2) memiliki nilai minimum simpul terkecil, maka simpul (B,1) yang akan dipilih untuk
simpul terkecil, maka simpul (A,2) yang akan dipilih untuk diekspansi sehingga dapat melanjutkan perhitungan. Maka
diekspansi sehingga dapat melanjutkan perhitungan. Maka orang B akan mendapatkan pekerjaan 1.
orang A akan mendapatkan pekerjaan 2.
1 2 3 4
A − − − −
B − − − −
[− − − −]
C
D − − − 4
1 2 3 4
A − − − − Dengan demikian, solusi dari job assignment problem
B − − − − ini adalah orang A mengambil pekerjaan 2 dengan biaya 2,
[− − − −]
C orang B mengambil pekerjaan 1 dengan biaya 6, orang C
D − − 9 − mengambil pekerjaan 3 dengan biaya 1, dan orang D
mengambil pekerjaan 4 dengan biaya 4. Sehingga total
sehingga perhitungan biaya minimum untuk simpul (C, 4) biayanya adalah 13.
adalah
Ĉ(C, 4) = 8+9 = 17 Contoh algoritma untuk job assignment menggunakan
dimana angka 9 adalah biaya minimum dari pekerjaan yang metode Branch and Bound adalah sebagai berikut:
tersisa. Sehingga nilai minimum untuk simpul (C, 4) adalah
17. /* findMinCost menggunakan Least() dan
Add() untuk maintain daftar node
Karena simpul (C,3) memiliki nilai minimum
simpul terkecil, maka simpul (C,3) yang akan dipilih untuk Least() mencari live node dengan
diekspansi sehingga dapat melanjutkan perhitungan. Maka cost yang rendah, menghapusnya dari
orang C akan mendapatkan pekerjaan 3. daftar dan mereturnn nya
2.4. Hitung biaya terkecil dari orang D Add(x) menghitung cost dari x dan
menambahkannya ke daftar live node
Orang D hanya memiliki satu kemungkinan dalam */
memilih pekerjaan, yaitu pekerjaan 4. Matriks untuk orang
D jika memilih pekerjaan 4 adalah sebagai berikut: // Membuat tree node
{
1 2 3 4 int job_number;
A − − − −
int worker_number;
B − − − − node parent;
[− − − −]
C int cost;
D − − − 4 }
sehingga perhitungan biaya minimum untuk simpul (D, 4)
adalah