Anda di halaman 1dari 10

PERTEMUAN KE 1

INTEGER PROGRAMING

A. Konsep Dasar

Masalah pemrograman matematika di mana variabel dibatasi untuk memiliki nilai inte-ger disebut
masalah pemrograman integer (IP). Banyak aplikasi teknik, industri, dan keuangan melibatkan
kendala bilangan bulat. Misalnya, dalam skenario pembuatan, akan sulit untuk
mengimplementasikan solusi yang menentukan produksi 10,4 mobil atau 7,2 tabel. Nilai pecahan
tidak layak. Untuk masalah pemrograman bilangan bulat, wilayah yang layak tidak kontinu atau
cembung, seperti yang diilustrasikan dalam Gambar 4.1 untuk masalah bilangan bulat dua dimensi
yang sederhana. Perhatikan bahwa titik-titik yang layak untuk masalah ini tidak terletak pada titik-
titik ekstrem di wilayah ini, atau bahkan di perbatasan; dan pada kenyataannya, teknik solusi
elegan yang telah dikembangkan untuk memecahkan masalah pemrograman linier umumnya tidak
menemukan solusi untuk masalah integer. Metode Simplex untuk pemrograman linier menyatu ke
solusi pada titik ekstrim yang biasanya merupakan titik dengan variabel fraksional.
Meskipun formulasi masalah pemrograman bilangan bulat sering terlihat sangat mirip dengan
masalah pemrograman matematika kontinu, kemiripannya dalam beberapa hal menipu. Ekspresi
aljabar fungsi objektif dan kendala dalam dua jenis model mungkin tampak memiliki bentuk yang
serupa, tetapi kendala tambahan yang mensyaratkan bahwa beberapa atau semua variabel memiliki
nilai integer umumnya membuat menyelesaikan masalah integer menjadi jauh lebih sulit. , dari
sudut pandang komputasi. Sebagian besar masalah pemrograman bilangan bulat diklasifikasikan
sebagai keras masalah optimasi, dan banyak masalah pemrograman bilangan bulat milik kelas
masalah NP-keras (dijelaskan dalam Bab 1). Jadi, sementara masalah pemrograman linier umum
dapat dipecahkan dalam waktu polinomial, menemukanoptimal integer solusiuntuk formulasi
yang sama biasanya membutuhkan jumlah waktu komputasi yang eksponensia.
Sebagian besar masalah pemrograman bilangan bulat terkenal sulit, namun beberapa masalah
bilangan bulat mudah diselesaikan. Secara khusus, banyak solusi masalah jaringan linier, seperti
penugasan dan pencocokan masalah, masalah transportasi dan transshipment, dan masalah aliran
jaringan, selalu menghasilkan hasil bilangan bulat, asalkan batas masalah adalah inte-gers. Dalam
masalah ini, semua titik ekstrim dari wilayah yang layak mewakili solusi bilangan bulat; oleh
karena itu, jika masalah ini dirumuskan dan diselesaikan sebagai masalah pemrograman linier,
kami menemukan bahwa metode Simplex menghasilkan solusi integer. Sayangnya, ini hanya
terjadi untuk masalah yang memiliki struktur jaringan, dan untuk sebagian besar masalah bilangan
bulat, formulasi pemrograman linier tidak menyarankan solusi yang mudah.
Untuk masalah pemrograman bilangan bulat dengan sasaran dan kendala linier, orang mungkin
akan menang mengapa kita tidak bisa begitu saja menyelesaikan program linear (LP) dan
kemudian membulatkan jawaban ke bilangan bulat terdekat. Pendekatan pembulatan ternyata lebih
sulit daripada yang terlihat. Sebagai contoh, jika kita memiliki kendala kesetaraan, dan kita
membulatkan beberapa variabel, kita mungkin harus mengumpulkan beberapa yang lain, dan
memilih mana yang naik dan mana yang turun itu sendiri merupakan masalah keputusan bilangan
bulat. Bahkan ketika tidak ada kendala kesetaraan, mudah untuk membangun contoh di mana
pembulatan ke atas atau ke bawah atau ke bilangan bulat terdekat tidak menghasilkan solusi yang
layak. Jadi, secara umum, pembulatan tidak menghasilkan solusi yang memuaskan.
Yang sedang berkata, ada beberapa masalah yang pembulatan bisa efektif. Sebagai contoh, dalam
memecahkan masalah untuk pembuatan ban, jika solusi LP menentukan membuat 1296,4 ban
dengan gaya tertentu, mungkin aman untuk membulatkan jawabannya menjadi 1.296 tanpa secara
drastis mempengaruhi kelayakan atau fungsi tujuan. Sebaliknya, jika produk yang diproduksi
adalah pesawat multi-juta dolar, pembulatan mungkin merupakan solusi yang buruk.
Membulatkan setengah pesawat di sini atau di sana bisa membuat perusahaan gulung tikar. Dalam
beberapa kasus, pedoman sederhana untuk memutuskan apakah pembulatan merupakan opsi yang
tepat mungkin untuk menilai kerusakan (dinyatakan sebagai persentase) terhadap fungsi objektif
yang dihasilkan dari pembulatan. Dalam contoh kami, pembulatan ke bawah 1296,4 ban hampir
pasti akan memiliki dampak yang dapat diabaikan pada total laba, sedangkan pembulatan sejumlah
kecil kemungkinan akan memiliki pengaruh yang signifikan.
Kesulitan yang bahkan lebih dramatis muncul ketika menggunakan pembulatan untuk masalah
bilangan bulat di mana variabel lebih lanjut dibatasi untuk memiliki nilai nol atau satu.
Pertimbangkan masalah perencanaan produksi untuk pabrikan mobil besar seperti General Motors,
di mana harus diputuskan di pabrik mana setiap model mobil harus dibangun. Formulasi untuk
masalah ini mungkin melibatkan variabel xij, masing-masing memiliki nilai satu atau nol,
tergantung pada apakah model i diproduksi di pabrik j, atau tidak. Misalkan ada sepuluh pabrik,
dan masing-masing model hanya dapat ditugaskan untuk satu lokasi. Solusi LP dapat dengan
mudah merekomendasikan sebagian kecil dari masing-masing model di setiap pabrik, namun
pembulatan dapat menghasilkan solusi di mana tidak ada model yang diproduksi di mana pun.
Situasi ini sering dijumpai dalam pemrograman integer; dan dalam kasus seperti itu, solusi LP
hampir tidak memberikan wawasan tentang bagaimana menyelesaikan masalah integer.

