Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Pada artikel ini kami akan memberi tahu Anda bagaimana kami memecahkan masalah kurangnya sel bebas di gudang dan pengembangan algoritma optimasi diskrit untuk memecahkan masalah tersebut. Mari kita bicara tentang bagaimana kita β€œmembangun” model matematika dari masalah optimasi, dan tentang kesulitan yang tidak terduga yang kita temui saat memproses data masukan untuk algoritma.

Jika Anda tertarik dengan penerapan matematika dalam bisnis dan Anda tidak takut dengan transformasi identitas rumus yang kaku di tingkat kelas 5, selamat datang di kucing!

Artikel ini akan bermanfaat bagi mereka yang menerapkannya WMS-sistem, bekerja di industri gudang atau logistik produksi, serta pemrogram yang tertarik pada penerapan matematika dalam bisnis dan optimalisasi proses dalam suatu perusahaan.

Bagian pengantar

Publikasi ini melanjutkan rangkaian artikel di mana kami berbagi pengalaman sukses kami dalam menerapkan algoritma optimasi dalam proses gudang.

Π’ Artikel sebelumnya menjelaskan secara spesifik gudang tempat kami menerapkan WMS-sistem, dan juga menjelaskan mengapa kami perlu memecahkan masalah pengelompokan kumpulan barang yang tersisa selama implementasi WMS-sistem, dan bagaimana kami melakukannya.

Ketika kami selesai menulis artikel tentang algoritma optimasi, ternyata jumlahnya sangat besar, jadi kami memutuskan untuk membagi materi yang terkumpul menjadi 2 bagian:

  • Pada bagian pertama (artikel ini) kita akan berbicara tentang bagaimana kita β€œmembangun” model matematika dari masalah tersebut, dan tentang kesulitan besar yang tidak terduga yang kita temui saat memproses dan mengubah data masukan untuk algoritma.
  • Pada bagian kedua kita akan mempertimbangkan secara rinci implementasi algoritma dalam bahasa tersebut C + +, kami akan melakukan eksperimen komputasi dan merangkum pengalaman yang kami peroleh selama penerapan β€œteknologi cerdas” tersebut dalam proses bisnis pelanggan.

Cara membaca artikel. Jika Anda membaca artikel sebelumnya, maka Anda bisa langsung menuju ke bab β€œIkhtisar Solusi yang Ada”; jika belum, maka uraian masalah yang sedang diselesaikan ada pada spoiler di bawah ini.

Deskripsi masalah yang diselesaikan di gudang pelanggan

Kemacetan dalam proses

Pada tahun 2018, kami menyelesaikan proyek untuk dilaksanakan WMS-sistem di gudang β€œTrading House β€œLD” di Chelyabinsk. Kami menerapkan produk β€œ1C-Logistics: Warehouse Management 3” untuk 20 tempat kerja: operator WMS, pemilik toko, pengemudi forklift. Luas gudang rata-rata sekitar 4 ribu m2, jumlah sel 5000 dan jumlah SKU 4500. Gudang tersebut menyimpan ball valve produksi kami sendiri dengan berbagai ukuran mulai dari 1 kg hingga 400 kg. Persediaan di gudang disimpan secara batch, karena perlu dilakukan pemilihan barang sesuai FIFO.

Selama perancangan skema otomatisasi proses gudang, kami dihadapkan pada masalah penyimpanan inventaris yang tidak optimal. Kekhususan penyimpanan dan peletakan crane sedemikian rupa sehingga satu unit sel penyimpanan hanya dapat menampung barang-barang dari satu batch (lihat Gambar 1). Produk tiba di gudang setiap hari dan setiap kedatangan merupakan batch terpisah. Secara total, sebagai hasil dari 1 bulan pengoperasian gudang, 30 batch terpisah dibuat, meskipun masing-masing batch harus disimpan dalam sel terpisah. Produk seringkali dipilih tidak dalam palet utuh, tetapi dalam potongan, dan sebagai hasilnya, di zona pemilihan potongan di banyak sel, gambar berikut diamati: dalam sel dengan volume lebih dari 1 m3 ada beberapa potongan crane yang menempati kurang dari 5-10% volume sel.

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)
Gambar 1. Foto beberapa bagian dalam satu sel

