Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Dina artikel ieu kami baris ngabejaan ka maneh kumaha urang direngsekeun masalah kurangna sél bébas dina gudang sarta ngembangkeun hiji algoritma optimasi diskrit pikeun ngajawab masalah sapertos. Hayu urang ngobrol ngeunaan kumaha urang "ngawangun" model matematik masalah optimasi, sarta ngeunaan kasusah nu teu disangka-sangka encountered nalika ngolah data input pikeun algoritma.

Upami anjeun resep kana aplikasi matematika dina bisnis sareng anjeun henteu sieun transformasi identitas anu kaku tina rumus di tingkat kelas 5, teras wilujeng sumping ka ucing!

Artikel bakal mangpaat pikeun jalma anu ngalaksanakeun WMS-sistem, gawéna di gudang atawa industri logistik produksi, kitu ogé programer anu kabetot dina aplikasi matematika dina bisnis jeung optimasi prosés di hiji perusahaan.

Bagian bubuka

Publikasi ieu neraskeun séri tulisan dimana urang bagikeun pangalaman suksés dina ngalaksanakeun algoritma optimasi dina prosés gudang.

В artikel saméméhna ngajelaskeun specifics tina gudang dimana urang dilaksanakeun WMS-sistem, sarta ogé ngécéskeun naon pangna urang diperlukeun pikeun ngajawab masalah clustering bets barang sésana salila palaksanaan WMS-sistem, jeung kumaha urang ngalakukeun eta.

Nalika kami réngsé nyerat tulisan ngeunaan algoritma optimasi, tétéla ageung pisan, janten kami mutuskeun pikeun ngabagi bahan akumulasi kana 2 bagian:

  • Dina bagian kahiji (artikel ieu) urang bakal ngobrol ngeunaan kumaha urang "ngawangun" model matematik masalah, sarta ngeunaan kasusah hébat urang disangka encountered nalika ngolah jeung ngarobah data input pikeun algoritma.
  • Dina bagian kadua urang bakal mertimbangkeun di jéntré palaksanaan algoritma dina basa C ++, kami bakal ngalaksanakeun percobaan komputasi sareng nyimpulkeun pangalaman anu kami peroleh nalika palaksanaan "téknologi calakan" sapertos dina prosés bisnis palanggan.

Kumaha maca hiji artikel. Upami anjeun maca tulisan sateuacana, anjeun tiasa langsung angkat ka bab "Tinjauan solusi anu aya"; upami henteu, maka pedaran masalah anu direngsekeun aya dina spoiler di handap ieu.

Katerangan ngeunaan masalah anu direngsekeun di gudang palanggan

Bottleneck dina prosés

Dina 2018, urang réngsé hiji proyék pikeun dilaksanakeun WMS-sistem di gudang "Trading House "LD" di Chelyabinsk. Kami ngalaksanakeun produk "1C-Logistik: Manajemén Gudang 3" pikeun 20 tempat kerja: operator WMS, penjaga toko, supir forklift. Gudang rata-rata sakitar 4 rébu m2, jumlah sél 5000 sareng jumlah SKU 4500. Gudang nyimpen klep bal produksi urang sorangan tina ukuran anu béda-béda ti 1 kg dugi ka 400 kg. Inventory di gudang disimpen dina bets, sabab aya anu peryogi pikeun milih barang nurutkeun FIFO.

Salila desain skéma otomatisasi prosés gudang, kami disanghareupan ku masalah anu aya dina panyimpenan inventaris anu henteu optimal. Spésifik pikeun nyimpen sareng nempatkeun bango sapertos hiji sél panyimpenan unit ngan ukur tiasa ngandung barang tina hiji bets (tingali Gbr. 1). Produk anjog ka gudang poean sarta unggal datangna téh bets misah. Dina total, salaku hasil tina 1 bulan operasi gudang, 30 bets misah dijieun, sanajan kanyataan yén unggal kudu disimpen dina sél misah. Produk sering dipilih henteu dina palet sadayana, tapi dina potongan, sareng salaku hasilna, dina zona pamilihan potongan dina seueur sél gambar di handap ieu dititénan: dina sél anu volumena langkung ti 1 m3 aya sababaraha potongan bango. ngeusian kirang ti 5-10% tina volume sél.

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)
Gbr 1. Poto sababaraha lembar dina sél