B. Masalah Khas Pemrograman Integer

pemrograman matematika di mana semua variabel keputusan harus memiliki nilai integer positif
disebut pemrograman integer umum masalah. Jika semua variabel keputusan terbatas hanya
memiliki nilai nol atau satu, masalahnya kemudian disebut nol– satu masalah pemrograman
(atau pemrograman integer biner). Dalam hal itu, kendala pada variabel kadang-kadang disebut
biner atau Boolean kendala, dan model ini sering disebut dalam bentuk disingkat sebagai masalah
0-1. Variasi pada masalah tersebut muncul jika beberapa variabel harus bilangan bulat, yang lain
harus nol atau satu, sementara yang lain mungkin memiliki nilai nyata. Masalah apa pun yang
melibatkan kombinasi tersebut dijelaskan sebagai masalah pemrograman integer campuran
(MIP). Bagian ini menggambarkan masing-masing jenis masalah integer dengan contoh-contoh
praktis yang khas.

1. Masalah Integer Umum


Ilustrasi pemrograman integer umum dapat ditemukan dalam versi sederhana dari masalah
pemilihan port-folio. Seorang investor ingin membeli portofolio instrumen keuangan yang akan
memberikan pengembalian maksimum yang diharapkan. Banyak produk investasi, seperti di pasar
berjangka misalnya, harus dibeli dalam ukuran lot besar. Kita dapat mendefinisikan variabel x i
untuk menunjukkan jumlah unit keamanan i dalam portofolio. Fungsi obyektif mengukur
pengembalian yang diharapkan, dan masalahnya sering kali memiliki kendala yang membatasi
jumlah risiko yang bersedia diterima oleh investor. Dalam bentuk masalah yang paling sederhana,
kita dapat mengasumsikan bahwa satu-satunya kendala pada portofolio adalah batasan jumlah
dolar yang dapat diinvestasikan. Masalah yang memiliki struktur dasar yang mendasar ini
melibatkan pemilihan investasi sebanyak mungkin dan secara kiasan mengemasnya ke dalam
portofolio dengan ukuran terbatas.
Pandangan tiga dimensi dari ide yang sama ini terlihat dalam masalah yang dikenal sebagai
masalah pemuatan kargo. Pertimbangkan untuk mencoba mengemas kotak ke dalam truk atau
pengiriman kontainer. Variabelnya xij mewakili jumlah kotak tipe i yang akan dimuat ke dalam
wadah j. Kendala untuk jenis masalah ini rumit karena harus menentukan kemasan yang layak
secara spasial.
Masalah penjadwalan karyawan juga dapat dirumuskan sebagai masalah integer umum, di mana
kami mendefinisikan sejumlah pola shift untuk pekerja. Sebagai contoh, sebuah pola bisa membuat
seseorang bekerja pada shift hari Senin, Selasa, dan Rabu, libur dua hari, dan kemudian bekerja
Sabtu dan Minggu malam. Kami kemudian mendefinisikan variabel x i untuk menentukan jumlah
karyawan yang ditugaskan untuk bekerja menggunakan pola i. Tujuannya adalah untuk
meminimalkan total biaya gaji sambil memastikan bahwa ada cukup karyawan yang tersedia di
setiap shift.