Jelas kapasitas penyimpanan tidak digunakan secara maksimal. Untuk membayangkan skala bencana, saya dapat memberikan angka: rata-rata, terdapat 1 hingga 3 sel dengan volume lebih dari 100 m300 dengan saldo β€œsangat kecil” selama berbagai periode pengoperasian gudang. Karena ukuran gudang relatif kecil, selama musim sibuk gudang, faktor ini menjadi β€œhambatan” dan sangat memperlambat proses penerimaan dan pengiriman gudang.

Ide solusi masalah

Timbul gagasan: kumpulan sisa makanan dengan tanggal terdekat harus dikurangi menjadi satu kumpulan tunggal, dan sisa makanan tersebut dengan kumpulan terpadu harus ditempatkan secara kompak dalam satu sel, atau dalam beberapa sel, jika tidak ada cukup ruang dalam satu sel untuk menampungnya. seluruh jumlah sisa. Contoh β€œkompresi” tersebut ditunjukkan pada Gambar 2.

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)
Gambar.2. Skema untuk mengompresi residu dalam sel

Hal ini memungkinkan Anda mengurangi secara signifikan ruang gudang yang ditempati yang akan digunakan untuk penempatan barang baru. Dalam situasi di mana kapasitas gudang kelebihan beban, tindakan seperti itu sangat diperlukan, jika tidak, mungkin tidak ada cukup ruang kosong untuk menampung barang baru, yang akan menyebabkan terhentinya proses penempatan dan pengisian ulang di gudang dan, sebagai konsekuensinya, terhentinya penerimaan dan pengiriman. Sebelumnya, sebelum penerapan sistem WMS, pengoperasian seperti itu dilakukan secara manual, sehingga tidak efektif, karena proses pencarian saldo yang sesuai di dalam sel cukup lama. Kini, dengan diperkenalkannya sistem WMS, kami memutuskan untuk mengotomatiskan proses, mempercepatnya, dan menjadikannya cerdas.

Proses penyelesaian masalah tersebut dibagi menjadi 2 tahap:

  • pada tahap pertama kami menemukan kelompok batch yang tanggalnya hampir sama untuk kompresi (khusus untuk tugas ini artikel sebelumnya);
  • pada tahap kedua, untuk setiap kelompok batch kami menghitung penempatan sisa barang yang paling kompak di dalam sel.

Pada artikel kali ini kita akan fokus pada algoritma tahap kedua.

Tinjauan solusi yang ada

Sebelum melanjutkan ke deskripsi algoritma yang telah kami kembangkan, ada baiknya melakukan tinjauan singkat tentang sistem yang sudah ada di pasar WMS, yang menerapkan fungsi kompresi optimal serupa.

Pertama-tama, perlu diperhatikan produk β€œ1C: Enterprise 8. WMS Logistics. Manajemen gudang 4", yang dimiliki dan direplikasi oleh 1C dan milik generasi keempat WMS-sistem yang dikembangkan oleh AXELOT. Sistem ini mengklaim fungsionalitas kompresi, yang dirancang untuk menyatukan sisa-sisa produk yang berbeda dalam satu sel yang sama. Perlu disebutkan bahwa fungsi kompresi dalam sistem seperti itu juga mencakup kemungkinan lain, misalnya, mengoreksi penempatan barang di sel sesuai dengan kelas ABC-nya, namun kami tidak akan membahasnya secara mendalam.

Jika Anda menganalisis kode sistem 1C: Enterprise 8. WMS Logistics. Manajemen gudang 4" (yang terbuka di bagian fungsi ini), kita dapat menyimpulkan sebagai berikut. Algoritme kompresi sisa menerapkan logika linier yang agak primitif dan tidak ada pembicaraan tentang kompresi β€œoptimal”. Tentu saja, hal ini tidak mengatur pengelompokan partai. Beberapa klien yang menerapkan sistem seperti itu mengeluhkan hasil perencanaan kompresi. Misalnya, dalam praktiknya, situasi berikut sering terjadi selama kompresi: 100 pcs. Direncanakan untuk memindahkan sisa barang dari satu sel ke sel lain, dimana 1 buah berada. barang, meskipun optimal dari sudut pandang konsumsi waktu untuk melakukan hal sebaliknya.

Selain itu, fungsi mengompresi sisa barang dalam sel diumumkan di banyak negara asing. WMS-sistem, tapi, sayangnya, kami tidak memiliki masukan nyata mengenai efektivitas algoritme (ini adalah rahasia dagang), apalagi gagasan tentang kedalaman logikanya (perangkat lunak sumber tertutup berpemilik), jadi kami tidak dapat menilai.