Éta jelas yén kapasitas neundeun henteu dianggo sacara optimal. Pikeun ngabayangkeun skala musibah, abdi tiasa masihan angka: rata-rata, aya ti 1 nepi ka 3 sél sél misalna kalawan volume leuwih ti 100 m300 kalawan kasaimbangan "minuscule" salila période béda tina operasi gudang. Kusabab gudang relatif leutik, salila usum sibuk gudang faktor ieu jadi "bottleneck" na greatly slows turun prosés gudang narima jeung kiriman.

Gagasan solusi masalah

Timbul hiji gagasan: bets sésa-sésa jeung tanggal pangdeukeutna kudu diréduksi jadi hiji bets tunggal, sarta sésa-sésa sapertos bets ngahiji kudu ditempatkeun compactly babarengan dina hiji sél, atawa dina sababaraha, lamun aya teu cukup spasi dina hiji nampung sakabéh jumlah sésana. Conto "komprési" sapertos dipidangkeun dina Gambar 2.

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)
Gbr.2. Skéma pikeun compressing résidu dina sél

Ieu ngamungkinkeun anjeun sacara signifikan ngirangan rohangan gudang anu dijajah anu bakal dianggo pikeun barang-barang énggal anu disimpen. Dina kaayaan dimana kapasitas gudang kaleuleuwihan, ukuran sapertos kitu peryogi pisan, upami teu aya rohangan bébas anu cekap pikeun nampung barang énggal, anu bakal nyababkeun lirén dina prosés gudang panempatan sareng replenishment sareng, salaku akibatna, ka eureun di ditampa jeung kiriman. Saméméhna, saméméh palaksanaan sistem WMS, operasi ieu dipigawé sacara manual, nu éta teu epektip, sabab prosés néangan kasaimbangan cocog dina sél éta rada lila. Ayeuna, kalayan ngenalkeun sistem WMS, kami mutuskeun pikeun ngajadikeun otomatis prosésna, nyepetkeun sareng ngajantenkeun éta calakan.

Prosés ngarengsekeun masalah ieu dibagi kana 2 tahap:

  • dina tahap kahiji urang manggihan grup bets nutup dina tanggal pikeun komprési (dedicated kana tugas ieu artikel saméméhna);
  • dina tahap kadua, pikeun tiap grup bets urang ngitung panempatan paling kompak tina barang sésana dina sél.

Dina artikel ayeuna urang bakal difokuskeun tahap kadua algoritma.

Tinjauan solusi anu aya

Sateuacan ngaléngkah ka pedaran algoritma anu kami parantos dikembangkeun, éta patut ngalaksanakeun tinjauan ringkes sistem anu parantos aya di pasar. WMS, nu nerapkeun fungsionalitas komprési optimal sarupa.

Anu mimiti, perlu dicatet produk "1C: Perusahaan 8. WMS Logistics. Manajemén gudang 4", anu dipiboga sareng direplikasi ku 1C sareng milik generasi kaopat WMS-sistem dikembangkeun ku AXELOT. Sistim ieu ngaklaim fungsionalitas komprési, nu dirancang pikeun ngahijikeun produk disparate tetep dina hiji sél umum. Perlu disebatkeun yén fungsionalitas komprési dina sistem sapertos kitu ogé kalebet kamungkinan anu sanés, contona, koréksi panempatan barang dina sél dumasar kana kelas ABC na, tapi urang moal cicing di dinya.

Upami anjeun nganalisis kodeu 1C: perusahaan 8. Sistem Logistik WMS. Manajemén gudang 4" (anu kabuka dina bagian ieu fungsionalitas), urang tiasa nyimpulkeun ieu di handap. Algoritma komprési sésa-sésa ngalaksanakeun logika linier anu rada primitif sareng teu aya anu tiasa ngobrol ngeunaan komprési "optimal". Alami, éta teu nyadiakeun keur clustering pihak. Sababaraha klien anu ngagaduhan sistem sapertos kitu ngawadul ngeunaan hasil perencanaan komprési. Contona, mindeng dina prakna salila komprési kaayaan handap lumangsung: 100 PCS. Direncanakeun pikeun mindahkeun barang sésana tina hiji sél ka sél anu sanés, dimana aya 1 sapotong. barang, sanajan éta optimal ti sudut pandang konsumsi waktu pikeun ngalakukeun sabalikna.