2. Permasalahan Zero – One (0–1)


Zero – one (0–1) adalah salah satu masalah integer yang paling umum. Semua variabel dalam
masalah diharuskan untuk mengambil nilai nol atau satu. Seringkali, variabel memiliki interpretasi
abstrak; mereka hanya menunjukkan apakah suatu kegiatan terjadi, atau apakah ada kecocokan
atau tugas tertentu atau tidak.
Salah satu contoh 0-1 sederhana adalah masalah penganggaran modal. Misalkan kita memiliki
sejumlah proyek yang mungkin dari mana kita harus memilih. Setiap proyek memiliki nilai yang
diketahui, dan membutuhkan beberapa tingkat sumber daya seperti pendanaan, ruang, waktu, atau
layanan. Kami mendefinisikan variabel xi untuk memiliki nilai 1 jika proyek i dipilih. Tujuannya
adalah untuk memaksimalkan nilai total dengan batasan pada total anggaran. (Masalah ini pada
awalnya tampaknya merupakan bentuk lain dari masalah pengepakan; tetapi dalam kasus ini,
setiap proyek harus dipilih sekali atau tidak sama sekali.)
Banyak masalah penjadwalan dapat dirumuskan menggunakan variabel 0-1. Sebagai contoh,
dalam penjadwalan produksi lingkungan, kita dapat mendefinisikan variabel xik memiliki nilai 1
jika pekerjaan saya ditugaskan ke mesin k, dan nol sebaliknya. Atau kita mungkin mendefinisikan
variabel yij = 1 jika pekerjaan saya segera mendahului pekerjaan j pada jalur perakitan. Kami
kemudian dapat menggunakan variabel-variabel ini untuk mengembangkan kendala pada waktu
yang tersedia untuk sumber daya, pada tanggal jatuh tempo untuk pekerjaan individu, dan pada
total biaya jadwal.
Contoh sederhana masalah penjadwalan adalah penjadwalan pemeriksaan. Variabel xij diberi nilai
1 jika ujian saya ditugaskan ke periode j. Konflik tidak diperbolehkan, jadi kendala dimasukkan
untuk mencegah dua ujian ditugaskan pada periode yang sama jika ada siswa yang perlu hadir di
kedua ujian. Kendala tambahan dapat mencerminkan batasan pada jumlah ujian per periode, atau
jumlah total kursi di lokasi ujian. Fungsi obyektif harus dalam beberapa cara mengukur kualitas
jadwal yang diberikan.
Variasi populer lainnya adalah rute kendaraan masalah. Misalkan armada truk pada hari tertentu
harus mengirimkan barang dari gudang pusat ke satu set pelanggan. Tujuannya adalah untuk
meminimalkan biaya total dari semua pengiriman. Biaya biasanya diperkirakan berdasarkan
meminimalkan jumlah truk yang digunakan dan total jarak tempuh dan / atau total jam waktu
pengiriman. Satu rumusan umum dari masalah ini mendefinisikan variabel x ijk untuk memiliki
nilai 1 jika pelanggan saya ditugaskan ke truk j dan dikirim segera sebelum pelanggan k. Batasan
dimasukkan untuk memastikan bahwa penugasan tersebut layak (mungkin berdasarkan keahlian
pengemudi, atau berdasarkan perjanjian atau peraturan kontrak).
Salah satu aplikasi praktis yang paling berhasil dari pemrograman integer adalah penjadwalan
awak pesawat masalah. Maskapai pertama merancang jadwal penerbangan yang terdiri dari a
sejumlah besar kaki terbang. Kaki terbang adalah penerbangan khusus pada peralatan tertentu,
seperti 747 dari New York ke Chicago berangkat pukul 6:27 pagi. Kru penerbangan adalah
seperangkat orang lengkap, termasuk pilot, navigator, dan pramugari yang terlatih untuk pesawat
terbang tertentu. Sebuah jadwal kerja atau rotasi adalah kumpulan kaki penerbangan yang layak
untuk awak pesawat, dan yang biasanya berakhir pada titik asal. Variabel x ij memiliki nilai 1 jika
leg penerbangan saya ditugaskan untuk awak j. Tujuannya adalah untuk memastikan bahwa semua
kaki penerbangan ditanggung dengan biaya total minimum. Sebagian besar maskapai penerbangan
utama dunia sekarang menggunakan program integer untuk menugaskan kru untuk terbang, dan
banyak yang mengklaim menghemat jutaan dolar setiap tahun dalam biaya operasi.
Masalah komputasi terdistribusi muncul dalam lingkungan komputasi multiprosesor di mana
program dan file data harus dialokasikan ke berbagai mesin di lokasi yang berbeda. Variabel x ij
memiliki nilai 1 jika modul i ditugaskan ke prosesor j. Tujuannya adalah untuk meminimalkan
total biaya eksekusi (yang mungkin tergantung pada pilihan prosesor) dan biaya komunikasi (yang
dikeluarkan ketika satu prosesor perlu berkomunikasi dengan yang lain).