Cari model matematika dari masalahnya

Untuk merancang algoritma berkualitas tinggi untuk memecahkan suatu masalah, pertama-tama kita perlu merumuskan masalah ini secara matematis dengan jelas, itulah yang akan kita lakukan.

Ada banyak sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), yang berisi sisa-sisa beberapa barang. Berikut ini, kita akan menyebut sel-sel tersebut sebagai sel donor. Mari kita tunjukkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) volume barang di dalam sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)$.

Penting untuk dikatakan bahwa hanya satu produk dari satu batch, atau beberapa batch yang sebelumnya digabungkan menjadi satu cluster (baca: artikel sebelumnya), hal ini disebabkan oleh kekhususan penyimpanan dan penyimpanan barang. Produk yang berbeda atau kelompok batch yang berbeda harus menjalankan prosedur kompresinya sendiri-sendiri.

Ada banyak sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), di mana residu dari sel donor berpotensi ditempatkan. Kami selanjutnya akan menyebut sel-sel tersebut sebagai sel kontainer. Ini bisa berupa sel gratis di gudang atau sel donor dari berbagai jenis Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1). Selalu banyak Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) adalah bagian Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1).

Untuk setiap sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) dari banyak Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) Batasan kapasitas telah ditetapkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), diukur dalam dm3. Satu dm3 berbentuk kubus dengan panjang sisi 10 cm, produk yang disimpan di gudang cukup besar, sehingga dalam hal ini diskritisasi tersebut cukup.

Diberikan matriks jarak terpendek Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) dalam meter antara setiap pasangan sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)Dimana Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ΠΈ Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) milik set Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ΠΈ Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) masing.

Mari kita tunjukkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) β€œbiaya” pemindahan barang dari selMatematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ke dalam sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1). Mari kita tunjukkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) β€œbiaya” pemilihan wadah Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) untuk memindahkan residu dari sel lain ke dalamnya. Bagaimana tepatnya dan dalam satuan pengukuran apa nilai-nilai tersebut akan dihitung Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ΠΈ Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) kita akan pertimbangkan lebih lanjut (lihat bagian menyiapkan data masukan), untuk saat ini cukup dikatakan bahwa nilai tersebut akan berbanding lurus dengan nilai Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ΠΈ Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) masing.

Mari kita nyatakan dengan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) variabel yang mengambil nilai 1 jika sisanya berasal dari sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) dipindahkan ke wadah Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), dan 0 sebaliknya. Mari kita nyatakan dengan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) variabel yang mengambil nilai 1 jika wadahnya Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) berisi sisa barang, dan 0 sebaliknya.

Tugas tersebut dinyatakan sebagai berikut: Anda perlu menemukan begitu banyak kontainer Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) dan dengan demikian β€œmenempelkan” sel donor ke sel wadah untuk meminimalkan fungsinya

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

di bawah pembatasan

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Secara total, ketika menghitung solusi masalah, kami berusaha untuk:

  • pertama, untuk menghemat kapasitas penyimpanan;
  • kedua, untuk menghemat waktu pemilik toko.

Pembatasan terakhir berarti kami tidak dapat memindahkan barang ke dalam wadah yang tidak kami pilih, sehingga tidak β€œmembebankan biaya” untuk pemilihannya. Pembatasan ini juga berarti bahwa volume barang yang dipindahkan dari sel ke kontainer tidak boleh melebihi kapasitas kontainer. Yang kami maksud dengan memecahkan suatu masalah adalah sekumpulan wadah Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) dan metode untuk menempelkan sel donor ke wadah.