Ogé, fungsionalitas compressing barang sésana dina sél dinyatakeun di loba nagara deungeun. WMS-sistem, tapi, hanjakalna, urang boga eupan balik nyata dina efektivitas algoritma (ieu rusiah dagang), teuing kirang hiji gagasan ngeunaan jero logika maranéhna (software katutup-sumber proprietary), sangkan teu bisa nangtoskeun.

Pilarian model matematik tina masalah

Dina raraga mendesain algoritma kualitas luhur pikeun ngarengsekeun hiji masalah, mimitina perlu jelas ngarumuskeun masalah ieu sacara matematis, nu bakal urang ngalakukeun.

Aya loba sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), nu ngandung sésa-sésa sababaraha barang. Dina naon di handap, urang bakal nelepon sél donor sél sapertos. Hayu urang denote Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) volume barang dina sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)$.

Kadé disebutkeun yen ngan hiji produk tina hiji bets, atawa sababaraha bets saméméhna digabungkeun kana klaster (baca: artikel saméméhna), anu disababkeun ku spésifik neundeun sareng neundeun barang. Produk béda atawa klaster bets béda kedah ngajalankeun prosedur komprési misah sorangan.

Aya loba sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), dimana résidu tina sél donor berpotensi tiasa disimpen. Urang salajengna bakal nelepon sél wadahna sél sapertos. Ieu tiasa janten sél bébas dina gudang atanapi sél donor tina rupa-rupa Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1). Sok nyatu Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) mangrupa sawaréh Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1).

Pikeun unggal sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) ti loba Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) Watesan kapasitas parantos diatur Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), diukur dina dm3. Hiji dm3 nyaéta kubus kalayan sisi 10 cm Produk anu disimpen di gudang cukup ageung, janten dina hal ieu discretization sapertos kitu cukup.

Dibéré matriks tina jarak shortest Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) dina méter antara unggal pasangan sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)dimana Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) и Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) milik susunan Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) и Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) sasuai.

Hayu urang denote Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) "biaya" mindahkeun barang tina sélMatematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) kana sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1). Hayu urang denote Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) "biaya" milih wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) pikeun mindahkeun résidu tina sél séjén kana éta. Kumaha persis sareng dina naon unit pangukuran bakal diitung Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) и Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) urang bakal mertimbangkeun salajengna (tingali bagian Nyiapkeun data input), pikeun ayeuna cukup disebutkeun yen nilai sapertos bakal langsung sabanding jeung nilai. Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) и Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) sasuai.

Hayu urang nunjukkeun ku Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) variabel nu nyokot nilai 1 lamun sésana téh ti sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) dipindahkeun kana wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), jeung 0 disebutkeun. Hayu urang nunjukkeun ku Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) variabel nu nyokot nilai 1 lamun wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) ngandung barang sésana, jeung 0 disebutkeun.

pancén téh diébréhkeun kieu: anjeun kedah mendakan seueur wadah Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) sahingga "ngagantelkeun" sél donor kana sél wadahna pikeun ngaleutikan fungsina

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

dina watesan

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Dina total, nalika ngitung solusi pikeun masalah, urang narékahan pikeun:

  • firstly, pikeun ngahemat kapasitas gudang;
  • kadua, pikeun ngahemat waktos storekeepers '.

Watesan panungtungan hartina urang teu bisa mindahkeun barang kana wadahna nu urang teu milih, sarta ku kituna teu "ngabayar biaya" pikeun milih eta. Watesan ieu ogé hartosna yén volume barang anu dipindahkeun tina sél kana wadahna henteu kedah ngaleuwihan kapasitas wadahna. Ku ngarengsekeun masalah kami hartosna sakumpulan wadah Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) jeung métode pikeun ngagantelkeun sél donor kana wadahna.