3. Masalah Integer Campuran (Mix Integer)


Bagian 4.1 diperkenalkan masalah rencana produksi di General Motors. Karena Masalahnya, ada
dua set variabel: perlu memutuskan produk mana yang ditugaskan untuk setiap pabrik, dan
kemudian untuk menentukan tingkat produksi di setiap pabrik. Kita dapat mendefinisikan 0–1
variabel xij = 1 jika produk saya ditugaskan untuk menanam j. Kami kemudian dapat
mendefinisikan variabel yij untuk mewakili jumlah unit produk i untuk diproduksi di pabrik j. Jika
tingkat produksi cukup tinggi, kita mungkin memperlakukanyij variabelsebagai nilai nyata, dan
membulatkannya menjadi bilangan bulat pada akhirnya. Kendala tambahan harus mencegah
produk diproduksi jika tidak ditugaskan ke pabrik. Masalahnya dapat dimodelkan sebagai masalah
bilangan bulat campuran besar dengan 0-1 dan variabel bernilai nyata.
Masalah terkait melibatkan lokasi gudang: mengingat serangkaian lokasi potensial untuk gudang
bagi distributor, pilih lokasi yang akan meminimalkan total biaya pengiriman.
Kita dapat mendefinisikan 0–1 variabel xj untuk memiliki nilai 1 jika lokasi j dipilih. Setelah
diputuskan lokasi mana yang akan digunakan, maka kita harus menyelesaikan beberapa jenis
masalah transportasi untuk mendapatkan produk dari produsen ke gudang, dan dari gudang ke
pelanggan. Variabel bernilai riil yij didefinisikan untuk mewakili jumlah produk yang diangkut
dari pemasok i ke gudang j, dan variabel bernilai riil zjk menunjukkan jumlah produk yang
didistribusikan dari gudang j ke pelanggan k. Total biaya adalah fungsi jarak yang harus ditempuh
oleh produk.