Rumusan masalah optimasi ini bukanlah hal baru, dan telah dipelajari oleh banyak ahli matematika sejak awal tahun 80an abad yang lalu. Dalam literatur asing terdapat 2 masalah optimasi dengan model matematika yang sesuai: Masalah Lokasi Fasilitas Berkapasitas Sumber Tunggal ΠΈ Masalah Lokasi Fasilitas Berkapasitas Multi-Sumber (kita akan membicarakan perbedaan tugas nanti). Patut dikatakan bahwa dalam literatur matematika, rumusan dari dua masalah optimasi tersebut dirumuskan dalam kaitannya dengan lokasi perusahaan di lapangan, oleh karena itu dinamakan β€œLokasi Fasilitas”. Hal ini sebagian besar merupakan penghormatan terhadap tradisi, karena kebutuhan untuk memecahkan masalah kombinatorial seperti itu pertama kali datang dari bidang logistik, terutama dari sektor industri militer pada tahun 50-an abad yang lalu. Ditinjau dari lokasi perusahaan, tugas-tugas tersebut dirumuskan sebagai berikut:

  • Terdapat sejumlah kota terbatas yang berpotensi untuk menempatkan perusahaan manufaktur (selanjutnya disebut kota manufaktur). Untuk setiap kota manufaktur, biaya pembukaan perusahaan di dalamnya ditentukan, serta batasan kapasitas produksi perusahaan yang dibuka di dalamnya.
  • Terdapat sekumpulan kota terbatas di mana klien sebenarnya berada (selanjutnya disebut kota klien). Untuk setiap kota klien tersebut, volume permintaan produk ditentukan. Untuk mempermudah, kita asumsikan hanya ada satu produk yang diproduksi oleh perusahaan dan dikonsumsi oleh pelanggan.
  • Untuk setiap pasangan kota-produsen dan kota-klien, nilai biaya transportasi untuk pengiriman volume produk yang diperlukan dari produsen ke klien ditentukan.

Anda perlu mencari kota mana untuk membuka bisnis dan cara menghubungkan klien ke bisnis tersebut untuk:

  • Total biaya pembukaan usaha dan biaya transportasi sangat minim;
  • Volume permintaan dari pelanggan yang ditugaskan pada perusahaan terbuka mana pun tidak melebihi kapasitas produksi perusahaan tersebut.

Sekarang perlu disebutkan satu-satunya perbedaan dalam dua masalah klasik ini:

  • Masalah Lokasi Fasilitas Berkapasitas Sumber Tunggal – klien disuplai hanya dari satu fasilitas terbuka;
  • Masalah Lokasi Fasilitas Berkapasitas Multi-Sumber – klien dapat disuplai dari beberapa fasilitas terbuka pada saat yang bersamaan.

Perbedaan antara kedua masalah tersebut pada pandangan pertama tidak signifikan, tetapi, pada kenyataannya, mengarah pada struktur kombinatorial yang sama sekali berbeda dari masalah tersebut dan, sebagai konsekuensinya, pada algoritma yang sama sekali berbeda untuk menyelesaikannya. Perbedaan antara tugas-tugas tersebut ditunjukkan pada gambar di bawah ini.

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)
Gambar.3. a) Masalah Lokasi Fasilitas Berkapasitas Multi-Sumber

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)
Gambar.3. b) Masalah Lokasi Fasilitas Berkapasitas Sumber Tunggal

Kedua tugas Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)-sulit, yaitu tidak ada algoritma pasti yang dapat menyelesaikan masalah seperti itu dalam polinomial waktu dalam ukuran data masukan. Dengan kata sederhana, semua algoritma yang tepat untuk menyelesaikan suatu masalah akan bekerja dalam waktu eksponensial, meskipun mungkin lebih cepat daripada pencarian opsi yang lengkap. Sejak tugas itu Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)-sulit, maka kita hanya akan mempertimbangkan heuristik perkiraan, yaitu algoritma yang secara konsisten akan menghitung solusi yang sangat mendekati optimal dan akan bekerja cukup cepat. Jika Anda tertarik dengan tugas seperti itu, Anda dapat menemukan ikhtisar bagus dalam bahasa Rusia di sini.

Jika kita beralih ke terminologi masalah kompresi barang yang optimal dalam sel, maka:

  • kota klien adalah sel donor Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) dengan sisa barang,
  • kota manufaktur – sel kontainer Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), di mana sisa sel lain seharusnya ditempatkan,
  • biaya transportasi - biaya waktu Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) penjaga toko untuk memindahkan volume barang dari sel donor Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ke dalam sel kontainer Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1);
  • biaya membuka usaha - biaya memilih wadah Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), sama dengan volume sel wadah Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), dikalikan dengan koefisien tertentu untuk menyimpan volume bebas (nilai koefisien selalu > 1) (lihat bagian menyiapkan data masukan).

Setelah analogi dengan solusi klasik yang terkenal dari masalah tersebut ditarik, perlu untuk menjawab pertanyaan penting yang menjadi dasar pilihan arsitektur algoritma solusi: memindahkan sisa dari sel donor hanya mungkin dilakukan ke satu. dan hanya satu wadah (Single-Source), atau apakah sisanya bisa dipindahkan ke beberapa sel wadah (Multi-Source)?