Rumusan masalah optimasi ieu sanés énggal, sareng parantos ditaliti ku seueur matematikawan ti mimiti 80an abad ka tukang. Dina literatur asing aya 2 masalah optimasi sareng modél matematika anu cocog: Masalah Lokasi Fasilitas Kapasitas Sumber Tunggal и Masalah Lokasi Fasilitas Kapasitan Multi-Sumber (urang bakal ngobrol ngeunaan béda dina tugas engké). Eta sia nyebutkeun yen dina literatur matematik rumusan dua masalah optimasi misalna dirumuskeun dina watesan lokasi usaha dina taneuh, ku kituna ngaranna "Lokasi Fasilitas". Kanggo sabagéan ageung, ieu mangrupikeun upeti ka tradisi, sabab pikeun kahiji kalina peryogi pikeun ngabéréskeun masalah kombinatorial sapertos kitu asalna tina bidang logistik, kalolobaanana ti séktor militér-industri dina 50an abad ka tukang. Dina hal lokasi perusahaan, tugas sapertos dirumuskeun sapertos kieu:

  • Aya sajumlah kota anu terbatas dimana kamungkinan pikeun mendakan perusahaan manufaktur (saterusna disebut kota manufaktur). Pikeun unggal kota manufaktur, biaya pikeun muka perusahaan di jerona dieusian, kitu ogé watesan dina kapasitas produksi perusahaan dibuka di dinya.
  • Aya set wates kota dimana klien sabenerna lokasina (hereinafter disebut kota klien). Pikeun unggal kota klien sapertos, volume paménta pikeun produk dieusian. Pikeun kesederhanaan, urang bakal nganggap yén ngan ukur aya hiji produk anu diproduksi ku perusahaan sareng dikonsumsi ku konsumén.
  • Pikeun unggal pasangan kota-produsén sareng kota-klien, nilai biaya angkutan pikeun nganteurkeun volume produk anu diperyogikeun ti produsén ka klien ditetepkeun.

Anjeun kedah milarian di kota mana pikeun muka usaha sareng kumaha ngagantelkeun klien kana usaha sapertos kitu pikeun:

  • Biaya total pikeun muka usaha sareng biaya transportasi minimal;
  • Volume paménta ti konsumén ditugaskeun ka sagala perusahaan kabuka teu ngaleuwihan kapasitas produksi pausahaan éta.

Ayeuna kedah disebatkeun hiji-hijina bédana dina dua masalah klasik ieu:

  • Masalah Lokasi Fasilitas Kapasitas Sumber Tunggal - klien disayogikeun tina ngan hiji fasilitas anu kabuka;
  • Masalah Lokasi Fasilitas Kapasitas Multi-Sumber - klien tiasa disayogikeun tina sababaraha fasilitas kabuka dina waktos anu sami.

Sapertos bédana antara dua masalah ieu teu signifikan dina glance kahiji, tapi, dina kanyataanana, ngabalukarkeun struktur combinatorial lengkep beda tina masalah sapertos na, salaku konsekuensi, algoritma lengkep beda pikeun ngarengsekeun aranjeunna. Bedana antara pancén dipintonkeun dina gambar di handap ieu.

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)
Gbr.3. a) Masalah Lokasi Fasilitas Kapasitan Multi-Sumber

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)
Gbr.3. b) Masalah Lokasi Fasilitas Kapasitan Sumber Tunggal

Duanana tugas Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)-hese, nyaeta, euweuh algoritma pasti nu bakal ngajawab masalah sapertos dina polynomial waktos dina ukuran tina data input. Dina kecap anu langkung saderhana, sadaya algoritma anu pasti pikeun ngarengsekeun masalah bakal tiasa dianggo dina waktos éksponénsial, sanaos langkung gancang tibatan milarian pilihan anu lengkep. Kusabab tugas Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)-Hésé, maka urang bakal nganggap ukur heuristik perkiraan, nyaéta, algoritma anu konsistén bakal ngitung solusi anu caket pisan sareng optimal sareng bakal dianggo gancang. Upami anjeun resep kana tugas sapertos kitu, anjeun tiasa mendakan gambaran anu saé dina basa Rusia di dieu.

Upami urang ngalih kana terminologi masalah urang ngeunaan komprési optimal barang dina sél, maka:

  • kota klien mangrupakeun sél donor Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) jeung barang sésana,
  • kota manufaktur - sél wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), dimana sésa sél séjén sakuduna ditempatkeun,
  • waragad angkutan - waragad waktu Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) penjaga toko pikeun mindahkeun volume barang tina sél donor Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) kana sél wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1);
  • waragad muka usaha - waragad milih wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), sarua jeung volume sél wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), dikalikeun ku koefisien tangtu pikeun nyimpen volume bébas (nilai koefisien sok > 1) (tingali bagian Nyiapkeun data input).

Saatos analogi sareng solusi klasik anu kasohor tina masalah parantos digambar, perlu pikeun ngajawab patarosan penting anu gumantung kana pilihan arsitéktur algoritma solusi: mindahkeun sésa-sésa sél donor ngan ukur ka hiji. sarta ngan hiji wadah (Single-Sumber), atawa éta mungkin pikeun mindahkeun sésana kana sababaraha sél wadahna (Multi-Sumber)?