Variasi lebih lanjut, yang dapat dianggap sebagai versi umum lokasi gudang, disebut masalah
biaya tetap. Misalkan ada biaya tetap (dengan variabel 0-1) untuk membuka gudang. Setelah
gudang terbuka, biaya yang tersisa pada dasarnya berkelanjutan. Ada sejumlah masalah praktis
yang cocok untuk jenis formulasi ini. Misalnya, ketika sebuah perusahaan telekomunikasi
memasang kabel serat optik, ada biaya tetap untuk memasang kabel, tetapi kemudian ada biaya
nyata yang berkaitan dengan kapasitas kabel. Ini mengarah pada masalah terkait yang disebut
kapasitas perencanaan.

C. Formulasi Model Zero-One (0–1)


Bagian ini menyajikan beberapa contoh formulasi matematika dari beberapa masalah
pemrograman 0-1 klasik. Formulasi dasar ini sering terjadi dalam praktik nyata, sering dalam
bentuk subproblem dalam aplikasi praktis yang lebih besar. Kami menekankan model ini karena
banyak kemajuan paling praktis dalam pemrograman integer dalam beberapa tahun terakhir adalah
di bidang 0-1 model.
1. Model Traveling Salesman
Misalkan Anda ingin mengunjungi sejumlah kota dan kemudian kembali ke tempat asal Anda. Ini
adalah salah satu masalah yang paling menantang dan paling banyak dipelajari di bidang
kombinatorik. Formulasi ini tampak sederhana, namun telah terbukti sangat sulit untuk
dipecahkan. Tentukan 0–1 variabel xij = 1 jika kota saya dikunjungi segera sebelum kota j. Biarkan
dij mewakili jarak antara kota i dan j. Misalkan ada n kota yang harus dikunjungi. Kemudian
masalahsalesman keliling (TSP) dapat dinyatakan sebagai :

Minimumkan =

Kendala =

Kendala pertama mengatakan bahwa Anda harus pergi ke j kota tepat satu kali, dan kendala kedua
mengatakan bahwa Anda harus meninggalkan setiap kota saya tepat sekali. Kendala-kendala ini
memastikan bahwa ada dua sisi yang berbatasan dengan masing-masing kota, satu masuk dan
keluar, seperti yang kita harapkan. Namun, ini tidak mencegah apa yang disebut sub-tur. Sebuah
sub-tour terjadi ketika ada loop yang berisi subset dari kota. Alih-alih memiliki satu tur dari semua
kota, solusinya dapat terdiri dari dua atau lebih sub-tur. Kendala ketiga menghilangkan sub-tur;
menyatakan bahwa tidak ada himpunan bagian kota yang tepat, S, dapat memiliki total | S | ujung-
ujungnya.
TSP memiliki banyak aplikasi industri praktis. Pertimbangkan masalah penempatan komponen
pada papan sirkuit. Untuk meminimalkan waktu yang dibutuhkan untuk menghasilkan papan,
salah satu pertimbangan utama seringkali adalah jarak yang harus dilalui kepala penempatan di
antara komponen. Contoh lain terjadi pada rute truk atau kapal yang mengirimkan produk ke
pelanggan. (Ketika kami mengizinkan beberapa truk, masalah ini menjadi masalah perutean
kendaraan yang dijelaskan sebelumnya.) Aplikasi lain terjadi dalam lingkungan produksi ketika
diinginkan untuk meminimalkan waktu penyiapan yang bergantung pada urutan. Ketika beberapa
pekerjaan akan diproses pada mesin, total waktu penyiapan untuk setiap pekerjaan seringkali
tergantung pada pekerjaan mana yang mendahuluinya. Situasi ini dapat dimodelkan sebagai TSP,
di mana kami mengurutkan pekerjaan alih-alih mengurutkan urutan kota yang dikunjungi.