Perlu dicatat bahwa dalam praktiknya kedua rumusan masalah tersebut terjadi. Kami menyajikan semua pro dan kontra untuk setiap pengaturan di bawah ini:

Varian masalah Kelebihan dari opsi ini Kontra dari opsi
Sumber tunggal Operasi pergerakan barang dihitung menggunakan varian soal ini:

  • memerlukan lebih sedikit kontrol dari pihak penjaga toko (mengambil SEMUANYA dari satu sel, memasukkan SEMUANYA ke dalam sel wadah lain), yang menghilangkan risiko: kesalahan saat menghitung ulang jumlah barang saat melakukan operasi β€œMasukkan ke dalam sel”; kesalahan dalam memasukkan jumlah yang dihitung ulang ke dalam TSD;
  • Tidak diperlukan waktu untuk menghitung ulang jumlah barang saat melakukan operasi β€œMasukkan ke dalam sel” dan memasukkannya ke dalam TSD
Multi-Sumber Kompresi yang dihitung menggunakan versi soal ini biasanya 10-15% lebih kompak dibandingkan dengan kompresi yang dihitung menggunakan opsi β€œSumber Tunggal”. Namun kami juga mencatat bahwa semakin kecil jumlah residu dalam sel donor, semakin kecil perbedaan kekompakannya Operasi pergerakan barang dihitung menggunakan varian soal ini:

  • memerlukan kontrol yang lebih besar dari pihak penjaga toko (perlu menghitung ulang jumlah barang yang dipindahkan ke setiap sel kontainer yang direncanakan), yang menghilangkan risiko kesalahan saat menghitung ulang jumlah barang dan memasukkan data ke dalam TSD saat melakukan β€œ Masukkan ke dalam operasi sel”.
  • Diperlukan waktu untuk menghitung ulang jumlah barang saat melakukan operasi β€œMasukkan ke dalam sel”.
  • Dibutuhkan waktu untuk β€œoverhead” (berhenti, pergi ke palet, memindai kode batang sel kontainer) saat melakukan operasi β€œMasukkan ke dalam sel”
  • Terkadang algoritme dapat β€œmembagi” jumlah palet yang hampir lengkap menjadi sejumlah besar sel kontainer yang sudah memiliki produk yang sesuai, yang, dari sudut pandang pelanggan, tidak dapat diterima.

Tabel 1. Kelebihan dan kekurangan opsi Sumber Tunggal dan Multi Sumber.

Karena opsi Sumber Tunggal memiliki lebih banyak keunggulan, dan juga mempertimbangkan fakta bahwa semakin kecil jumlah residu dalam sel donor, semakin kecil perbedaan derajat kekompakan kompresi yang dihitung untuk kedua varian masalah, pilihan kami jatuh pada opsi Sumber Tunggal.

Patut dikatakan bahwa solusi untuk opsi Multi-Sumber juga ada. Ada sejumlah besar algoritma yang efektif untuk menyelesaikannya, yang sebagian besar bertujuan untuk memecahkan sejumlah masalah transportasi. Ada juga tidak hanya algoritma yang efisien, tetapi juga algoritma yang elegan, misalnya, di sini.

Mempersiapkan Data Masukan

Sebelum mulai menganalisis dan mengembangkan suatu algoritma untuk menyelesaikan suatu masalah, perlu diputuskan data apa dan dalam bentuk apa kita akan memasukkannya sebagai masukan. Tidak ada masalah dengan volume sisa barang di sel donor dan kapasitas sel kontainer, karena ini sepele - jumlah tersebut akan diukur dalam m3, tetapi dengan biaya penggunaan sel kontainer dan matriks biaya perpindahan, tidak semuanya sangat sederhana!

Mari kita lihat perhitungannya terlebih dahulu biaya pemindahan barang dari sel donor ke sel wadah. Pertama-tama, perlu diputuskan dalam satuan pengukuran apa kita akan menghitung biaya pergerakan. Dua pilihan yang paling jelas adalah meter dan detik. Tidak masuk akal untuk menghitung biaya perjalanan dalam meteran β€œmurni”. Mari kita tunjukkan ini dengan sebuah contoh. Biarkan selnya Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) terletak di tingkat pertama, sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) dihapus sejauh 30 meter dan terletak di tingkat kedua:

  • Pindah dari Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) Π² Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) lebih mahal daripada pindah dari Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) Π² Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), karena turun dari tingkat kedua (1,5-2 meter dari lantai) lebih mudah daripada naik ke tingkat kedua, meskipun jaraknya sama;
  • Pindahkan 1 buah. barang dari sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) Π² Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) Ini akan lebih mudah daripada memindahkan 10 buah. produk yang sama, meskipun jaraknya akan sama.