Eta sia noting yén dina praktekna duanana rumusan masalah lumangsung. Kami nampilkeun sadaya pro sareng kontra pikeun tiap setting sapertos kieu:

Masalah varian Pro tina pilihan Kontra pilihan
Tunggal-Sumber Operasi gerak barang diitung ngagunakeun varian ieu masalah:

  • merlukeun kirang kontrol dina bagian tina storekeeper (nyokot sagalana ti hiji sél, nempatkeun sagalana dina sél wadahna sejen), nu eliminates resiko tina: kasalahan nalika recalculating kuantitas barang nalika ngajalankeun "Pasang dina sél" operasi; kasalahan dina ngasupkeun kuantitas recalculated kana TSD;
  • Teu aya waktos anu diperyogikeun pikeun ngitung deui jumlah barang nalika ngalakukeun operasi "Pasang dina sél" sareng lebetkeun kana TSD.
Multi-Sumber Compressions diitung ngagunakeun versi ieu masalah biasana 10-15% leuwih kompak dibandingkeun compressions diitung ngagunakeun pilihan "Single-Sumber". Tapi urang ogé dicatet yén leuwih leutik jumlah résidu dina sél donor, nu leutik bédana compactness Operasi gerak barang diitung ngagunakeun varian ieu masalah:

  • meryogikeun kontrol anu langkung ageung ti pihak panyimpen (perlu ngitung deui jumlah barang anu dipindahkeun kana unggal sél wadah anu direncanakeun), anu ngaleungitkeun résiko kasalahan nalika ngitung deui jumlah barang sareng ngalebetkeun data kana TSD nalika ngalaksanakeun " Nempatkeun dina sél" operasi
  • Butuh waktu pikeun ngitung deui jumlah barang nalika ngajalankeun operasi "Pasang dina sél".
  • Butuh waktu pikeun "overhead" (eureun, buka palet, nyeken barkod sél wadahna) nalika ngajalankeun operasi "Pasang dina sél".
  • Kadang-kadang algoritma tiasa "meulah" kuantitas palet anu ampir lengkep antara sajumlah ageung sél wadahna anu parantos ngagaduhan produk anu cocog, anu, tina sudut pandang palanggan, henteu katampi.

meja 1. Pro jeung kontra ngeunaan pilihan Single-Sumber sarta Multi-Sumber.

Kusabab pilihan Sumber Tunggal gaduh langkung seueur kaunggulan, sareng ogé ngémutan kanyataan yén langkung alit jumlah résidu dina sél donor, langkung alit bédana dina tingkat kompaksi komprési anu diitung pikeun duanana varian masalah, pilihan urang murag kana. pilihan Single-Sumber Sumber.

Eta sia nyebutkeun yén solusi pikeun pilihan Multi-Sumber ogé lumangsung. Aya angka nu gede ngarupakeun algoritma éféktif pikeun ngarengsekeun eta, lolobana nu turun ka ngarengsekeun sababaraha masalah angkutan. Aya ogé henteu ngan algoritma efisien, tapi ogé anu elegan, contona, dieu.

Nyiapkeun Data Input

Sateuacan ngawitan nganalisis sareng ngembangkeun algoritma pikeun ngabéréskeun masalah, anjeun kedah mutuskeun data naon sareng dina bentuk naon anu bakal kami tuang salaku input. Henteu aya masalah sareng volume barang sésana dina sél donor sareng kapasitas sél wadahna, sabab éta sepele - jumlah sapertos kitu bakal diukur dina m3, tapi kalayan biaya ngagunakeun sél wadahna sareng matriks biaya gerak, sanés sadayana. basajan pisan!

Hayu urang tingali heula itungan biaya mindahkeun barang ti sél donor ka sél wadahna. Anu mimiti, perlu mutuskeun dina unit ukuran naon urang bakal ngitung biaya gerak. Dua pilihan anu paling atra nyaéta méter sareng detik. Henteu aya rasa pikeun ngitung biaya perjalanan dina méter "murni". Hayu urang nunjukkeun ieu ku conto. Hayu sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) lokasina di tingkat kahiji, sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) dipiceun ku 30 méter sarta ayana dina tingkat kadua:

  • Pindah ti Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) в Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) leuwih mahal ti pindah ti Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) в Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), saprak turun ti tingkat kadua (1,5-2 méter ti lantai) leuwih gampang ti naek ka kadua, sanajan jarak bakal sarua;
  • Pindahkeun 1 pc. barang ti sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) в Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) Éta bakal langkung gampang tibatan mindahkeun 10 lembar. produk anu sarua, sanajan jarak bakal sarua.