2. Model Ransel (Knapsack Model)


Dua versi dari masalah ransel telah dibahas dalam Bagian 4.2 ketika pemilihan portofolio dan
masalah penganggaran modal ditinjau. Anggaplah kita memiliki sejumlah item, dan kita harus
memilih beberapa subset item untuk mengisikita ransel, yang memiliki ruang terbatas. Setiap item,
i, memiliki nilai vi dan memakan w i unit ruang dalam ransel. Biarkan 0-1 variabel xi = 1 jika item
i dipilih, dan biarkan b mewakili total ruang di ransel. Kemudian kita dapat merumuskan masalah
ransel sebagai berikut:
Maksimumkan =

Kendala =

Versi 0-1 dari masalah ransel menyatakan bahwa setiap item adalah unik, dan bahwa masing-
masing item dapat dipilih atau tidak (seperti dalam masalah penganggaran modal). Sedikit
generalisasi masalah ransel menyatakan bahwa Anda dapat memilih lebih dari satu salinan setiap
item, sehingga variabel dapat mengambil nilai integer umum (mungkin dengan batas atas pada
setiap variabel), seperti halnya dengan masalah pemilihan portofolio.

3. Model Pengepakan Bin (Bin Packing Model)


Bin adalah generalisasi dari masalah ransel. Misalkan kita diberi seperangkat m bins dengan
ukuran yang sama, b; dan satu set item yang harus ditempatkan di tempat sampah. Biarkan w i
menjadi ukuran item i. Kami mendefinisikan variabel 0-1 x xij = 1 jika item i ditempatkan di bin j.
Tempat sampah biasanya dinyatakan sebagai masalah meminimalkan jumlah sampah yang
diperlukan untuk mengemas semua barang. Kita dapat membiarkan yj = 1 jika kita perlu
menggunakan bin j. (Catatan bahwa jika yj = 0, maka bin cor-menanggapi tidak memiliki
kapasitas.) Fungsi tujuan meminimalkan jumlah sampah diperlukan

Minimumkan =

Kendala =

Kemasan bin memiliki aplikasi dalam industri di mana, misalnya, ada sejumlah pekerjaan yang
dapat ditugaskan untuk setiap orang yang bekerja di stasiun pada jalur perakitan. Model ini juga
dapat diterapkan ketika memutuskan produk mana yang harus diproduksi di masing-masing dari
beberapa pabrik yang mungkin, atau pelanggan yang harus ditugaskan untuk setiap truk
pengiriman. Tentu saja, masing-masing masalah ini melibatkan kriteria dan kendala tambahan.

4. Mengatur Partisi / Penutup / Model Pengepakan


Banyak masalah dalam optimasi kombinatorial termasuk (sebagai sub-masalah) mempartisi
sekelompok item ke dalam optimal himpunan bagian yang. Misalnya, perutean kendaraan
mengharuskan kami mengalokasikan pelanggan ke kendaraan. Penjadwalan awak pesawat
mengharuskan kami mengalokasikan kaki penerbangan ke awak. Penjemputan sampah kota
mengharuskan kami mengalokasikan blok jalan khusus untuk truk. Masing-masing subproblem ini
dapat dimodelkan dalam bentuk berikut sebagai masalah pemartisian yang disetel:

Minimumkan =
Kendala =