Lebih baik mempertimbangkan biaya pemindahan dalam hitungan detik, karena ini memungkinkan Anda memperhitungkan perbedaan tingkatan dan perbedaan jumlah barang yang dipindahkan. Untuk memperhitungkan biaya pergerakan dalam hitungan detik, kita harus menguraikan operasi pergerakan menjadi komponen-komponen dasar dan melakukan pengukuran waktu untuk pelaksanaan setiap komponen dasar.

Biarkan dari sel Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) bergerak Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) komputer. barang dalam wadah Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1). Biarkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) – kecepatan rata-rata pergerakan seorang pekerja di gudang, diukur dalam m/detik. Membiarkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ΠΈ Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) – kecepatan rata-rata satu kali operasi pengambilan dan penempatan, masing-masing, untuk volume barang yang sama dengan 4 dm3 (volume rata-rata yang diambil seorang karyawan pada suatu waktu di gudang saat melakukan operasi). Membiarkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ΠΈ Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) tinggi sel tempat operasi pengambilan dan penempatan dilakukan. Misalnya tinggi rata-rata tingkat (lantai) pertama adalah 1 m, tingkat kedua adalah 2 m, dan seterusnya. Maka rumus untuk menghitung total waktu menyelesaikan suatu operasi perpindahan adalah Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) berikut:

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Tabel 2 menunjukkan statistik waktu pelaksanaan setiap operasi dasar, yang dikumpulkan oleh karyawan gudang, dengan mempertimbangkan spesifikasi barang yang disimpan.

Nama operasi Penunjukan Nilai rata-rata
Kecepatan rata-rata seorang pekerja bergerak di sekitar gudang Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) 1,5 m/s
Kecepatan rata-rata satu operasi untuk dilakukan (untuk volume produk 4 dm3) Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) 2,4 dtk

Tabel 2. Rata-rata waktu penyelesaian operasional gudang

Kami telah memutuskan metode penghitungan biaya perpindahan. Sekarang kita perlu memikirkan cara menghitungnya biaya memilih sel kontainer. Segala sesuatu di sini jauh lebih rumit dibandingkan dengan biaya pemindahan, karena:

  • pertama, biaya harus berbanding lurus dengan volume sel - lebih baik menempatkan volume residu yang sama yang ditransfer dari sel donor ke dalam wadah dengan volume lebih kecil daripada di wadah besar, asalkan volume tersebut benar-benar muat di kedua wadah. Oleh karena itu, dengan meminimalkan total biaya pemilihan kontainer, kami berusaha untuk menghemat kapasitas penyimpanan gratis yang β€œlangka” di area pemilihan untuk melakukan operasi penempatan barang selanjutnya di dalam sel. Gambar 4 menunjukkan pilihan untuk memindahkan residu ke dalam kontainer besar dan kecil dan konsekuensi dari pilihan pemindahan ini dalam operasi gudang selanjutnya.
  • kedua, karena dalam memecahkan masalah awal kita perlu meminimalkan total biaya dengan tepat, dan ini adalah jumlah dari biaya pemindahan dan biaya pemilihan kontainer, maka volume sel dalam meter kubik perlu dihubungkan dengan detik, yang jauh dari kata sepele.

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)
Beras. 4. Pilihan untuk memindahkan sisa makanan ke dalam wadah dengan kapasitas berbeda.

Gambar 4 menunjukkan dengan warna merah volume sisa makanan yang tidak lagi dapat dimasukkan ke dalam wadah pada penempatan barang berikutnya tahap kedua.

Ini akan membantu untuk menghubungkan meter kubik biaya untuk memilih kontainer dengan detik biaya untuk memindahkan persyaratan berikut untuk solusi yang diperhitungkan untuk masalah tersebut:

  • Saldo dari wadah donor harus dipindahkan ke wadah penampung jika hal ini mengurangi jumlah total wadah penampung yang berisi produk.
  • Penting untuk menjaga keseimbangan antara volume kontainer dan waktu yang dihabiskan untuk perpindahan: misalnya, jika dalam solusi baru suatu masalah dibandingkan dengan solusi sebelumnya, peningkatan volumenya besar, tetapi kerugian waktunya kecil. , maka Anda perlu memilih opsi baru.

