program 0-1_baru.pdf

Embed Size (px)

Citation preview

  • RISET OPERASIONALRISET OPERASIONAL

    (PROGRAM 0(PROGRAM 0--1)1)

    Mikhratunnisa, S.Si.,M.Si.Email: [email protected], S.Si.,M.Si.Email: [email protected]

    JURUSAN TEKNOLOGI INDUSTRI PERTANIANFAKULTAS TEKNOLOGI PERTANIAN

    UNIVERSITAS TEKNOLOGI SUMBAWA

  • PROGRAM 0PROGRAM 0--11 Program 0-1 merupakan kasus khusus program bilangan bulat,

    dimana Xi={0,1} untuk semua i. Penyelesaian program 0-1 sebenarnya lebih mudah dilakukan

    dengan menguji semua kemungkinannya mengingat semuavariabelnya hanya dapat bernilai 0 atau 1.

    Akan tetapi pengujian tersebut memakan waktu lama jikajumlah variabelnya cukup besar.

    Penyelesaian program 0-1 dilakukan dengan metode enumerasiimplisit. Enumerasi implisist mirip dengan metode cabangbatas (branch & bound), hanya saja aturan pencabangan,pembatasan dan penghentian cabang diubah lebih sederhanakarena setiap variabelnya hanya bisa bernilai 0 dan 1.

    Program 0-1 merupakan kasus khusus program bilangan bulat,dimana Xi={0,1} untuk semua i.

    Penyelesaian program 0-1 sebenarnya lebih mudah dilakukandengan menguji semua kemungkinannya mengingat semuavariabelnya hanya dapat bernilai 0 atau 1.

    Akan tetapi pengujian tersebut memakan waktu lama jikajumlah variabelnya cukup besar.

    Penyelesaian program 0-1 dilakukan dengan metode enumerasiimplisit. Enumerasi implisist mirip dengan metode cabangbatas (branch & bound), hanya saja aturan pencabangan,pembatasan dan penghentian cabang diubah lebih sederhanakarena setiap variabelnya hanya bisa bernilai 0 dan 1.

  • Metode Enumerasi ImplisitIterasi dalam metode enumerasi implisit mirip denganmetode cabang batas, hanya saja iterasi dalam metodeenumerasi implisit digambarkan sebagai pohon biner.

    Variabel yang sudah ditetapkan nilainya (1 atau 0) disebutvariabel tetap (fixed variable), dan variabel yang belumditetapkan nilainya disebut variabel bebas (free variable).

    Metode Enumerasi ImplisitIterasi dalam metode enumerasi implisit mirip denganmetode cabang batas, hanya saja iterasi dalam metodeenumerasi implisit digambarkan sebagai pohon biner.

    Variabel yang sudah ditetapkan nilainya (1 atau 0) disebutvariabel tetap (fixed variable), dan variabel yang belumditetapkan nilainya disebut variabel bebas (free variable).

  • Algoritma enumerasi implisit untuk menyelesaikanprogram 0-1 sebagai berikut:

    1. Langkah Maju (forward step)Ujilah apakah suatu titik iterasi perlu dicabangkan. Jika perlu,cabangkan titik tersebut ke kiri dengan memberi nilai 1 padasuatu variabel bebas. lakukan terus hingga sampai pada suatutitik yang tidak perlu dicabangkan lagi.

    2. Langkah Balik (Backtracking)Carilah titik terdekat di atasnya yang hanya memiliki sebuahcabang kiri (misal titikVk).Apabila semua titik diatasnyasudah memiliki dua cabang, hentikan proses.

    Cabangkan titikVk ke kanan dengan mengambil Xk=0Kembali ke langkah 1.

    Algoritma enumerasi implisit untuk menyelesaikanprogram 0-1 sebagai berikut:

    1. Langkah Maju (forward step)Ujilah apakah suatu titik iterasi perlu dicabangkan. Jika perlu,cabangkan titik tersebut ke kiri dengan memberi nilai 1 padasuatu variabel bebas. lakukan terus hingga sampai pada suatutitik yang tidak perlu dicabangkan lagi.

    2. Langkah Balik (Backtracking)Carilah titik terdekat di atasnya yang hanya memiliki sebuahcabang kiri (misal titikVk).Apabila semua titik diatasnyasudah memiliki dua cabang, hentikan proses.

    Cabangkan titikVk ke kanan dengan mengambil Xk=0Kembali ke langkah 1.

  • Bentuk Standar Program 0-1

    Minimumkandengan

    dengan kendala:

    nnxcxcxcZ ...2211

    0jc j

    Bentuk Standar Program 0-1

    Minimumkandengan

    dengan kendala:

    1,0,...,,...

    ...

    ...

    21

    2211

    22222121

    11212111

    n

    mnmnmm

    nn

    nn

    xxx

    bxaxaxa

    bxaxaxabxaxaxa

  • Perubahan soal ke bentuk standar program 0-1 dilakukandengan cara sebagai berikut:1. Jika soal memaksimumkan, maka jadikan soal meminimumkan

    dengan mengalikan pada fungsi tujuan dengan (-1)2. Jika ada kendala berbentuk pertidaksamaan , maka diubah

    kebentuk pertidaksamaan dengan mengalikan keduaruasnya dengan (-1)

    3. Jika ada kendala berbentuk persamaan, maka diubah menjadi2 buah kendala yang masing-masing berupa pertidaksamaan

    dan4. Jika , maka gantilah dengan , baik pada

    fungsi tujuan maupun pada kendalanya.

    jc

    Perubahan soal ke bentuk standar program 0-1 dilakukandengan cara sebagai berikut:1. Jika soal memaksimumkan, maka jadikan soal meminimumkan

    dengan mengalikan pada fungsi tujuan dengan (-1)2. Jika ada kendala berbentuk pertidaksamaan , maka diubah

    kebentuk pertidaksamaan dengan mengalikan keduaruasnya dengan (-1)

    3. Jika ada kendala berbentuk persamaan, maka diubah menjadi2 buah kendala yang masing-masing berupa pertidaksamaan

    dan4. Jika , maka gantilah dengan , baik pada

    fungsi tujuan maupun pada kendalanya.

    0kc kx kx1

  • Untuk mengurangi jumlah titik iterasi maka pada setiap titikdilakukan proses uji penyelesaian nol (zero completion test) danuji infisibilitas (infeasibility test). Kedua uji ini digunakan untukmenentukan apakah titik tersebut perlu dicabangkan atau tidak.Jika perlu, maka percabangan kiri dengan mengambil

    . Jika tidak perlu dicabangkan, maka lakukan prosesbacktracking.

    1ix

  • Uji Penyelesaian Nol

    Pada awal proses belumditemukan batas atas

    penyelesaian sehingga Zudiambil

  • Uji Infisibilitas Uji infisibilitas digunakan untuk menentukan apakah dalamproses berikutnya nanti akan mungkin memperolehpenyelesaian fisibel (memenuhi semua kendala). Jiakmungkin maka dilakukan percabangan untuk memperolehpenyelesaian lainnya. Jika tidak mungkin maka titik tersebuttidak perlu dicabangkan lagi.

    Uji infisibilitas dilakukan dengan mengevaluasi besarnyanilai maksimum variabel pengetat pada tiap kendala.

    Uji infisibilitas digunakan untuk menentukan apakah dalamproses berikutnya nanti akan mungkin memperolehpenyelesaian fisibel (memenuhi semua kendala). Jiakmungkin maka dilakukan percabangan untuk memperolehpenyelesaian lainnya. Jika tidak mungkin maka titik tersebuttidak perlu dicabangkan lagi.

    Uji infisibilitas dilakukan dengan mengevaluasi besarnyanilai maksimum variabel pengetat pada tiap kendala.

  • Uji infisibilitas pada titik-k

  • Contoh

    Selesaikan program 0-1 berikut:MinimumkanKendala

    PenyelesaianSoal di atas sudah dalam bentuk standar, yaitu meminimumkandengan semua dan semua kendala berbentuk .

    54321 32654 xxxxxZ

    1,0,...,,5222512324

    521

    54321

    54321

    xxx

    xxxxx

    xxxxx

    Contoh

    Selesaikan program 0-1 berikut:MinimumkanKendala

    PenyelesaianSoal di atas sudah dalam bentuk standar, yaitu meminimumkandengan semua dan semua kendala berbentuk .

    1,0,...,,5222512324

    521

    54321

    54321

    xxx

    xxxxx

    xxxxx

    0jc

  • Program 0-1 (program mula-mula)

    Karena pada awalnya belumditemukan penyelesaian fisibelmaka diambil batas ataspenyelesaiannya = . Padaprogram-0 belum ada variabelyang diberi nilai sehingga semuavariabel merupakan variabel bebas.

    Uji Penyelesaian NolAmbil untuk semuavariabel bebas (berarti

    maka Z=4(0)+5(0)+6(0)+2(0)+3(0)=0.Karena Z

  • Uji InfisibilitasUntuk menjadikan kendalaberbentuk persamaan makaperlu ditambahkan variabelpengetat a dan b pada kendala 1dan kendala 2.Kendala 1:

    maka

    Kendala 2:

    maka

    Karena danmaka titik-1 perlu dicabangkan.

    Ambil X1 untuk dijadikanvariabel tetap, dan percabangandilakukan dengan mengambilX1=1. (program-1)

    ,5)1(2)0(2)1(2)1(515max b0max a 0max b

    54321

    54321

    54321

    2225552225

    52225

    xxxxxbbxxxxx

    xxxxx

    Uji InfisibilitasUntuk menjadikan kendalaberbentuk persamaan makaperlu ditambahkan variabelpengetat a dan b pada kendala 1dan kendala 2.Kendala 1:

    maka

    Kendala 2:

    maka

    Karena danmaka titik-1 perlu dicabangkan.

    Ambil X1 untuk dijadikanvariabel tetap, dan percabangandilakukan dengan mengambilX1=1. (program-1)

    54321

    54321

    54321

    2324112324

    12324

    xxxxxa

    axxxxx

    xxxxx

    ,70)1(2)0(3)1(2)1(41max a

    0max a 0max b

  • Program-1 (X1=1)

    Substitusi X1=1 pada modelprogram-0 maka diperoleh:MinimumkanKendala

    Uji Penyelesaian Nol

    Variabel bebas: {X2,,X5}.Dengan mengambil X2=X3=x4=x5=0 maka diperolehZ=4

  • Uji InfisibilitasKendala 1

    maka

    7>0

    Kendala 2

    32323232

    5432

    5432

    axxxx

    xxxx

    5432 2323 xxxxa

    maka

    5>0

    Karena keduanya makatitik-1 perlu dicabangkan lagidengan mengambil X2=1(program 2).

    0

    5432 22254 xxxxb ,5max b

    Uji InfisibilitasKendala 1

    maka

    7>0

    Kendala 2

    ,7max a

    4222542225

    5432

    5432

    bxxxx

    xxxx

    maka

    5>0

    Karena keduanya makatitik-1 perlu dicabangkan lagidengan mengambil X2=1(program 2).

  • Program 2 (X1=1, X2=1)Substitusi X2=1 pada program-1MinimumkanKendala

    Uji Penyelesaian NolDengan mengambil X3=X4=X5=0diperoleh Z=9.Kendala 1:Kendala 2:

    Semua kendala terpenuhioleh penyelesaian nol. MakaZ menjadi batas atas baru.Diperoleh Zu=9. Ujiinfisibilitas tidak perludilakukan.

    Setelah diperoleh Zu baru(=9), lakukan Backtrackingke titik terdekat di atasnya,yakni titik-1. Cabangkantitik-1 ke kanan denganmengambil X2=0 (program-3).

    543 3269 xxxZ

    1,0,...,1222

    523

    53

    543

    543

    xx

    xxx

    xxx

    Program 2 (X1=1, X2=1)Substitusi X2=1 pada program-1MinimumkanKendala

    Uji Penyelesaian NolDengan mengambil X3=X4=X5=0diperoleh Z=9.Kendala 1:Kendala 2:

    Semua kendala terpenuhioleh penyelesaian nol. MakaZ menjadi batas atas baru.Diperoleh Zu=9. Ujiinfisibilitas tidak perludilakukan.

    Setelah diperoleh Zu baru(=9), lakukan Backtrackingke titik terdekat di atasnya,yakni titik-1. Cabangkantitik-1 ke kanan denganmengambil X2=0 (program-3).

    ,00)0(2)0(3 50 ,0)0(2)0(2)0(2

    50

  • Program 3 (X1=1, X2=0)Substitusi X2=0 pada program-1MinimumkanKendala

    Uji Penyelesaian NolDengan mengambil X3=X4=X5=0diperoleh Z=4. 4

  • Program 4 (X1=1, X2=0,X3=1)Substitusi X3=1 pada program-3,MinimumkanKendala

    Uji Penyelesaian NolDengan mengambil X4=X5=0diperoleh Z=10, 10>Zu (Zu=9). Iniberati bahwa titik-4 tidak akanmenghasilkan penyelesaian yang lebihoptimal dibandingkan penyelesaiansebelumnya (=9). Jadi titik-4 tidakperlu dicabangkan lagi.Backtracking terdekat berikutnyaadalah dengan mengambil X3=0pada titik-3 (program-5).

    Program-5 (X1=1, X2=0,X3=0)

    Substitusi X3=0 pada program-3,MinimumkanKendala

    Uji Penyelesaian NolDengan mengambil X4=X5=0maka Z=4, 4Zu (Zu=9). Iniberati bahwa titik-4 tidak akanmenghasilkan penyelesaian yang lebihoptimal dibandingkan penyelesaiansebelumnya (=9). Jadi titik-4 tidakperlu dicabangkan lagi.Backtracking terdekat berikutnyaadalah dengan mengambil X3=0pada titik-3 (program-5).

    Program-5 (X1=1, X2=0,X3=0)

    Substitusi X3=0 pada program-3,MinimumkanKendala

    Uji Penyelesaian NolDengan mengambil X4=X5=0maka Z=4, 4

  • Uji InfisibilitasKendala 1:maka

    Kendala 2:maka

    Karena pada kendala keduamaka dilakukan prosesBacktracking .Titik terdekat yangdapat dicabangkan adalah titik-0.percabangan dilakukan denganmengambil X1=0 (program-6).

    Program-6 (X1=0)

    Substitusi X1=0 pada program-0(program mula-mula),MinimumkanKendala

    Uji Penyelesaian NolJika X2=X3=X4=X5=0 maka Z=0,0

  • Uji InfisibilitasKendala 1:maka

    Kendala 2:maka

    Karena tidak ada danyang negatif maka titik-6 perludicabangkan dengan mengambilX2=1 (program-7).

    Program-7 (X1=0, X2=1)

    Substitusi X2=1 pada program-6,MinimumkanKendala:

    Uji Penyelesaian NolJika X3=X4=X5=0 maka Z=5,5

  • Program-8 (X1=0, X2=0)Substitusi X2=0 pada program-6,MinimumkanKendala

    Uji Penyelesaian NolJika X3=X4=X5=0 maka Z=0,0

  • Sehingga diperoleh penyelesaian optimum:X1 = 0, X2 = 1, X3=X4=X5=0dengan 5min Z

  • Gambar Program-1(X1=1)

    Gambar Program-2 (X1=1,X2=1)

  • Gambar Program-3(X1=1, X2=0)

    Gambar Program-4 (X1=1,X2=0, X3=1)

  • Gambar Program-5(X1=1, X2=0, X3=0)

    Gambar Program-6(X1=0)

  • Gambar Program-7(X1=0, X2=1)

    Gambar Program-8 (X1=0,X2=0)