Éta leuwih hadé mertimbangkeun biaya pindah dina sababaraha detik, sabab ieu ngidinan Anjeun pikeun tumut kana akun duanana béda tiers jeung bédana dina kuantitas barang dipindahkeun. Pikeun ngitung biaya gerakan dina sababaraha detik, urang kedah nguraikeun operasi gerakan kana komponén dasar sareng nyandak ukuran waktos pikeun ngalaksanakeun unggal komponén dasar.

Hayu ti sél Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) gerak Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) PC. barang dina wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)... Hayu Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) - laju rata-rata gerak hiji pagawe di gudang, diukur dina m / detik. Hayu Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) и Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) - laju rata-rata operasi hiji-waktos nyandak sareng nempatkeun, masing-masing, pikeun volume barang sami sareng 4 dm3 (volume rata-rata anu dicandak ku karyawan dina hiji waktos di gudang nalika ngalaksanakeun operasi). Hayu Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) и Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) jangkungna sél ti mana nyokot tur nyimpen operasi anu dipigawé, masing-masing. Contona, jangkungna rata-rata tingkat kahiji (lantai) nyaéta 1 m, tingkat kadua 2 m, jsb. Lajeng rumus keur ngitung total waktu pikeun ngarengsekeun hiji operasi move nyaeta Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) Teras:

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Méja 2 nembongkeun statistik dina waktu palaksanaan unggal operasi dasar, dikumpulkeun ku karyawan gudang, nyokot kana akun specifics tina barang disimpen.

ngaran operasi Rancang Hartosna
Laju rata-rata saurang padamel anu ngurilingan gudang Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) 1,5 m/s
Laju rata-rata hiji operasi pikeun nempatkeun (pikeun volume produk 4 dm3) Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) 2,4 detik

Méja 2. Rata-rata waktos pikeun ngarengsekeun operasi gudang

Kami geus mutuskeun dina metoda keur ngitung biaya pindah. Ayeuna urang kudu angka kaluar kumaha carana ngitung waragad milih sél wadahna. Sadayana di dieu langkung seueur, langkung rumit tibatan biaya pindah, sabab:

  • firstly, waragad kudu langsung gumantung kana volume sél - volume sarua résidu ditransfer ti sél donor hadé disimpen dina wadahna volume leutik batan dina wadahna badag, disadiakeun yén volume sapertos lengkep pas dina duanana peti . Ku kituna, ku ngaminimalkeun biaya sakabéh milih peti, urang narékahan pikeun ngahemat "langka" kapasitas gudang bébas di wewengkon Pilihan pikeun ngalakukeun operasi saterusna nempatkeun barang dina sél. Gambar 4 nunjukkeun pilihan pikeun mindahkeun résidu kana wadah ageung sareng alit sareng akibat tina pilihan transfer ieu dina operasi gudang salajengna.
  • Bréh, saprak dina ngarengsekeun masalah aslina urang kudu ngaleutikan persis total biaya, sarta ieu jumlah duanana waragad pindah sarta waragad milih wadahna, lajeng volume sél dina méter kubik kudu kumaha bae numbu ka detik. nu jauh tina hal nu teu pati penting.

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)
Sangu. 4. Pilihan pikeun mindahkeun leftovers kana peti tina kapasitas béda.

Angka 4 nunjukkeun dina beureum volume sésa-sésa anu henteu pas kana wadahna dina tahap kadua nempatkeun barang-barang anu salajengna.

Éta bakal ngabantosan ngaitkeun biaya méter kubik pikeun milih wadah sareng detik biaya pikeun mindahkeun syarat-syarat ieu pikeun ngitung solusi pikeun masalah:

  • Perlu yén kasaimbangan tina donor bin dipindahkeun ka wadahna bin bisi wae lamun ieu ngurangan jumlah total wadahna bins ngandung produk.
  • Perlu ngajaga kasaimbangan antara volume wadahna sareng waktos anu dihabiskeun pikeun ngalih: contona, upami dina solusi anyar pikeun masalah dibandingkeun sareng solusi sateuacana, gain volume ageung, tapi rugi waktosna sakedik. , mangka perlu milih pilihan anyar.