Mari kita mulai dengan persyaratan terakhir. Untuk memperjelas kata β€œkeseimbangan” yang ambigu, kami melakukan survei terhadap karyawan gudang untuk mengetahui hal berikut. Biarkan ada sel wadah volume Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), yang mana pergerakan sisa barang dari sel donor ditugaskan dan total waktu pergerakan tersebut sama dengan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1). Misalkan ada beberapa alternatif pilihan untuk menempatkan barang dalam jumlah yang sama dari sel donor yang sama ke dalam wadah lain, dimana setiap penempatan memiliki perkiraannya masing-masing. Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)Dimana Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)<Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ΠΈ Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)Dimana Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)>Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1).

Pertanyaan yang diajukan: berapa keuntungan minimum dalam volume Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) dapat diterima, untuk nilai kerugian waktu tertentu Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)? Mari kita jelaskan dengan sebuah contoh. Semula jenazah seharusnya ditempatkan dalam wadah dengan volume 1000 dm3 (1 m3) dan waktu perpindahan 70 detik. Terdapat pilihan untuk menempatkan residu di wadah lain dengan volume 500 dm3 dan waktu 130 detik. Pertanyaan: apakah kita siap meluangkan tambahan 60 detik waktu pemilik toko untuk memindahkan barang guna menghemat 500 dm3 volume bebas? Berdasarkan hasil survei terhadap pegawai gudang, disusun diagram sebagai berikut.

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)
Beras. 5. Diagram ketergantungan penghematan volume minimum yang diperbolehkan terhadap peningkatan selisih waktu pengoperasian

Artinya, jika biaya waktu tambahan adalah 40 detik, maka kita siap menggunakannya hanya jika perolehan volume minimal 500 dm3. Meskipun terdapat sedikit nonlinier dalam ketergantungan, untuk mempermudah perhitungan lebih lanjut kita asumsikan bahwa ketergantungan antar besaran adalah linier dan dijelaskan oleh pertidaksamaan.

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Pada gambar di bawah, kami mempertimbangkan metode penempatan barang dalam kontainer berikut ini.

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)
Beras. 6. Opsi (a): 2 kontainer, total volume 400 dm3, total waktu 150 detik.
Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)
Beras. 6. Opsi (b): 2 kontainer, total volume 600 dm3, total waktu 190 detik.
Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)
Beras. 6. Opsi (c): 1 kontainer, total volume 400 dm3, total waktu 200 detik.

Opsi (a) untuk memilih kontainer lebih disukai daripada opsi awal, karena pertidaksamaannya berlaku: (800-400)/10>=150-120, yang berarti 40 >= 30. Opsi (b) kurang disukai dibandingkan opsi awal option , karena pertidaksamaan tidak berlaku: (800-600)/10>=190-150 yang berarti 20 >= 40. Namun opsi (c) tidak cocok dengan logika seperti itu! Mari pertimbangkan opsi ini lebih detail. Di satu sisi, ketimpangan (800-400)/10>=200-120, yang berarti ketimpangan 40 >= 80 tidak terpenuhi, yang menunjukkan bahwa peningkatan volume tidak sebanding dengan kerugian yang besar seiring berjalannya waktu.

Namun di sisi lain, dalam opsi (c) ini kita tidak hanya mengurangi total volume yang terisi, namun juga mengurangi jumlah sel yang terisi, yang merupakan persyaratan pertama dari dua persyaratan penting untuk solusi komputasi terhadap permasalahan yang disebutkan di atas. Jelasnya, agar persyaratan ini mulai terpenuhi, perlu menambahkan beberapa konstanta positif ke sisi kiri pertidaksamaan. Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), dan konstanta tersebut perlu ditambahkan hanya ketika jumlah kontainer berkurang. Mari kita ingat hal itu Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) adalah variabel yang sama dengan 1 ketika wadahnya Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) dipilih, dan 0 saat wadah Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) tidak terpilih. Mari kita tunjukkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) – banyak wadah dalam larutan awal dan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) – banyak kontainer dalam solusi baru. Secara umum ketimpangan baru akan terlihat seperti ini:

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Mengubah pertidaksamaan di atas, kita peroleh

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Berdasarkan hal tersebut, kami mempunyai rumus untuk menghitung total biaya Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) beberapa solusi untuk masalah ini:

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Namun kini muncul pertanyaan: nilai apa yang seharusnya dimiliki oleh konstanta tersebut? Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)? Tentunya nilainya harus cukup besar agar syarat pertama pemecahan masalah selalu terpenuhi. Anda tentu saja dapat mengambil nilai konstanta sebesar 103 atau 106, tetapi saya ingin menghindari β€œangka ajaib” seperti itu. Jika kita mempertimbangkan secara spesifik pelaksanaan operasi gudang, kita dapat menghitung beberapa perkiraan numerik yang masuk akal dari nilai konstanta tersebut.

Biarkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) – jarak maksimum antara sel-sel gudang di satu zona ABC, dalam kasus kita sama dengan 100 m. Misalkan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) – volume maksimum sel kontainer di gudang, dalam kasus kita sama dengan 1000 dm3.

Cara pertama untuk menghitung nilainya Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1). Mari kita pertimbangkan situasi di mana ada 2 kontainer di tingkat pertama, di mana barang-barang tersebut sudah berada secara fisik, yaitu, mereka sendiri adalah sel donor, dan biaya pemindahan barang ke sel yang sama secara alami sama dengan 0. Ini perlu untuk menemukan nilai konstanta tersebut Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), yang akan menguntungkan jika selalu memindahkan sisa makanan dari wadah 1 ke wadah 2. Mengganti nilainya Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ΠΈ Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) Dalam pertidaksamaan yang diberikan di atas kita memperoleh:

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

dari yang berikut

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Mengganti nilai waktu rata-rata untuk melakukan operasi dasar ke dalam rumus di atas, kita mendapatkan

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Cara kedua untuk menghitung nilainya Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1). Mari kita pertimbangkan situasi di mana ada Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) sel donor yang rencananya akan dipindahkan barangnya ke wadah 1. Mari kita nyatakan Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) – jarak dari sel donor Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) ke container 1. Ada juga container 2 yang sudah berisi barang-barang, dan volumenya memungkinkan untuk menampung sisa semuanya. Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) sel. Untuk mempermudah, kita asumsikan bahwa volume barang yang dipindahkan dari sel donor ke wadah adalah sama dan sama Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1). Diperlukan untuk menemukan nilai konstanta tersebut Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), di mana penempatan semua sisa dari Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) sel ke dalam wadah 2 akan selalu lebih menguntungkan daripada menempatkannya di wadah yang berbeda:

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Mengubah ketimpangan yang kita dapatkan

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Untuk β€œmemperkuat” nilai kuantitas Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1), mari kita asumsikan itu Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) = 0. Jumlah rata-rata sel yang biasanya terlibat dalam prosedur kompresi saldo gudang adalah 10. Mengganti nilai kuantitas yang diketahui, kita mendapatkan nilai konstanta berikut

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Kami mengambil nilai terbesar yang dihitung untuk setiap opsi, ini akan menjadi nilai kuantitas Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) untuk parameter gudang yang diberikan. Nah, untuk kelengkapannya, mari kita tuliskan rumus menghitung total biaya Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1) untuk beberapa solusi yang layak Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1):

Matematika diskrit untuk WMS: algoritma untuk mengompresi barang dalam sel (bagian 1)

Sekarang, bagaimanapun juga upaya besar Dengan mentransformasikan data masukan maka dapat dikatakan bahwa seluruh data masukan telah diubah ke bentuk yang diinginkan dan siap digunakan dalam algoritma optimasi.

Kesimpulan

Seperti yang diperlihatkan oleh praktik, kompleksitas dan pentingnya tahap penyiapan dan transformasi data masukan untuk suatu algoritme sering kali diremehkan. Dalam artikel ini, kami secara khusus memberikan banyak perhatian pada tahap ini untuk menunjukkan bahwa hanya data masukan berkualitas tinggi dan disiapkan dengan cerdas yang dapat membuat keputusan yang dihitung oleh algoritme benar-benar berharga bagi klien. Ya, ada banyak turunan rumus, tapi kami sudah memperingatkan Anda bahkan sebelum kata :)

Pada artikel berikutnya kita akhirnya akan sampai pada tujuan dari 2 publikasi sebelumnya - algoritma optimasi diskrit.

Mempersiapkan artikelnya
Roman Shangin, programmer departemen proyek,
Perusahaan Bit pertama, Chelyabinsk


Sumber: www.habr.com

Tambah komentar