Энэ нийтлэлд бид агуулах дахь чөлөөт эсийн дутагдлын асуудлыг хэрхэн шийдэж, ийм асуудлыг шийдэхийн тулд салангид оновчлолын алгоритмыг боловсруулах талаар танд хэлэх болно. Оновчлолын бодлогын математик загварыг хэрхэн "барьсан" тухай, мөн алгоритмын оролтын өгөгдлийг боловсруулахад гэнэтийн тулгарсан бэрхшээлүүдийн талаар ярилцъя.
Хэрэв та математикийн бизнесийн хэрэглээг сонирхож байгаа бөгөөд 5-р ангийн түвшинд томъёоны хатуу хувиралаас айдаггүй бол мууранд тавтай морилно уу!
Нийтлэл нь хэрэгжүүлдэг хүмүүст ашигтай байх болно WMS- систем, агуулах эсвэл үйлдвэрлэлийн логистикийн салбарт ажилладаг, түүнчлэн бизнест математикийн хэрэглээ, аж ахуйн нэгж дэх үйл явцыг оновчтой болгох сонирхолтой програмистууд.
Оршил хэсэг
Энэхүү нийтлэл нь агуулахын процесст оновчлолын алгоритмыг хэрэгжүүлэх амжилттай туршлагаа хуваалцсан цуврал нийтлэлүүдийг үргэлжлүүлж байна.
В
Оновчлолын алгоритмуудын тухай нийтлэл бичиж дуусахад энэ нь маш том хэмжээтэй болсон тул бид хуримтлагдсан материалыг 2 хэсэгт хуваахаар шийдсэн.
- Эхний хэсэгт (энэ нийтлэл) бид асуудлын математик загварыг хэрхэн "барьсан" тухай, мөн алгоритмын оролтын өгөгдлийг боловсруулах, хувиргахад гэнэтийн тулгарсан томоохон бэрхшээлүүдийн талаар ярих болно.
- Хоёрдахь хэсэгт бид алгоритмын хэл дээрх хэрэгжилтийг нарийвчлан авч үзэх болно C ++, бид тооцооллын туршилт хийж, үйлчлүүлэгчийн бизнесийн үйл явцад ийм "ухаалаг технологи" нэвтрүүлэх явцад олж авсан туршлагаа нэгтгэн дүгнэх болно.
Нийтлэлийг хэрхэн унших вэ. Хэрэв та өмнөх нийтлэлийг уншсан бол "Одоо байгаа шийдлүүдийн тойм" бүлэгт шууд очиж болно, хэрэв үгүй бол шийдэгдэж буй асуудлын тайлбарыг доорх спойлерт оруулсан болно.
Үйлчлүүлэгчийн агуулахад шийдэж буй асуудлын тодорхойлолт
Үйл явц дахь гацаа
2018 онд хэрэгжүүлэх төслийг дуусгасан WMS-Челябинск дахь "LD худалдааны газар" агуулахын системүүд. Бид "1С-Логистик: Агуулахын менежмент 3" бүтээгдэхүүнийг 20 ажлын байранд нэвтрүүлсэн: операторууд WMS, складчин, сэрээ өргөгч. Дундаж агуулах нь 4 мянга орчим м2, үүрний тоо 5000, SKU-ийн тоо 4500. Тус агуулахад 1 кг-аас 400 кг хүртэл янз бүрийн хэмжээтэй, өөрийн үйлдвэрлэсэн бөмбөлөг хавхлагуудыг хадгалдаг. FIFO-ийн дагуу барааг сонгох шаардлагатай тул агуулахад байгаа бараа материалыг багцаар нь хадгалдаг.
Агуулахын процессын автоматжуулалтын схемийг боловсруулах явцад бид бараа материалыг оновчтой бус хадгалах асуудалтай тулгарсан. Краныг хадгалах, тавих онцлог нь нэг нэгж хадгалах үүрэнд зөвхөн нэг багцын эд зүйлсийг агуулж болно (1-р зургийг үз). Бүтээгдэхүүн өдөр бүр агуулахад ирдэг бөгөөд ирэх бүр нь тусдаа багц юм. Нийтдээ 1 сарын агуулахын ашиглалтын үр дүнд тус бүрийг тусдаа нүдэнд хадгалах ёстой ч 30 тусдаа багц бий болсон. Бүтээгдэхүүнийг ихэвчлэн бүхэл тавиураар биш, харин хэсэг хэсгээр нь сонгодог бөгөөд үүний үр дүнд олон нүднүүдийн хэсэг сонгох бүсэд дараах зураг ажиглагдаж байна: 1 м3-аас дээш эзэлхүүнтэй нүдэнд хэд хэдэн тогоруу байдаг. эсийн эзлэхүүний 5-10% -иас бага хувийг эзэлдэг.
Зураг 1. Нэг эс дэх хэд хэдэн хэсгүүдийн зураг
Хадгалах хүчин чадлыг оновчтой ашиглахгүй байгаа нь ойлгомжтой. Гамшгийн цар хүрээг төсөөлөхийн тулд би тоо баримтыг хэлж чадна: агуулахын ашиглалтын янз бүрийн хугацаанд "бага" үлдэгдэлтэй, 1 м3-аас дээш эзэлхүүнтэй ийм эсийн 100-аас 300 хүртэлх эс байдаг. Агуулах нь харьцангуй жижиг тул агуулахын ачаалал ихтэй үед энэ хүчин зүйл нь "гацаа" болж, агуулахын хүлээн авах, тээвэрлэх үйл явцыг ихээхэн удаашруулдаг.
Асуудлыг шийдэх санаа
Хамгийн ойрын огноотой үлдэгдлийн багцыг нэг багц болгон бууруулж, нэгдсэн багцтай ийм үлдэгдлийг нэг нүдэнд авсаархан, эсвэл нэг нүдэнд хангалттай зай байхгүй бол хэд хэдэн нүдэнд авсаархан байрлуулах ёстой гэсэн санаа гарч ирэв. бүхэл бүтэн үлдэгдэл. Ийм "шахалтын" жишээг 2-р зурагт үзүүлэв.
Зураг 2. Эс дэх үлдэгдлийг шахах схем
Энэ нь шинэ барааг байршуулахад ашиглах агуулахын эзэлдэг орон зайг мэдэгдэхүйц багасгах боломжийг танд олгоно. Агуулахын багтаамж хэт их ачаалалтай байгаа нөхцөлд ийм арга хэмжээ авах нь маш чухал бөгөөд эс тэгвээс шинэ барааг байрлуулах хангалттай зай байхгүй байж магадгүй бөгөөд энэ нь агуулахыг байрлуулах, дүүргэх үйл явцыг зогсооход хүргэдэг. хүлээн авах, тээвэрлэх үйл явцыг зогсоох. Өмнө нь WMS системийг хэрэгжүүлэхээс өмнө ийм ажиллагааг гараар хийдэг байсан бөгөөд энэ нь эсэд тохирох тэнцвэрийг хайх үйл явц нэлээд урт байсан тул үр дүнгүй байв. Одоо WMS системийг нэвтрүүлснээр бид үйл явцыг автоматжуулж, хурдасгаж, ухаалаг болгохоор шийдсэн.
Ийм асуудлыг шийдвэрлэх үйл явц нь 2 үе шатанд хуваагдана.
- Эхний шатанд бид шахах хугацаа нь дууссан багц багцуудыг олдог (энэ даалгаварт зориулагдсан
өмнөх нийтлэл ); - Хоёрдахь шатанд багцын бүлэг бүрийн хувьд үлдсэн барааг үүрэнд хамгийн нягт байрлуулахыг тооцоолно.
Одоогийн нийтлэлд бид алгоритмын хоёр дахь үе шатанд анхаарлаа хандуулах болно.
Одоо байгаа шийдлүүдийг хянан үзэх
Бидний боловсруулсан алгоритмуудын тайлбар руу шилжихээсээ өмнө зах зээл дээр аль хэдийн байгаа системүүдийн талаар товч тойм хийх нь зүйтэй. WMS, ижил төстэй оновчтой шахалтын функцийг хэрэгжүүлдэг.
Юуны өмнө "1C: Enterprise 8. WMS Logistics" бүтээгдэхүүнийг тэмдэглэх нь зүйтэй. 4С-ийн эзэмшиж, хуулбарласан, дөрөв дэх үеийнх нь агуулахын менежмент 1" WMS-AXELOT-ийн боловсруулсан системүүд. Энэхүү систем нь шахалтын функцийг шаарддаг бөгөөд энэ нь ялгаатай бүтээгдэхүүний үлдэгдлийг нэг нийтлэг нүдэнд нэгтгэх зорилготой юм. Ийм систем дэх шахалтын функц нь бусад боломжуудыг багтаасан гэдгийг дурдах нь зүйтэй, жишээлбэл, барааг ABC ангиллын дагуу үүрэнд байрлуулахыг засах боловч бид тэдгээрийн талаар ярихгүй.
Хэрэв та 1C: Enterprise 8. WMS Logistics системийн кодыг шинжилвэл. Агуулахын менежмент 4" (энэ нь функциональ хэсэгт нээлттэй байдаг) бид дараахь зүйлийг дүгнэж болно. Үлдэгдэл шахалтын алгоритм нь нэлээд энгийн шугаман логикийг хэрэгжүүлдэг бөгөөд "хамгийн оновчтой" шахалтын тухай ярих боломжгүй юм. Угаасаа намуудын бөөгнөрөл гэж тусгаагүй. Ийм системийг хэрэгжүүлсэн хэд хэдэн үйлчлүүлэгч шахалтын төлөвлөлтийн үр дүнгийн талаар гомдоллож байсан. Жишээлбэл, шахалтын үед практикт ихэвчлэн дараах нөхцөл байдал үүсдэг: 100 ширхэг. Үлдсэн барааг 1 ширхэг байрлаж байгаа нэг үүрээс нөгөө үүр рүү шилжүүлэхээр төлөвлөж байна. бараа, гэхдээ эсрэгээр нь хийх нь цаг хугацааны хувьд оновчтой боловч.
Мөн үүрэнд үлдсэн барааг шахах функцийг гадаадын олон оронд тунхагласан байдаг. WMS-систем, гэхдээ харамсалтай нь бид алгоритмуудын үр дүнтэй байдлын талаар бодитой санал хүсэлт байхгүй (энэ нь худалдааны нууц), тэдгээрийн логикийн гүний талаархи санаа (өмчийн хаалттай эхийн програм хангамж) байхгүй тул бид шүүж чадахгүй байна.
Асуудлын математик загварыг хайх
Асуудлыг шийдвэрлэх өндөр чанартай алгоритмуудыг зохиохын тулд эхлээд энэ асуудлыг математикийн хувьд тодорхой томъёолох шаардлагатай бөгөөд үүнийг бид хийх болно.
Маш олон эсүүд байдаг , зарим барааны үлдэгдлийг агуулсан . Дараах зүйлд бид ийм эсийг донор эс гэж нэрлэх болно. гэж тэмдэглэе эсийн доторх барааны хэмжээ $.
Нэг багцын зөвхөн нэг бүтээгдэхүүн эсвэл өмнө нь кластерт нэгтгэсэн хэд хэдэн багцыг хэлэх нь чухал (унш:
Маш олон эсүүд байдаг , донор эсийн үлдэгдлийг оруулах боломжтой. Цаашид бид ийм эсийг савны эс гэж нэрлэх болно. Эдгээр нь агуулах дахь чөлөөт эсүүд эсвэл төрөл бүрийн донор эсүүд байж болно . Үргэлж элбэг дэд олонлог юм .
Нүд бүрийн хувьд олон хүнээс Хүчин чадлын хязгаарлалт тогтоосон , дм3-аар хэмжсэн. Нэг дм3 нь 10 см-ийн талтай шоо юм.Агуулахад хадгалагдаж буй бүтээгдэхүүн нь нэлээд том хэмжээтэй байдаг тул энэ тохиолдолд ийм ялгавартай байх нь хангалттай юм.
Хамгийн богино зайн матриц өгөгдсөн хос эс бүрийн хооронд метрээр хаана и олонлогт хамаарагдана и тус тусдаа.
гэж тэмдэглэе эсээс бараа зөөх "зардал" эс рүү . гэж тэмдэглэе сав сонгох "зардал" бусад эсээс үлдэгдлийг түүн рүү шилжүүлэх. Хэмжилтийн утгыг яг яаж, ямар нэгжээр тооцох вэ и Бид цаашид авч үзэх болно (оролтын өгөгдөл бэлтгэх хэсгийг үзнэ үү), одоогоор ийм утгууд нь утгуудтай шууд пропорциональ байх болно гэж хэлэхэд хангалттай. и тус тусдаа.
-ээр тэмдэглэе Үлдэгдэл нь нүднээс байвал 1 утгыг авах хувьсагч саванд шилжүүлэв , бусад тохиолдолд 0 байна. -ээр тэмдэглэе сав бол 1 утгыг авах хувьсагч үлдсэн барааг агуулж байгаа ба бусад тохиолдолд 0 байна.
Даалгаврыг дараах байдлаар тодорхойлсон: та маш олон сав олох хэрэгтэй Ингэснээр функцийг багасгахын тулд донор эсийг савны эсүүдэд "хавсруулна"
хязгаарлалт дор
Нийтдээ асуудлын шийдлийг тооцоолохдоо бид дараахь зүйлийг хийхийг хичээдэг.
- нэгдүгээрт, хадгалах багтаамжийг хэмнэх;
- Хоёрдугаарт, дэлгүүрийн эрхлэгчдийн цагийг хэмнэх.
Сүүлчийн хязгаарлалт нь бид бараагаа сонгоогүй саванд шилжүүлж болохгүй, тиймээс үүнийг сонгоход "зардал гаргаагүй" гэсэн үг юм. Энэхүү хязгаарлалт нь эсээс саванд шилжүүлсэн барааны хэмжээ нь савны багтаамжаас хэтрэхгүй байх ёстой гэсэн үг юм. Асуудлыг шийдэхийн тулд бид савны багцыг хэлнэ Донор эсийг саванд бэхлэх аргууд.
Оновчлолын асуудлын энэхүү томъёолол нь шинэ зүйл биш бөгөөд өнгөрсөн зууны 80-аад оны эхэн үеэс олон математикчид судалж ирсэн. Гадаадын уран зохиолд тохиромжтой математик загвар бүхий оновчлолын 2 асуудал байдаг.
- Үйлдвэрлэлийн аж ахуйн нэгжүүдийг (цаашид үйлдвэрлэлийн хот гэх) байршуулах боломжтой хязгаарлагдмал тооны хотууд байдаг. Үйлдвэрлэгч хот бүрийн хувьд тэнд аж ахуйн нэгж нээхэд шаардагдах зардал, түүнчлэн тэнд нээгдсэн аж ахуйн нэгжийн үйлдвэрлэлийн хүчин чадлыг хязгаарласан байдаг.
- Үйлчлүүлэгчид (цаашид үйлчлүүлэгчийн хот гэх) байрладаг хязгаарлагдмал хотууд байдаг. Ийм үйлчлүүлэгч хот бүрийн хувьд бүтээгдэхүүний эрэлтийн хэмжээг тодорхойлдог. Энгийн байхын тулд аж ахуйн нэгжүүдийн үйлдвэрлэдэг, үйлчлүүлэгчдийн хэрэглэдэг цорын ганц бүтээгдэхүүн байдаг гэж бид таамаглах болно.
- Хот-үйлдвэрлэгч, хот-үйлчлүүлэгч хос бүрийн хувьд шаардлагатай хэмжээний бүтээгдэхүүнийг үйлдвэрлэгчээс үйлчлүүлэгчид хүргэх тээврийн зардлын үнийг зааж өгсөн болно.
Та аль хотод бизнесээ нээх, үйлчлүүлэгчдийг ийм бизнест хэрхэн холбох талаар олж мэдэх хэрэгтэй.
- Аж ахуйн нэгж нээхэд нийт зардал, тээврийн зардал хамгийн бага байсан;
- Аливаа нээлттэй үйлдвэрт хуваарилагдсан хэрэглэгчдийн эрэлт хэрэгцээ нь тухайн аж ахуйн нэгжийн үйлдвэрлэлийн хүчин чадлаас хэтрээгүй.
Одоо эдгээр хоёр сонгодог асуудлын цорын ганц ялгааг дурдах нь зүйтэй.
- Нэг эх үүсвэрийн хүчин чадалтай байгууламжийн байршлын асуудал – үйлчлүүлэгчийг зөвхөн нэг нээлттэй байгууламжаас хангадаг;
- Олон эх үүсвэрийн хүчин чадалтай байгууламжийн байршлын асуудал – үйлчлүүлэгчийг хэд хэдэн нээлттэй байгууламжаас нэгэн зэрэг нийлүүлэх боломжтой.
Хоёр асуудлын хоорондох ийм ялгаа нь эхлээд харахад тийм ч чухал биш боловч үнэн хэрэгтээ эдгээр асуудлуудын тэс өөр комбинатор бүтэц, үр дүнд нь тэдгээрийг шийдвэрлэх огт өөр алгоритмд хүргэдэг. Даалгавруудын ялгааг доорх зурагт үзүүлэв.
Зураг 3. a) Олон эх үүсвэрийн хүчин чадалтай байгууламжийн байршлын асуудал
Зураг 3. b) Нэг эх үүсвэрийн хүчин чадалтай байгууламжийн байршлын асуудал
Хоёр даалгавар -хэцүү, өөрөөр хэлбэл оролтын өгөгдлийн хэмжээгээр цаг хугацааны олон гишүүнтэд ийм асуудлыг шийдэх нарийн алгоритм байдаггүй. Энгийнээр хэлбэл, асуудлыг шийдэх бүх алгоритмууд экспоненциал хугацаанд ажиллах болно, гэхдээ сонголтуудыг бүрэн хайхаас илүү хурдан байж магадгүй юм. Даалгавраас хойш -Хэцүү, тэгвэл бид зөвхөн ойролцоо эвристикийг авч үзэх болно, өөрөөр хэлбэл шийдлүүдийг оновчтой тооцоолж, маш хурдан ажиллах алгоритмуудыг авч үзэх болно. Хэрэв та ийм ажлыг сонирхож байгаа бол орос хэл дээр сайн тоймыг эндээс олж болно.
Хэрэв бид эсийн доторх барааг оновчтой шахах асуудлынхаа нэр томъёо руу шилжвэл:
- үйлчлүүлэгч хотууд нь донор эсүүд юм үлдсэн бараатай,
- үйлдвэрлэлийн хотууд - контейнер эсүүд , бусад эсийн үлдэгдлийг байрлуулах ёстой,
- тээврийн зардал - цаг хугацааны зардал хандивлагч эсээс барааны эзэлхүүнийг зөөх агуулах контейнер үүрэнд ;
- бизнес нээх зардал - сав сонгох зардал , савны үүрний эзэлхүүнтэй тэнцүү байна , чөлөөт эзэлхүүнийг хэмнэх тодорхой коэффициентоор үржүүлнэ (коэффициентийн утга үргэлж > 1 байна) (оролтын өгөгдлийг бэлтгэх хэсгийг үзнэ үү).
Асуудлын алдартай сонгодог шийдлүүдийн аналогийг хийсний дараа шийдлийн алгоритмын архитектурын сонголтоос хамаарах чухал асуултанд хариулах шаардлагатай байна: донорын эсээс үлдэгдлийг шилжүүлэх нь зөвхөн нэг рүү шилжих боломжтой. ба зөвхөн нэг сав (Нэг эх үүсвэр), эсвэл үлдэгдлийг хэд хэдэн савны үүрэнд (Олон эх сурвалж) шилжүүлэх боломжтой юу?
Практикт асуудлын хоёр томъёолол хоёулаа явагддаг гэдгийг тэмдэглэх нь зүйтэй. Ийм тохиргоо бүрийн давуу болон сул талуудыг бид доор харуулав.
Асуудлын хувилбар | Сонголтуудын давуу тал | Сонголтуудын сул тал |
---|---|---|
Нэг эх сурвалж | Асуудлын энэ хувилбарыг ашиглан тооцоолсон барааны хөдөлгөөний үйл ажиллагаа:
|
|
Олон эх сурвалж | Асуудлын энэ хувилбарыг ашиглан тооцоолсон шахалт нь "Нэг эх сурвалж" сонголтыг ашиглан тооцоолсон шахалтаас ихэвчлэн 10-15% илүү нягт байдаг. Гэхдээ донор эс дэх үлдэгдлийн тоо бага байх тусам нягтралын ялгаа бага байдаг гэдгийг бид бас тэмдэглэж байна. | Асуудлын энэ хувилбарыг ашиглан тооцоолсон барааны хөдөлгөөний үйл ажиллагаа:
|
Хүснэгт 1. Нэг эх сурвалж болон олон эх сурвалжийн сонголтуудын давуу болон сул талууд.
Нэг эх үүсвэрийн сонголт нь илүү давуу талтай тул донор эс дэх үлдэгдэл бага байх тусам асуудлын хоёр хувилбарт тооцоолсон шахалтын нягтын түвшний ялгаа бага байх болно гэдгийг харгалзан үзсэн тул бидний сонголт Нэг эх сурвалжийн сонголт. Эх сурвалж.
Олон эх сурвалжийн сонголтын шийдэл бас явагддаг гэдгийг хэлэх нь зүйтэй болов уу. Үүнийг шийдвэрлэх олон тооны үр дүнтэй алгоритмууд байдаг бөгөөд тэдгээрийн ихэнх нь тээврийн олон асуудлыг шийдвэрлэхэд чиглэгддэг. Зөвхөн үр дүнтэй алгоритмууд төдийгүй гоёмсог алгоритмууд байдаг, жишээлбэл,
Оролтын өгөгдлийг бэлтгэж байна
Асуудлыг шийдвэрлэх алгоритмыг боловсруулж эхлэхээсээ өмнө бид ямар өгөгдөл, ямар хэлбэрээр оруулахаа шийдэх хэрэгтэй. Донор эсэд үлдсэн барааны хэмжээ, савны үүрний багтаамж зэрэгт ямар ч асуудал байхгүй, учир нь энэ нь өчүүхэн зүйл юм - ийм тоо хэмжээг м3-ээр хэмждэг, гэхдээ савны үүр, зөөвөрлөх зардлын матрицыг ашиглах зардалд бүх зүйл биш юм. маш энгийн!
Эхлээд тооцооллыг харцгаая бараа зөөх зардал донор эсээс чингэлэг эс хүртэл. Юуны өмнө бид хөдөлгөөний зардлыг ямар хэмжүүрээр тооцохоо шийдэх хэрэгтэй. Хамгийн тодорхой хоёр сонголт бол метр ба секунд юм. Аяллын зардлыг "цэвэр" метрээр тооцох нь утгагүй юм. Үүнийг жишээгээр харуулъя. Эсийг нь үлдээгээрэй эхний шат, үүрэн дээр байрладаг 30 метр зайд зайлуулж, хоёрдугаар шатанд байрладаг:
- -аас хөдөлж байна в нүүхээс илүү үнэтэй в , хоёр дахь шатнаас (шалнаас 1,5-2 метр) доош буух нь хоёр дахь шат руу явахаас илүү хялбар байдаг тул зай нь ижил байх болно;
- 1 ширхэгийг хөдөлгө. эсээс гарсан бараа в Энэ нь 10 ширхэгийг зөөхөөс илүү хялбар байх болно. ижил бүтээгдэхүүн боловч зай нь ижил байх болно.
Шилжилтийн зардлыг секундын дотор авч үзэх нь дээр, учир нь энэ нь шатлалын ялгаа болон шилжүүлсэн барааны тоо хэмжээний зөрүүг хоёуланг нь харгалзан үзэх боломжийг олгодог. Хөдөлгөөний зардлыг секундээр тооцохын тулд бид хөдөлгөөний үйл ажиллагааг үндсэн бүрэлдэхүүн хэсгүүдэд задалж, үндсэн бүрэлдэхүүн хэсэг бүрийн гүйцэтгэлд цаг хугацааны хэмжилт хийх ёстой.
Эсээс гарга хөдөлдөг PC. саванд байгаа бараа . Болъё – агуулах дахь ажилтны хөдөлгөөний дундаж хурдыг м/сек-ээр хэмжинэ. Болъё и - нэг удаагийн үйл ажиллагааны дундаж хурд нь 4 дм3-тай тэнцэх барааны эзэлхүүний хувьд (ажил гүйцэтгэх явцад ажилтан нэг удаа агуулахад авдаг дундаж хэмжээ). Болъё и авах болон тавих үйлдлийг гүйцэтгэх нүднүүдийн өндөр. Жишээлбэл, эхний давхаргын (давхар) дундаж өндөр нь 1 м, хоёр дахь давхаргын өндөр нь 2 м гэх мэт. Дараа нь хөдөлгөх үйлдлийг гүйцэтгэх нийт хугацааг тооцоолох томъёо нь байна дараахь:
Хүснэгт 2-т хадгалагдаж буй барааны онцлогийг харгалзан агуулахын ажилтнуудын цуглуулсан үндсэн үйл ажиллагаа бүрийн гүйцэтгэлийн хугацааны статистикийг харуулав.
үйл ажиллагааны нэр | Төлөвлөлт | Дундаж |
---|---|---|
Агуулахын эргэн тойрон дахь ажилчдын дундаж хурд | 1,5 м/с | |
Нэг үйл ажиллагааны дундаж хурд (4 дм3 бүтээгдэхүүний эзэлхүүний хувьд) | 2,4 sec |
Хүснэгт 2. Агуулахын үйл ажиллагааг дуусгах дундаж хугацаа
Бид нүүх зардлыг тооцох аргыг шийдсэн. Одоо бид хэрхэн тооцоолохыг олж мэдэх хэрэгтэй савны үүрийг сонгох зардал. Энд байгаа бүх зүйл шилжих зардлаас хамаагүй илүү төвөгтэй, учир нь:
- Нэгдүгээрт, зардал нь эсийн эзэлхүүнээс шууд хамааралтай байх ёстой - донор эсээс шилжүүлсэн ижил хэмжээний үлдэгдлийг том саванд хийхээс бага хэмжээтэй саванд байрлуулах нь дээр, хэрэв ийм эзэлхүүн нь хоёр саванд бүрэн багтах болно. Тиймээс бид савыг сонгоход гарах нийт зардлыг багасгах замаар бараа бүтээгдэхүүнийг үүрэнд байрлуулах дараагийн үйлдлүүдийг гүйцэтгэхийн тулд сонгон шалгаруулах бүсэд үнэ төлбөргүй хадгалах багтаамжийг хэмнэхийг хичээдэг. Зураг 4-д үлдэгдлийг том, жижиг саванд шилжүүлэх сонголтууд болон агуулахын дараагийн үйл ажиллагаанд эдгээр шилжүүлгийн хувилбаруудын үр дагаврыг харуулав.
- хоёрдугаарт, анхны асуудлыг шийдэхийн тулд бид яг нийт зардлыг багасгах хэрэгтэй бөгөөд энэ нь зөөх зардал болон сав сонгох зардлын аль алиных нь нийлбэр тул куб метр дэх эсийн эзэлхүүнийг секундтэй ямар нэгэн байдлаар холбох шаардлагатай. энэ нь өчүүхэн зүйлээс хол байна.
Цагаан будаа. 4. Үлдэгдэлийг өөр өөр багтаамжтай саванд хийх сонголтууд.
Зураг 4-т дараагийн барааг байрлуулах хоёр дахь шатанд саванд багтахгүй үлдсэн үлдэгдэл хэмжээг улаанаар харуулав.
Энэ нь сав сонгоход шаардагдах куб метр зардлыг асуудлын тооцоолсон шийдлүүдийн дараах шаардлагуудыг шилжүүлэхэд зарцуулсан секундын зардалтай холбоход тусална.
- Хэрэв энэ нь бүтээгдэхүүнийг агуулсан савны нийт тоог бууруулж байвал донорын хогийн савны үлдэгдлийг ямар ч тохиолдолд сав руу шилжүүлэх шаардлагатай.
- Савны эзэлхүүн ба нүүлгэн шилжүүлэхэд зарцуулсан цаг хугацааны тэнцвэрийг хадгалах шаардлагатай: жишээлбэл, өмнөх шийдэлтэй харьцуулахад асуудлын шинэ шийдэлд эзлэхүүний ашиг их, харин цаг хугацааны алдагдал бага байна. , дараа нь шинэ сонголтыг сонгох шаардлагатай.
Сүүлчийн шаардлагаас эхэлье. Үлдэгдэл гэсэн хоёрдмол утгатай үгийг тодруулах үүднээс агуулахын ажилчдаас судалгаа авч дараах зүйлийг тодрууллаа. Эзлэхүүнтэй савны нүд байх болтугай , донор эсээс үлдсэн барааны хөдөлгөөнийг хуваарилж, ийм хөдөлгөөний нийт хугацаа нь тэнцүү байна. . Нэг донорын эсээс ижил хэмжээний барааг өөр саванд хийх өөр хэд хэдэн хувилбар байгаа бөгөөд байршуулалт бүр өөрийн гэсэн тооцоотой байдаг. хаана < и хаана >.
Асуулт тавигдаж байна: эзлэхүүний хамгийн бага ашиг нь юу вэ өгөгдсөн хугацааны алдагдлын утгыг хүлээн зөвшөөрөх боломжтой ? Үүнийг жишээгээр тайлбарлая. Эхлээд үлдэгдлийг 1000 дм3 (1 м3) багтаамжтай саванд хийх ёстой байсан бөгөөд шилжүүлэх хугацаа 70 секунд байв. Үлдэгдлийг 500 дм3 эзэлхүүнтэй, 130 секундын хугацаатай өөр саванд хийх сонголт бий. Асуулт: Бид 60 дм500 чөлөөт эзэлхүүнийг хэмнэхийн тулд хадгалагчийн нэмэлт 3 секундыг бараагаа зөөхөд зарцуулахад бэлэн үү? Агуулахын ажилчдын санал асуулгын үр дүнд үндэслэн дараах диаграммыг гаргав.
Цагаан будаа. 5. Ашиглалтын хугацааны зөрүүний өсөлтөөс хамгийн бага зөвшөөрөгдөх эзэлхүүний хэмнэлтийн хамаарлын диаграмм
Өөрөөр хэлбэл, нэмэлт цагийн зардал нь 40 секунд байвал бид эзлэхүүн нь дор хаяж 500 дм3 байх үед л зарцуулахад бэлэн байна. Хараат байдалд бага зэрэг шугаман бус байдал байгаа хэдий ч цаашдын тооцоололд хялбар байх үүднээс хэмжигдэхүүнүүдийн хоорондын хамаарлыг шугаман бөгөөд тэгш бус байдлаар тодорхойлсон гэж үзэх болно.
Доорх зураг дээр бид барааг саванд хийх дараах аргуудыг авч үзье.
Цагаан будаа. 6. Сонголт (a): 2 сав, нийт эзэлхүүн 400 дм3, нийт хугацаа 150 сек.
Цагаан будаа. 6. Сонголт (б): 2 сав, нийт эзэлхүүн 600 дм3, нийт хугацаа 190 сек.
Цагаан будаа. 6. Сонголт (в): 1 сав, нийт эзэлхүүн 400 дм3, нийт хугацаа 200 сек.
Сав сонгох (a) хувилбар нь анхны хувилбараас илүү тохиромжтой, учир нь тэгш бус байдал нь дараах байдалтай байна: (800-400)/10>=150-120, энэ нь 40 >= 30 гэсэн утгатай. Сонголт (b) нь анхны хувилбараас бага. сонголт , учир нь тэгш бус байдал хангагдахгүй: (800-600)/10>=190-150 нь 20 >= 40 гэсэн утгатай. Гэвч (c) сонголт ийм логикт тохирохгүй байна! Энэ сонголтыг илүү нарийвчлан авч үзье. Нэг талаас, тэгш бус байдал (800-400)/10>=200-120, энэ нь 40 >= 80 тэгш бус байдал хангагдаагүй гэсэн үг бөгөөд энэ нь эзлэхүүний өсөлт нь цаг хугацааны хувьд тийм ч их алдагдал хүлээхгүй гэдгийг харуулж байна.
Гэхдээ нөгөө талаас, энэ хувилбарт (в) бид зөвхөн нийт эзэлдэг эзэлхүүнийг багасгахаас гадна эзлэгдсэн эсийн тоог бууруулдаг бөгөөд энэ нь дээр дурдсан асуудлуудыг тооцоолох боломжтой шийдвэрлэх хоёр чухал шаардлагын эхнийх юм. Мэдээжийн хэрэг, энэ шаардлагыг биелүүлж эхлэхийн тулд тэгш бус байдлын зүүн талд эерэг тогтмолыг нэмэх шаардлагатай. , мөн савны тоо багасах үед л ийм тогтмолыг нэмэх шаардлагатай. Үүнийг эргэн санацгаая сав байх үед 1-тэй тэнцүү хувьсагч юм сонгогдсон, контейнер байх үед 0 сонгоогүй. Бид тэмдэглэе – анхны уусмал дахь олон сав ба – шинэ шийдэл дэх олон сав. Ерөнхийдөө шинэ тэгш бус байдал дараах байдлаар харагдах болно.
Дээрх тэгш бус байдлыг хувиргаснаар бид олж авна
Үүний үндсэн дээр бид нийт зардлыг тооцох томьёо гаргасан асуудлын зарим шийдэл:
Харин одоо асуулт гарч ирж байна: ийм тогтмол ямар утгатай байх ёстой вэ? ? Мэдээжийн хэрэг, түүний үнэ цэнэ нь хангалттай том байх ёстой бөгөөд ингэснээр асуудлыг шийдэх эхний шаардлагыг үргэлж хангаж байх ёстой. Та мэдээжийн хэрэг 103 эсвэл 106 гэсэн тогтмолын утгыг авч болно, гэхдээ би ийм "шидэт тоо"-оос зайлсхийхийг хүсч байна. Хэрэв бид агуулахын үйл ажиллагааны онцлогийг авч үзвэл ийм тогтмол байдлын утгын хэд хэдэн үндэслэлтэй тоон тооцоог тооцоолж болно.
Магадгүй – нэг ABC бүсийн агуулахын үүрнүүдийн хоорондох хамгийн их зай нь манай тохиолдолд 100 м-тэй тэнцүү байна. – агуулах дахь савны үүрний дээд хэмжээ нь манай тохиолдолд 1000 дм3-тай тэнцүү байна.
Үнэ цэнийг тооцоолох эхний арга . Нэгдүгээр давхарт бараа нь аль хэдийн биет байрлалтай, өөрөөр хэлбэл тэдгээр нь өөрөө донор эсүүд бөгөөд барааг нэг нүд рүү зөөх зардал нь угаасаа 2-тэй тэнцэх 0 чингэлэг байгаа нөхцөл байдлыг авч үзье. тогтмолын ийм утгыг олох шаардлагатай , 1-р савнаас 2-р сав руу үлдэгдлийг байнга зөөх нь ашигтай байх болно. Утгыг орлуулах и Дээр өгөгдсөн тэгш бус байдлын хувьд бид дараахь зүйлийг авна.
үүнээс үүдэлтэй
Дээрх томъёонд энгийн үйлдлийг гүйцэтгэх дундаж хугацааны утгыг орлуулснаар бид олж авна
Утгыг тооцоолох хоёр дахь арга . Байгаа нөхцөл байдлыг авч үзье савнаас барааг зөөхөөр төлөвлөж буй донорын эсүүд 1. Үүнийг тэмдэглэе - донор эсээс хол байх 1-р чингэлэг рүү. Мөн 2-р сав байдаг бөгөөд энэ нь барааг агуулж байгаа бөгөөд эзэлхүүн нь үлдсэн бүх зүйлийг багтаах боломжийг олгодог. эсүүд. Энгийн байхын тулд бид донорын эсээс саванд шилжүүлсэн барааны хэмжээ ижил бөгөөд тэнцүү байна гэж үзнэ. . Тогтмолын ийм утгыг олох шаардлагатай , үүнээс бүх үлдэгдлийг байрлуулах 2-р саванд хийх эсүүдийг өөр саванд хийхээс илүү ашигтай байх болно.
Бидний олж авсан тэгш бус байдлыг өөрчлөх
Хэмжигдэхүүний үнэ цэнийг "бэхжүүлэх" зорилгоор , гэж бодъё = 0. Агуулахын үлдэгдлийг шахах процедурт ихэвчлэн оролцдог эсийн дундаж тоо 10 байна. Хэмжигдэхүүний мэдэгдэж буй утгыг орлуулбал бид дараах тогтмол утгыг авна.
Бид сонголт бүрийн хувьд тооцоолсон хамгийн том утгыг авдаг бөгөөд энэ нь тоо хэмжээний утга байх болно өгөгдсөн агуулахын параметрүүдийн хувьд. Одоо, бүрэн гүйцэд болгохын тулд нийт зардлыг тооцоолох томъёог бичье зарим боломжит шийдлийн төлөө :
Эцсийн эцэст одоо Геркулийн хүчин чармайлт Оролтын өгөгдлийг хувиргаснаар бид бүх оролтын өгөгдлийг хүссэн хэлбэрт шилжүүлж, оновчтой болгох алгоритмд ашиглахад бэлэн болсон гэж хэлж болно.
дүгнэлт
Дадлагаас харахад алгоритмын оролтын өгөгдлийг бэлтгэх, хувиргах үе шатын нарийн төвөгтэй байдал, ач холбогдлыг ихэвчлэн дутуу үнэлдэг. Зөвхөн өндөр чанартай, ухаалгаар бэлтгэсэн оролтын өгөгдөл нь алгоритмаар тооцоолсон шийдвэрийг үйлчлүүлэгчийн хувьд үнэхээр үнэ цэнэтэй болгож чадна гэдгийг харуулахын тулд энэ нийтлэлд бид энэ үе шатанд онцгой анхаарал хандуулсан. Тийм ээ, томъёоны олон гарал үүсэлтэй байсан, гэхдээ бид катаа эхлэхээс өмнө анхааруулсан :)
Дараагийн өгүүллээр бид өмнөх 2 нийтлэл юунд зориулагдсан болохыг олж мэдэх болно - дискрет оновчлолын алгоритм.
Нийтлэлийг бэлтгэсэн
Роман Шангин, төслийн хэлтсийн програмист,
Анхны бит компани, Челябинск
Эх сурвалж: www.habr.com