Hayu urang mimitian ku sarat panungtungan. Dina raraga netelakeun kecap ambigu "kasaimbangan," urang ngalaksanakeun survey karyawan gudang pikeun manggihan di handap. Hayu aya sél wadah volume Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), dimana gerakan barang sésana tina sél donor ditugaskeun sareng total waktos gerakan sapertos kitu sami sareng Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1). Hayu aya sababaraha pilihan alternatif pikeun nempatkeun jumlah anu sami tina sél donor anu sami kana wadah anu sanés, dimana unggal panempatan gaduh perkiraan sorangan. Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)dimana Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)<Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) и Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)dimana Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)>Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1).

Patarosan ieu ngajukeun: naon gain minimum dina volume Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) ditarima, pikeun nilai leungitna waktu tinangtu Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)? Hayu urang ngajelaskeun ku conto. Mimitina, sésa-sésa sakuduna ditempatkeun dina wadah kalayan volume 1000 dm3 (1 m3) sareng waktos transferna 70 detik. Aya pilihan pikeun nempatkeun résidu dina wadah anu sanés kalayan volume 500 dm3 sareng waktos 130 detik. Patarosan: naha urang siap nyéépkeun tambahan 60 detik tina waktos panyimpen pikeun mindahkeun barang pikeun ngahémat 500 dm3 volume gratis? Dumasar kana hasil survey karyawan gudang, disusun diagram ieu di handap.

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)
Sangu. 5. Diagram gumantungna tina tabungan volume allowable minimum dina kanaékan bédana dina waktu operasi

Nyaéta, upami biaya waktos tambahan nyaéta 40 detik, maka kami siap nyéépkeunana ngan ukur nalika gain volume sahenteuna 500 dm3. Sanaos kanyataan yén aya sakedik nonlinier dina gumantungna, pikeun kesederhanaan itungan salajengna urang bakal nganggap yén gumantungna antara kuantitas linier sareng dijelaskeun ku kateusaruaan.

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Dina gambar di handap ieu, urang nganggap metodeu di handap ieu pikeun nempatkeun barang dina peti.

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)
Sangu. 6. Pilihan (a): 2 wadahna, total volume 400 dm3, total waktu 150 detik.
Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)
Sangu. 6. Pilihan (b): 2 wadahna, total volume 600 dm3, total waktu 190 detik.
Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)
Sangu. 6. Pilihan (c): 1 wadahna, total volume 400 dm3, total waktu 200 detik.

Pilihan (a) pikeun milih peti leuwih hade tinimbang pilihan aslina, saprak kateusaruaan nahan: (800-400) / 10> = 150-120, nu ngakibatkeun 40 > = 30. Pilihan (b) kirang pikaresep ti aslina. pilihan , saprak kateusaruaan teu tahan: (800-600) / 10> = 190-150 nu ngakibatkeun 20 > = 40. Tapi pilihan (c) teu cocog kana logika sapertos! Hayu urang nganggap pilihan ieu leuwih jéntré. Di hiji sisi, kateusaruaan (800-400) / 10> = 200-120, nu hartina kateusaruaan 40> = 80 teu wareg, nu nunjukkeun yén gain dina volume teu patut misalna hiji leungitna badag dina jangka waktu.

Tapi di sisi anu sanésna, dina pilihan ieu (c) urang henteu ngan ukur ngirangan volume anu dijajah, tapi ogé ngirangan jumlah sél anu dijajah, anu kahiji tina dua syarat penting pikeun solusi anu tiasa dihitung pikeun masalah anu didaptarkeun di luhur. Jelas, supados sarat ieu mimiti kacumponan, perlu nambihan sababaraha konstanta positip ka sisi kénca kateusaruaan. Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), sareng konstanta sapertos kitu kedah ditambihan ngan nalika jumlah wadahna ngirangan. Hayu urang ngingetan yén Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) mangrupakeun variabel sarua 1 nalika wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) dipilih, jeung 0 nalika wadahna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) teu dipilih. Hayu urang nunjukkeun Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) – loba wadahna dina leyuran awal jeung Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) – loba peti dina leyuran anyar. Sacara umum, kateusaruaan anyar bakal katingali sapertos kieu:

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Transforming kateusaruaan di luhur, urang meunang

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Dumasar ieu, urang gaduh rumus pikeun ngitung total biaya Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) sababaraha solusi pikeun masalah:

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Tapi ayeuna timbul patarosan: naon nilai konstanta kudu boga? Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)? Jelas, nilaina kudu cukup badag sahingga sarat munggaran pikeun solusi masalah salawasna patepung. Anjeun tiasa, tangtosna, nyandak nilai konstanta sarua jeung 103 atawa 106, tapi Abdi hoyong ulah sapertos "angka magic". Upami urang nganggap spésifik pikeun ngalaksanakeun operasi gudang, urang tiasa ngitung sababaraha perkiraan numeris anu diadegkeun tina nilai konstanta sapertos kitu.