Dimanaij = 1 jika item i dimasukkan dalam subset (potensial) j. Setiap kolom dari matriks batasan
m × n mewakili kombinasi item yang layak. Misalnya, setiap kolom mungkin merepresentasikan
barang-barang yang layak dimuat ke dalam truk untuk dikirim ke pelanggan; atau barang-
barangnya bisa berupa ruas jalan yang membutuhkan pengumpulan sampah, dan sebuah kolom
akan mewakili rute yang memungkinkan bagi truk untuk mengambil sampah. Biaya cj mewakili
biaya pengiriman (atau perjalanan, atau produksi) yang merupakan bagian dari barang. Variabel
xj = 1 jika kita memutuskan untuk memasukkan subset tertentu dalam solusi kami.
Dalam masalah pengaturan partisi, semua item harus dimasukkan tepat satu kali. Dalam perutean
kendaraan, misalnya, kami biasanya mengharuskan satu truk untuk melakukan perjalanan ke
masing-masing pelanggan. Dalam masalah yang sedikit berbeda, set meliputi masalah, kami
mengharuskan setiap item dipilih setidaknya satu kali. Misalnya, dalam masalah pengumpulan
sampah, dan dalam masalah penjadwalan kru, setiap jalan (setiap kaki penerbangan) harus dicakup
setidaknya satu kali; tetapi juga layak untuk menutupi jalan yang sama (kaki terbang) dua kali, jika
ini ternyata menjadi solusi yang paling efisien. (Truk kedua tidak akan mengambil sampah, dan
awak penerbangan kedua akan naik sebagai penumpang.) Setel penutup berbeda dari partisi yang
ditetapkan karena kendala adalah “≥” ketidaksetaraan alih-alih persamaan.
Masalah pengemasan set menggambarkan situasi serupa lainnya. Dalam beberapa masalah
penjadwalan produksi, kami diberikan daftar pesanan, dan kami memiliki kemungkinan subset
pesanan yang dapat digabungkan pada mesin yang berbeda. Dalam beberapa kasus, mungkin tidak
ada sumber daya yang cukup untuk memenuhi semua permintaan. Masalahnya adalah untuk
memilih subset optimal pesanan untuk memaksimalkan beberapa fungsi keuntungan, p j.Masalah
ini dapat dirumuskan sebagai :

Maksimumkan =
Kendala =

Kita memilih item sebanyak mungkin, tetapi kami tidak diperbolehkan untuk memproses item
lebih dari sekali. Kami akan meninjau kembali masalah jenis ini secara lebih rinci di Bagian 4.8,
di mana kami membahas pembuatan kolom.

5. Model Penugasan Umum


Bagian 3.3 menjelaskan masalah penugasan, yang dianggap sebagai salah satu yang paling mudah
masalah kombinatorial untuk dipecahkan. Masalahpenugasan dapat dirumuskan sebagai berikut:

Minimumkan =

Kendala =

Representasi klasik ini dapat diilustrasikan oleh seperangkat pekerjaan yang harus dialokasikan
untuk sekelompok pekerja. Istilah c ij merupakan biaya untuk menugaskan pekerjaan i kepada
karyawan j. Kendala pertama mengharuskan setiap pekerjaan ditugaskan kepada satu karyawan;
dan kendala kedua menyatakan bahwa setiap karyawan harus melakukan persis satu pekerjaan.
Masalah penugasan umum adalah perpanjangan sederhana di mana setiap pekerjaan harus
ditetapkan untuk satu karyawan, tetapi setiap karyawan memiliki kapasitas untuk melakukan lebih
dari satu pekerjaan. Secara khusus, misalkan setiap karyawan, j, memiliki waktu terbatas, bj) (jam
tersedia, dan pekerjaan yang saya akan mengambil total karyawan ja dariij. jam Kemudian,
masalah tugas umum dapat dirumuskan sebagai:

Minimumkan =

Kendala =
Seperti dibahas sebelumnya, masalah penugasan umum memiliki aplikasi dalam masalah perutean
kendaraan, di mana setiap pesanan pelanggan harus ditetapkan ke satu truk, tetapi satu truk dapat
menampung lebih dari satu pesanan pelanggan , tergantung pada batasan kapasitas.

Anda mungkin juga menyukai