LAPORAN TUGAS
SISTEM CERDAS
Dibuat Oleh :
1. EDISON PANJAITAN DBC 113 043
2. SUND BERTO S. DBC 113 100
3. ELVRINDO PARMAN PURBA DBC 113 142
JURUSAN/PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
Masalah penjadwalan kuliah adalah salah satu kasus yang sulit jika dipecahkan dengan metode konvensional seperti kasus exhaust attack, brutus algorithm, maupun teknik-teknik lain sejenis dalam penyelesaiannya. Sehingga sering ketika penjadwalan waktu perkuliahan diselesaikan secara manual.
Berikut adalah hasil analisis data mentah untuk dimasukan sebagai bahan implementasi dalam algoritma genetika. Penyelesaian di bawah ini mengambil sebuah kasus di jurusan Teknik Informatika Universitas Palangka Raya dengan konstrain-konstrain sebabagai berikut :
1. Satu dosen bisa mengajar sembarang mata kuliah sembarang kelas.
2. Hari kuliah adalah senin sampai jumat. Dengan jam kuliah mulai jam 7.00 sampai jam 16.00.
3. 1 SKS mata kuliah berdurasi 50 Menit.
4. Satu dosen tidak boleh berada pada dua jadwal untuk waktu/jam yang sama.
5. Untuk sebuah jadwal kuliah, seorang dosen mungkin tidak bisa hadir sehingga untuk jadwal tersebut harus dihindari, diprioritaskan pada jadwal yang dosen tersebut bisa hadir.
Berikut perincian hasil analisis : 1. Ruang kuliah
1.1. Jam Kuliah
Diasumsikan setiap mata kuliah adalah 3 SKS, sehingga ada 1 jadwal kuliah setiap ruangan yaitu 07.00 – 09.30, 09.30 – 12.00, 12.00 – 14.30, 14.30 – 17.00. Tabel di bawah ini hanya utnuk hari senin dan selasa saja, sebenarnya sampai hari jumat, sehingga kode jadwal sampai dengan 60.
Tabel Jadwal
Jadwal Hari Jam kuliah Ruangan
1 Senin 07.00 – 09.30 FT-5
10 Senin 09.30 – 12.00 FT-9
11 Senin 12.00 – 14.30 FT-9
12 Senin 14.30 – 17.00 FT-9
13 Selasa 07.00 – 09.30 FT-5
14 Selasa 09.30 – 12.00 FT-5
15 Selasa 12.00 – 14.30 FT-5
16 Selasa 14.30 – 17.00 FT-5
17 Selasa 07.00 – 09.30 FT-6
18 Selasa 09.30 – 12.00 FT-6
19 Selasa 12.00 – 14.30 FT-6
20 Selasa 14.30 – 17.00 FT-6
21 Selasa 07.00 – 09.30 FT-9
22 Selasa 09.30 – 12.00 FT-9
23 Selasa 12.00 – 14.30 FT-9
24 Selasa 14.30 – 17.00 FT-9
1.2. Mata kuliah yang diampu dosen
Dosen dapat mengampu lebih dari satu mata kuliah, satu mata kuliah terdiri dari 1 Kelas. Dibawah ini adalah sampel kombinasi dosen, mata kuliah dan kelas.
Dosen Mengaja r
Dosen Mata Kuliah
1 Deddy Ronaldo, ST., MT Multimedia
3 Viktor H, ST., MT Multimedia 4 Enny Dwi Oktaviyani, ST., M.kom Analisis Desain SI 5 Nova Noor Kamala Sari, ST., MT Analisis Desain SI 6 Abertun S Sahay, ST., M.eng Analisis Desain SI 7 Licantik, S.Kom., M.Kom Intranet dan Internet 8 Abertun S Sahay, ST., M.eng Intranet dan Internet
9 Deddy Ronaldo ST., MT Intranet dan Internet
10 Licantik, S.Kom., M.Kom Manajemen Proyek
11 V. Abdi Gunawan, ST., MT Manajemen Proyek
12 Abertun S Sahay, ST., M.eng Manajemen Proyek 13 Devi Karolita, S.Kom., M.Kom Sistem Cerdas
14 Agus S Saragih, ST., MT Sistem Cerdas
15 Ade Chandra, ST., MT Sistem Cerdas
16 Felicia Sylviana, ST., MM Metodologi Penelitian 17 Jadiaman Parhusip, S.Kom., M.Kom Metodologi Penelitian
18 Rony Teguh, Ph.d Metodologi Penelitian
19 Marhayu, ST., M.Sc Program Profesional
20 Nova Noor Kamala Sari Metode Pengembangan
PL
21 Deddy Ronaldo, ST., MT Metode Pengembangan
PL
22 Widiatri, ST., MT Metode Pengembangan
PL
23 Felicia Sylviana, ST.,MM Statistika II 24 Jadiaman Parhusip, S.Kom., M.Kom Statistika II
25 Rony Teguh, Ph.d Statistika II
Misalnya : jika ada 25 kombinasi seperti di atas, sebuah dapat dibentuk dengan pola:
[(D1,J1), (D2,J2), (D3,J3), (D4,J4), (D5,J5), (D6,J6), (D7,J7), (D8,J8), (D9,J9), (D10,J10), (D11,J11), (D12,J12), (D13,J13), (D14,J14), (D15,J15), (D16,J16), (D17,J17), (D18,J18), (D19,J19), (D20,J20), (D21,J21), (D22,J22), (D23,J23), (D24,J24), (D25,J25).
Pembuatan kromosom dilakukan secara acak untuk subgen jadwal, sedangkan dosen mengajar tidak. Misalnya :
[(1.10), (2.9), (3.8), (4.7), (5.6), (6.5), (7.4), (8.3), (9.2), (10.1), (11.15), (12.14), (13.11), (14.12), (15.13), (16.25), (17.23), (18.24), (19.21), (20.21), (21.20), (22.18), (23.17), (24.16), (25,19).
Kromosom 1 = [(1,5), (2,3), (3,25), (4,24), (5,23), (6,8), (7,7), (8,21), (9,21), (10,16), (11,15), (12,22), (13,9), (14,19), (15,11), (16,8), (17,10), (18,7), (19,13), (20,19), (21,19), (22,13), (23,19), (24,18), (25,17)].
Kromosom 2 = [(1,5), (19,13), (3,25), (4,24), (2,3), , (9,21), (10,16), (11,15), (12,22), (13,9), (14,19), (15,11), (5,23), (6,8), (7,7), (8,21) (20,19), (22,13), (23,19), (24,18), (25,17) (16,8), (17,10), (18,7), (21,19),]. Kromosom 3 = [ (11,15), (12,22), (1,5), (19,13), (3,25), (13,9), (10,16), (16,8), (17,10), (18,7), (21,19), (14,19), (15,11), (5,23), (6,8), (7,7), (8,21), (4,24), (2,3) , (9,21), (20,19), (22,13), (23,19), (24,18), (25,17),].
Kromosom 4 = [(13,9), (10,16), (16,8), (17,10), (11,15), (12,22), (1,5), (19,13), (3,25), (20,19), (22,13), (23,19), (24,18), (25,17), (18,7), (21,19), (14,19), (15,11), (5,23), (6,8), (7,7), (8,21), (4,24), (2,3) , (9,21)].
b. Evaluasi kromosom
Hitung nilai fitness dari tiap kromosom yang telah dibangkitkan. Fitness [1] = 167
Fitness [2] = 189 Fitenss [3] = 180 Fitness [4] = 176
c. Seleksi kromosom
Oleh karena pada persoalan ini yang diinginkan yaitu kromosom dengan fitness yang lebih tinggi akan mempunyai probabilitas untuk terpilih kembali lebih besar maka digunakan inverse :
Q[i] =1 / fitness [i] Q[1] = 1 / 167 = 0,0059 Q[2] = 1 / 189 = 0,0052 Q[3] = 1 / 180 = 0,0055 Q[4] = 1 / 176 = 0,0056 Total = 0,0222
P [i] = Q[i] / total
P[1] = 0.0059 / 0,0222 = 0.265 P[2] = 0,0052 / 0,0222 = 0,234 P[3] = 0.0055 / 0,0222 = 0,247 P[4] = 0,0056 / 0,0,222 = 0,252
Dari probabilitas di atas dapat terlihat bahwa kromosom ke-1 mempunyai
fitness paling besar mempunyai probabilitas untuk terpilih pada generasi selanjutnya lebih besar dari kromosom ainnya. Untuk proses seleksi kita menggunakan rouletewheel, untuk itu kita terlebih dahulu mencari nilai kumulatif dari probabilitasnya.
C[1] = 0,265
C[2] = 0,265 + 0,234 = 0,499 C[3] = 0,499 + 0,247 = 0,746 C[4] = 0,746 + 0,252 = 0,998
Proses roulete-wheel adalah membangkitkan nilai acak R antara 0-1. Jika R[k]<C[k] maka kromosom ke-k sebagai induk, selain itu pilih kromosom ke-k sebagai induk dengan syarat C[k-1] < R[k] < C[k]. Kita putar roulete-wheel sebanyak jumlah kromosom yaitu 3 kali (membangkitkan bilangan acak R).
R[1] = 0,743, R[2] = 0,231, R[3] = 0,333,
Lalu populasi baru akan terbentuk yaitu
Kromosom 1 = [(1,5), (2,3), (3,25), (9,21), (6,8), (7,7), (8,21), (10,16), (11,15), (12,22), (13,9), (14,19), (15,11), (16,8), (17,10), (18,7), (19,13), (20,19), (4,24), (5,23), (21,19), (22,13), (23,19), (24,18), (25,17)].
Kromosom 3 = [(16,8), (17,10), (11,15), (12,22), (1,5), (19,13), (3,25), (13,9), (10,16), (18,7), (21,19), (14,19), (15,11), (5,23), (6,8), (7,7), (8,21), (4,24), (2,3) , (9,21), , (23,19), (24,18), (25,17) (20,19), (22,13)].
Kromosom 4 = (19,13), (3,25), (13,9), (10,16), (18,7), (21,19), (14,19), (15,11), (5,23), (6,8), (7,7), [(16,8), (8,21), (4,24), (2,3) , (9,21) , (23,19), (24,18), (25,17) (20,19), (22,13) (17,10), (11,15), (12,22), (1,5)].
Pindah silang pada kali dapat diimplementasikan dengan skema order crossover. Pada skema ini, satu bagian kromosom dipertukarkan dengan tetap menjaga urutan jadwal dan dosen yang bukan bagian dari kromosom tersebut. Kromosom yang dijadikan induk dipilih secara acak dan jumlah kromosom yang dicrossover dipengaruhi oleh parameter crossover probability (pc). Misal kita tentukan c = 25%, maka diharapkan dalam 1 generasi ada 50% (2 kromosom) dari populasi mengalami crossover . Pertama kita bangkitkan bilangan acak R sebanyak jumlah populasi yaitu 3 kali.
R[1] = 0,670, R[2] = 0,271, R[3] = 0,437, R[4] = 0,333.
Kromosom ke-k yang dipilih sebagai induk jika R[k] > pc. Maka yang akan dijadikan induk adalah kromosom[1], kromosom[3]. Setelah melakukan pemilihan induk, proses selanjutnya adalah menentukan posisi crossover. Hal tersebut dilakukan dengan membangkitkan bilangan acak antara 1 sampai dengan panjang kromosom-1. Dalam kasus ini bilangan acaknya adalah antara 1-2. Misal diperoleh bilangan acaknya 1, maka gen yang ke-1 pada kromosom induk pertama diambil kemudian ditukar dengan gen pada kromosom induk kedua yang belum ada pada induk pertama dengan tetap memperhatikan urutannya. Bilangan acak untuk 2 kromosom induk yang akan di- crossover : C[1] = 2, C[3] = 1
proses crossover :
Populasi setelah di crossover :
Kromosom 1 = [(1,5), (2,3), (3,25), (9,21), (6,8), (7,7) , (10,16), (11,15), (12,22), (13,9), (14,19), (15,11), (16,8), (17,10), (18,7), (19,13), (20,19), (4,24), (5,23), (21,19), (22,13), (23,19), (24,18), (25,17)].
Kromosom 2 = [(1,5), (19,13), (9,21), (10,16), (11,15), (12,22), (3,25), (4,24), (2,3), (13,9), (14,19), (15,11), (5,23), (6,8), (7,7), (8,21) (20,19), (16,8), (17,10), (18,7), (22,13), (23,19), (24,18), (25,17), (21,19)].
Kromosom 3 = [(16,8), (17,10), (11,15), (12,22), (1,5), (19,13), (3,25), (13,9), (10,16), (18,7), (21,19), (14,19), (15,11), (5,23), (6,8), (7,7), (8,21), (4,24), (2,3) , (9,21), , (23,19), (24,18), (25,17) (20,19), (22,13)].
Kromosom 4 = (19,13), (3,25+), (13,9), (10,16), (18,7), (21,19), (14,19), (15,11), (5,23), (6,8), (7,7), [(16,8), (8,21), (4,24), (2,3) , (9,21) , (23,19), (24,18), (25,17) (20,19), (22,13) (17,10), (11,15), (12,22), (1,5)].
e. Mutasi
Jumlah kromosom yang mengalami mutasi dalam satu populasi ditentukan oleh parameter mutation rate(pm). Proses mutasi dilakukan dengan cara menukar gen yang dipilih secara acak dengan gen sesudahnya.Jika gen tersebut berada di akhir kromosom, maka ditukar dengan gen yang pertama. Pertama kita hitung dulu panjang total gen yang ada pada satu populasi:
Panjang total gen = jumlah gen dalam 1 kromosom * jumlah Kromosom = 25 * 4 = 100
Kromosom 2 = [(1,5), (19,13), (9,21), (10,16), (11,15), (12,22), (3,25), (4,24), (2,3), (13,9), (14,19), (15,11), (5,23), (6,8), (7,7), (8,21), (20,19), (16,8), (17,10), (18,7), (22,13), (23,19), (24,18), (25,17), (21,19)].
Kromosom 3 = [(16,8), (17,10), (11,15), (12,22), (1,5), (3,25), (9,21), (13,9), (10,16), (18,7), (21,19), (14,19), (15,11), (5,23), (6,8), (7,7), (8,21), (4,24), (2,3) , (19,13), (23,19), (24,18), (25,17), (20,19), (22,13)].
Kromosom 4 = [(19,13), (3,25), (13,9), (10,16), (18,7), (21,19), (14,19), (15,11), (5,23), (6,8), (7,7), [(16,8), (8,21), (4,24), (2,3) , (9,21) , (23,19), (24,18), (25,17) (20,19), (22,13) (17,10), (11,15), (12,22), (1,5)].
2. Jadwal Hari Selasa 2.1. Kromosom Selasa
K[1] : [(07.00 – 09.30. 04. I) . (07.00 – 09.30. 07. M) . (09.30 – 12.00. 10. K) (09.30 – 12.00. 11. F) . (12.00 - 14.30. 14. N) . (14.30 – 17.00. 20. J)]
K[2] : [(07.00 – 09.30. 19. I) . (07.00 – 09.30. 14. M) . (09.30 – 12.00. 04. D) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
K[3] : [(07.00 – 09.30. 19. I) . (07.00 – 09.30. 04. D) . (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 11. C) . (14.30 – 17.00. 14. N)]
K[4] : [(07.00 – 09.30. 22. F) . (07.00 – 09.30. 10. J) . (09.30 – 12.00. 07. F) (09.30 – 12.00. 04. K) . (12.00 - 14.30. 20. I) . (14.30 – 17.00. 11. N)]
a. Menentukan Nilai Fitness
Fitness [1] : (150 – 100) + (150 – 150) + ( 150 – 60 ) + (150 – 150) + (150 – 100) + (150 – 100) = 240
Fitness [2] : (150 – 60) + (150 – 120) + ( 150 – 120 ) + (150 – 150) + (150 –60) + (150 – 100) = 290
Fitness [3] : (150 – 80) + (150 – 120) + ( 150 – 60 ) + (150 – 90) + (150 – 150) + (150 – 100) = 300
Fitness [4] : (150 – 150) + (150 – 100) + ( 150 – 150 ) + (150 – 60) + (150 – 80) + (150 – 100) = 260
b. Menghitung Nilai Fitness Kromosom Q[i] = F 1 (fitnes
[
I]
)Q[1] = 1
240 = 0, 00417
Q[2] = 1
290 = 0, 00345
Q[3] = 1
Q[4] = 1
260 = 0, 00148
Total Q = 0, 00417 + 0, 00345 + 0, 00385 + 0, 00148 = 0,0148
c. Mencari Propabilitas Kromosom P[i] = Q[i] Total Q
P[1] = 0,004170,0148 = 0,286
P[2] = 0,00345
0,0148 = 0,233
P[3] = 0,00333
0,0148 = 0,225
P[4] = 0,003850,0148 = 0,26
d. Mencari Nilai Komulatif dari Probabilitas ( C ) C[1] = 0,286
C[2] = 0,286 + 0,233 = 0,519 C[3] = 0,519 + 0,255 = 0,774 C[4] = 0,774 + 0,26 = 1,034
Menentukan nilai random R R[1] = 0,421
R[2] = 0,351 R[3] = 0,251 R[4] = 0,556
2.2. Populasi Terbaru Kromosom [1] = [2] :
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 14. M) . (09.30 – 12.00. 04. D) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
Kromosom [2] = [2] :
(09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
Kromosom [3] = [1] :
[(07.00 – 09.30. 04. I) . (07.00 – 09.30. 07. M) . (09.30 – 12.00. 10. K) (09.30 – 12.00. 11. F) . (12.00 - 14.30. 14. N) . (14.30 – 17.00. 20. J)]
Kromosom [4] = [3] :
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 04. D) . (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 11. C) . (14.30 – 17.00. 14. N)]
2.3. Crossover Menggunakan Older Crossover Jika PC = 50%
Harapan dalam 1 generasi ada 50% * 4 = 2 kromosom yang mengalami crossover.
a. Menentukan Nilai acak R sebanyak jumlah populasi R [1] = 0,621
R [2] = 0,351 R [3] = 0,731 R [4] = 0,210
b. Menentukan kromosom induk jika R[k] < PC
Kromosom Induk : Kromosom [2] dan Kromosom [4]. Posisi crossover dibangkitkan berdasarkan bilangan acak 1- 6
C[2] = 2 C[4] = 3
Proses crossover Kromosom [2] = Kromosom [2] >< Kromosom [4] Kromosom [4] = Kromosom [4] >< Kromosom [2] K[2] =
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 14. M) . (09.30 – 12.00. 04. D) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 04. D) . (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 11. C) . (14.30 – 17.00. 14. N)]
K[2] = [(07.00 – 09.30. 04. D) . (07.00 – 09.30. 14. M). (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 11. C) . (14.30 – 17.00. 19. I)]
K[4] =
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 04. D) . (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 11. C) . (14.30 – 17.00. 14. N)]
><
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 14. M) . (09.30 – 12.00. 04. D) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
K[4] = [(07.00 – 09.30. 19. I) . (07.00 – 09.30. 14. M) . (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
c. Populasi Baru Kromosom [1]
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 14. M) . (09.30 – 12.00. 04. D) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
Kromosom [2]
[(07.00 – 09.30. 04. D) . (07.00 – 09.30. 14. M). (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 11. C) . (14.30 – 17.00. 19. I)]
Kromosom [3]
Kromosom [4]
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 14. M) . (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
2.4. Mutasi Menggunakan Swapping Mutation
Panjang total gen 6*4 = 24 PM = 15%
= 0,15 * 24 = 3,6 = 4
Posisi gen yang mengalami mutasi dibangkitkan secara acar yaitu 2, 9, 13, 19.
a. Posisi Gen awal Kromosom [1]
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 14. M) . (09.30 – 12.00. 04. D) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
Kromosom [2]
[(07.00 – 09.30. 04. D) . (07.00 – 09.30. 14. M). (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 11. C) . (14.30 – 17.00. 19. I)]
Kromosom [3]
[(07.00 – 09.30. 04. I) . (07.00 – 09.30. 07. M) . (09.30 – 12.00. 10. K) (09.30 – 12.00. 11. F) . (12.00 - 14.30. 14. N) . (14.30 – 17.00. 20. J)]
Kromosom [4]
[(07.00 – 09.30. 19. I) . (07.00 – 09.30. 14. M) . (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
b. Posisi Gen Setelah di Mutasi Kromosom [1]
Kromosom [2]
[ (07.00 – 09.30. 14. M) . (07.00 – 09.30. 04. D) . (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 11. C) . (14.30 – 17.00. 19. I)]
Kromosom [3]
[ (07.00 – 09.30. 07. M) . (07.00 – 09.30. 04. I) . (09.30 – 12.00. 10. K) (09.30 – 12.00. 11. F) . (12.00 - 14.30. 14. N) . (14.30 – 17.00. 20. J)]
Kromosom [4]
[(07.00 – 09.30. 14. M) . (07.00 – 09.30. 19. I) . (09.30 – 12.00. 17. H) (09.30 – 12.00. 21. B) . (12.00 - 14.30. 21. H) . (14.30 – 17.00. 22. N)]
c. Nilai fitness dari generasi di atas adalah
Fitness [1] : (150 – 80) + (150 – 120) + ( 150 – 120 ) + (150 – 90) + (150 – 60) + (150 – 100) = 330
Fitness [2] : (150 – 120) + (150 – 120) + ( 150 – 100 ) + (150 – 90) + (150 –150) + (150 – 80) = 240
Fitness [3] : (150 – 120) + (150 – 80) + ( 150 – 60 ) + (150 –150) + (150 – 100) + (150 – 100) = 290
Fitness [4] : (150 – 120) + (150 – 80) + ( 150 – 100 ) + (150 – 90) + (150 – 60) + (150 – 100) = 350