Hayu Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) – jarak maksimum antara sél gudang hiji zona ABC, sarua dina hal urang jeung 100 m.. Hayu Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) – volume maksimum sél wadahna di gudang, sarua dina hal urang jeung 1000 dm3.

Cara kahiji ngitung nilai Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1). Hayu urang nganggap kaayaan dimana aya 2 wadah dina tingkat kahiji, dimana barang-barangna parantos aya sacara fisik, nyaéta, aranjeunna nyalira sél donor, sareng biaya mindahkeun barang ka sél anu sami sacara alami sami sareng 0. perlu pikeun manggihan nilai misalna pikeun konstanta Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), nu bakal nguntungkeun pikeun salawasna mindahkeun sésa tina wadahna 1 kana wadahna 2. Ngaganti nilai Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) и Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) Dina kateusaruaan dibikeun di luhur urang meunang:

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

ti mana eta kieu

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Ngaganti nilai waktu rata-rata pikeun ngajalankeun operasi dasar kana rumus di luhur urang meunang

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Cara kadua ngitung nilai Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1). Hayu urang nganggap kaayaan dimana aya Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) sél donor ti mana éta rencanana mindahkeun barang kana wadahna 1. Hayu urang nunjukkeun Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) - jarak ti sél donor Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) ka wadah 1. Aya ogé wadah 2, nu geus ngandung barang, jeung volume nu ngidinan Anjeun pikeun nampung sésana sadaya. Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) sél. Pikeun kesederhanaan, urang bakal nganggap yén volume barang anu dipindahkeun tina sél donor ka wadahna sami sareng sami sareng Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1). Ieu diperlukeun pikeun manggihan nilai konstanta misalna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), dimana panempatan sadaya sésa ti Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) sél kana wadah 2 bakal salawasna jadi leuwih nguntungkeun ti nempatkeun aranjeunna dina wadahna béda:

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Transforming kateusaruaan urang meunang

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Dina raraga "nguatkeun" nilai kuantitas Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1), hayu urang nganggap éta Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) = 0. Rata-rata jumlah sél biasana kalibet dina prosedur pikeun compressing kasaimbangan gudang nyaéta 10. Ngaganti nilai dipikawanoh tina kuantitas, urang boga nilai handap tina konstanta.

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Urang nyokot nilai pangbadagna diitung keur unggal pilihan, ieu bakal nilai kuantitas Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) pikeun parameter gudang dibikeun. Ayeuna, pikeun ngalengkepan, hayu urang nyerat rumus pikeun ngitung total biaya Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1) pikeun sababaraha solusi meujeuhna Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1):

Matematika diskrit pikeun WMS: algoritma pikeun ngompres barang dina sél (bagian 1)

Ayeuna, barina ogé usaha titanic Ku transforming data input, urang bisa disebutkeun yen sakabeh data input geus dirobah jadi formulir dipikahoyong tur siap dipaké dina algoritma optimasi.

kacindekan

Salaku prakték nempokeun, pajeulitna sarta pentingna tahap Nyiapkeun sarta transforming data input pikeun hiji algoritma mindeng underestimated. Dina artikel ieu, urang husus dibayar loba perhatian ka tahap ieu guna némbongkeun yén ngan kualitas luhur sarta intelligently disiapkeun data input bisa nyieun kaputusan diitung ku algoritma sabenerna berharga pikeun klien nu. Leres, aya seueur turunan rumus, tapi kami ngingetkeun anjeun sateuacan kata :)

Dina artikel salajengna urang tungtungna bakal datang ka naon 2 publikasi saméméhna dimaksudkeun pikeun - a algoritma optimasi diskrit.

Disiapkeun artikel
Roman Shangin, programmer ti departemen proyék,
parusahaan Bit munggaran, Chelyabinsk


sumber: www.habr.com

Tambahkeun komentar