Nesne

4.5.2: Kutuları Kutulara Takma - Matematik


Ders

Nakliye maliyetlerini bulmak için kesirler hakkında öğrendiklerimizi kullanalım.

Alıştırma (PageIndex{1}): Gönderim Maliyetlerini Belirleme (Bölüm 1)

Bir sanatçı kolye yapar. Her bir kolyeyi (1frac{3}{4}) inç x (2frac{1}{4}) inç x (frac{3}{4) boyutlarında küçük bir mücevher kutusuna yerleştiriyor. }) inç.

Bir mağaza 270 kolye sipariş etti. Sanatçı, kolyeleri postaneden sabit oranlı nakliye kutuları kullanarak mağazaya göndermeyi planlıyor.

  1. Şu sorunu düşünün: Gönderim maliyetini en aza indirmek için sabit ücret kutularından hangisini kullanmalıdır?
    Sorunu çözebilmek için başka hangi bilgilere ihtiyacınız var?
  2. Bu bilgiyi grubunuzla tartışın. Mücevher kutularını göndermenin en ucuz yolunu bulmak için bu bilgiyi kullanmak için bir plan yapın. Bir plan üzerinde anlaştıktan sonra, ana adımları yazın.

Alıştırma (PageIndex{2}): Gönderi Maliyetlerini Belirleme (Bölüm 2)

Kolye kutularını göndermek için en iyi planı bulmak için grubunuzla birlikte çalışın. Grubunuzun her üyesi, farklı bir sabit oranlı nakliye kutusu seçmeli ve aşağıdaki soruları yanıtlamalıdır. Her bir mücevher kutusunun (1frac{3}{4}) inç x (2frac{1}{4}) inç x (frac{3}{4}) inç olduğunu hatırlayın, ve sevk edilecek 270 mücevher kutusu var.

Her bir sabit ücretli kargo kutusu türü için:

  1. Kutuya kaç tane mücevher kutusu sığabileceğini bulun. Mücevher kutularının nakliye kutusunda nasıl paketlenebileceğini açıklayın veya gösterin. Gerekirse düşüncenizi göstermek için bir eskiz çizin.
  2. 270 mücevher kutusunun aynı türden nakliye kutularındaki toplam nakliye maliyetini hesaplayın. Mantığınızı gösterin ve çalışmanızı başkaları tarafından takip edilebilecek şekilde düzenleyin.

Alıştırma (PageIndex{3}): Gönderim Maliyetlerini Belirleme (Bölüm 3)

  1. Çalışmanızı grubunuzun diğer üyeleriyle paylaşın ve tartışın. Öğretmeniniz, tartışmanıza rehberlik edecek sorular gösterecektir. Çalışmanızı gözden geçirmek için kullanabilmeniz için grubunuzdan gelen geri bildirimi not edin.
  2. Grubunuzdan gelen geri bildirimleri kullanarak, doğruluğunu, netliğini ve doğruluğunu artırmak için çalışmanızı gözden geçirin. Hataları düzeltin. Ayrıca notlar veya diyagramlar eklemek veya gereksiz bilgileri kaldırmak isteyebilirsiniz.
  3. Sanatçı hangi nakliye kutularını kullanmalıdır? Grup olarak, 270 mücevher kutusu nakliyesi için hangi kutuları önereceğinize karar verin. Mantığınızı paylaşmaya hazır olun.

Üç boyutunu biliyorsanız, dikdörtgen bir kutunun hacmi hesaplanabilir: genişlik, uzunluk ve yükseklik. Formül daha sonra SesKutu = genişlik x uzunluk x yükseklik. Aşağıdaki çizim:

Dikdörtgen bir kutunun veya tankın kenarlarını ölçmek kolaydır. Dikdörtgen kutu hesaplayıcımızın hacmini kullanarak veya başka bir şekilde hesaplamanın sonucu, her zaman kullanılan uzunluk biriminin küpü olacaktır. Matematiği elle yapıyorsanız ve hesap makinemizi kullanıyorsanız, tüm ölçümlerin aynı birimde olduğundan emin olun - uygun metriği seçtiğinizden emin olun. Uzunlukları inç cinsinden ölçtüyseniz, sonuç inç küp cinsinden olacaktır. Uzunluk fit olarak olsaydı, sonuç fit küp olarak olur ve yarda 3 , mil 3 , mm 3 , cm 3 , metre 3 için böyle devam eder.


İçindekiler

İçinde Bilgisayarlar ve İnatçılık [5] Garey ve Johnson, kutu paketleme sorununu [SR1] referansı altında listeler. Karar değişkenini aşağıdaki gibi tanımlarlar.

Sorunun olası bir tamsayılı doğrusal programlama formülasyonu:

Bin paketleme sorunu güçlü bir şekilde NP-tamamlandı. [5] Bu, güçlü bir şekilde NP-tamamlanmış 3 bölümlü sorunu kutu ambalajına indirgeyerek kanıtlanabilir. Ayrıca, bölümleme probleminden bir indirgeme, P = N P olmadıkça, 3 / 2 'den küçük mutlak yaklaşıklık oranına sahip bir yaklaşım algoritması olamayacağını gösterir. [7] Öte yandan, herhangi bir sabit sayıda bölme K için sözde polinom zamanında çözülebilir ve herhangi bir sabit bölme kapasitesi B için polinom zamanında çözülebilir. [5]

Çöp kutusu paketleme probleminin çevrimiçi versiyonunda, öğeler birbiri ardına gelir ve bir sonraki öğeyi bilmeden veya başka bir öğe olup olmayacağını bilmeden önce bir öğenin nereye yerleştirileceğine (geri döndürülemez) karar verilmelidir. Yao [8] 1980'de 3/2 'den daha küçük asimptotik rekabet oranına sahip çevrimiçi algoritma olamayacağını kanıtladı. Brown [9] ve Liang [10] bu sınırı 1.53635 'e yükseltti. Daha sonra, bu sınır Vliet tarafından 1.54014 olarak geliştirildi. [11] 2012'de bu alt sınır, Békési ve Galambos [12] tarafından 248 / 161 ≈ 1.54037 olarak yeniden geliştirildi.

Öte yandan, asimptotik en kötü durum oranı R A ∞ > olarak tanımlanır

Bin paketleme için yaklaşım algoritmaları iki kategoride sınıflandırılabilir:

  1. Öğeleri belirli bir sırayla ele alan ve bunları tek tek kutulara yerleştiren çevrimiçi buluşsal yöntemler. Bu buluşsal yöntemler, bu sorunun çevrimiçi sürümü için de geçerlidir.
  2. Verilen öğe listesini değiştiren çevrimdışı buluşsal yöntemler, ör. öğeleri boyuta göre sıralayarak. Bu algoritmalar artık bu sorunun çevrimiçi varyantı için geçerli değildir. Bununla birlikte, küçük zaman karmaşıklıklarının avantajını korurken gelişmiş bir yaklaşım garantisine sahiptirler. Çevrimdışı buluşsal yöntemlerin bir alt kategorisi asimptotik yaklaşım şemalarıdır. Bu algoritmaların ( 1 + ε ) O P T ( L ) + C (L)+C> 1 / ε 'a bağlı olabilen bazı sabitler için. İsteğe bağlı olarak büyük bir O P T ( L ) (L)> bu algoritmalar keyfi olarak O P T ( L ) (L)> . Ancak bu, buluşsal yaklaşımlara kıyasla (büyük ölçüde) artan zaman karmaşıklığı pahasına gelir.

Johnson tarafından çöp kutusuna paketleme için çok çeşitli çevrimdışı ve çevrimiçi buluşsal yöntemler incelenmiştir. [13] Çevrimiçi buluşsal yöntemler için aşağıdaki iki karakterizasyonu tanıttı. Bir algoritma bir herhangi bir uygun (AF) algoritması, aşağıdaki özelliği karşılıyorsa: Değerlendirilen bir öğe için, yalnızca zaten açık bir kutuya sığmıyorsa yeni bir kutu açılır. Öte yandan, bir algoritma bir hemen hemen her-uygun (AAF) algoritması ek özelliği varsa: Bir bin, sıfır olmayan en düşük seviyeye sahip benzersiz bin ise, öğe sıfır olmayan seviyeye sahip başka bir kutuya sığmadıkça seçilemez. Her AAF algoritmasının A yaklaşıklık garantisine sahip olduğunu kanıtladı R N F ∞ = 17 / 10 ^=17/10> , yani en fazla 17 / 10 asimptotik yaklaşıklık oranına sahiptir ve bunun için en az 17 / asimptotik yaklaşıklık oranına sahip listeler vardır. 10 .

Çevrimiçi bir algoritma kullanır k-sınırlı uzay eğer her yeni ürün için paketlenebileceği kutu sayısı en fazla k ise. [14] Bu algoritmalara örnek olarak Next-k-Fit ve Harmonic-k verilebilir.

algoritma Yaklaşık garanti En kötü durum listesi L zaman-karmaşıklık
Sonraki uygun (NF) N F ( L ) ≤ 2 ⋅ O P T ( L ) − 1 (L)-1> [13] N F ( L ) = 2 ⋅ O P T ( L ) − 2 (L)-2> [13] O ( | L | ) >(|L|)>
İlk Sığdır (FF) F F ( L ) ≤ ⌊ 1.7 O P T ( L ) ⌋ (L) kat > [15] F F ( L ) = ⌊ 1.7 O P T ( L ) ⌋ (L) kat > [15] O ( | L | log ⁡ ( | L | ) ) >(|L|log(|L|))> [13]
En uygun (BF) B F ( L ) ≤ ⌊ 1.7 O P T ( L ) ⌋ (L) kat > [16] B F ( L ) = ⌊ 1.7 O P T ( L ) ⌋ (L) kat > [16] O ( | L | log ⁡ ( | L | ) ) >(|L|log(|L|))> [13]
En Kötü Uyum (WF) W F ( L ) ≤ 2 ⋅ O P T ( L ) − 1 (L)-1> [13] W F ( L ) = 2 ⋅ O P T ( L ) − 2 (L)-2> [13] O ( | L | log ⁡ ( | L | ) ) >(|L|log(|L|))> [13]
Neredeyse En Kötü Uyum (AWF) R A W F ∞ ≤ 17 / 10 ^leq 17/10> [13] R A W F ∞ = 17 / 10 ^=17/10> [13] O ( | L | log ⁡ ( | L | ) ) >(|L|log(|L|))> [13]
Rafine-İlk-Fit (RFF) R F F ( L ) ≤ ( 5 / 3 ) ⋅ O P T ( L ) + 5 (L)+5> [8] R F F ( L ) = ( 5 / 3 ) O P T ( L ) + 1 / 3 (L)+1/3> (O P T için ( L ) = 6 k + 1 (L)=6k+1> ) [8] O ( | L | log ⁡ ( | L | ) ) >(|L|log(|L|))> [8]
Harmonik-k (Hk) R H k ∞ ≤ 1.69103 ^leq 1.69103> için k → ∞ [17] R H k ∞ ≥ 1.69103 ^geq 1.69103> [17] O ( | L | log ⁡ ( | L | ) >(|L|log(|L|)> [17]
Rafine Harmonik (RH) R R H ∞ ≤ 373 / 228 ≈ 1.63597 ^leq 373/228yaklaşık 1.63597> [17] O ( | L | ) >(|L|)> [17]
Modifiye Harmonik (MH) R M H ∞ ≤ 538 / 33 ≈ 1.61562 ^leq 538/33yaklaşık 1.61562> [18]
Modifiye Harmonik 2 (MH2) R M H 2 ∞ ≤ 239091 / 148304 ≈ 1.61217 ^leq 239091/148304yaklaşık 1.61217> [18]
Harmonik + 1 (H+1) R H + 1 ∞ ≥ 1.59217 ^geq 1.59217> [19]
Harmonik ++ (H++) R H + + ∞ ≤ 1.58889 ^leq 1.58889> [19] R H + + ∞ ≥ 1.58333 ^geq 1.58333> [19]

Sonraki Sığdır (NF) Düzenle

Sonraki Sığdırma (NF), herhangi bir zamanda açık olan yalnızca kısmen doldurulmuş bir bölmeye sahip sınırlı bir alan AF algoritmasıdır. Algoritma aşağıdaki gibi çalışır. Öğeleri bir L listesi tarafından tanımlanan bir sıraya göre değerlendirir. Bir öğe o anda düşünülen kutunun içine sığarsa, öğe onun içine yerleştirilir. Aksi takdirde mevcut kutu kapatılır, yeni bir kutu açılır ve mevcut eşya bu yeni kutunun içine yerleştirilir.

Bu algoritma Johnson tarafından 1973 yılında bu doktora tezinde [13] incelenmiştir. Aşağıdaki özelliklere sahiptir:

  • Çalışma süresi O ( n log ⁡ ( n ) ) >(nlog(n))> , burada n öğe sayısıdır. [13]
  • Her L listesi için N F ( L ) ≤ 2 ⋅ O P T ( L ) − 1 (L)-1> ve dolayısıyla R N F = 2 =2> . [13]
  • Her N ∈ N > O P T ( L ) = N listesi vardır. (L)=N> ve N F ( L ) = 2 ⋅ O P T ( L ) − 2 (L)-2> . [13]
  • R N F ∞ ( α ) ≤ 2 ^(alpha )leq 2> için tüm α ≥ 1 / 2 . [13]
  • R N F ∞ ( α ) ≤ 1 / ( 1 − α ) ^(alpha )leq 1/(1-alpha )> için tüm α ≤ 1 / 2 . [13]
  • Bir AF algoritması olan her bir algoritma A için, R A ∞ ( α ) ≤ R N F ∞ ( α ) (alpha )leq R_^(alpha )> . [13]

Sonraki-k-Fit (NkF) Düzenle

NkF, NF olarak çalışır, ancak yalnızca bir kutuyu açık tutmak yerine, algoritma son k binlerini açık tutar ve öğenin sığdığı ilk kutuyu seçer.

İlk Sığdır (FF) Düzenleme

En Uygun (BF) Düzenle

Best-fit, First-fit'e benzer bir AAF algoritmasıdır. Bir sonraki öğeyi sığdığı ilk bölmeye yerleştirmek yerine, öğenin sığdığı yere maksimum yüke sahip olan bölmeye yerleştirilir.

En Kötü Sığdır (WF) Düzenlemesi

Bu algoritma Best-fit'e benzer. eşyayı maksimum yük ile kutunun içine yerleştirmek yerine, eşya minimum yükle kutunun içine yerleştirilir.

Neredeyse En Kötü Sığdır (AWF) Düzenleme

Rafine-İlk-Fit (RFF) Düzenleme

Mevcut öğenin açık bir kutuya sığmasına rağmen yeni bir kutu açabileceğinden, bu algoritmanın herhangi bir Sığdır algoritması olmadığını unutmayın. Bu algoritma ilk olarak, RFF ( L ) ≤ ( 5 / 3 ) ⋅ OPT ( L ) + 5 (L)+5> ve L k > ile R F F ( L k ) = ( 5 / 3 ) O P T ( L k ) + 1 / 3 )=(5/3)mathrm (L_)+1/3> için O P T ( L ) = 6 k + 1 (L)=6k+1> .

Harmonik-k Düzenle

Rafine-Harmonik (RH) Düzenle

algoritma Yaklaşık garanti En kötü durum örneği
İlk sığdırma azalan (FFD) F F D ( I ) ≤ 11 / 9 O P T ( I ) + 6 / 9 (I)+6/9> [25] F F D ( I ) = 11 / 9 O P T ( I ) + 6 / 9 (I)+6/9> [25]
Değiştirilmiş ilk sığdır azalan (MFFD) M F F D ( I ) ≤ ( 71 / 60 ) O P T ( I ) + 1 (I)+1> [26] R M F F D ∞ ≥ 71 / 60 ^geq 71/60> [27]
Hoberg ve Rothvoss [28] H B ( I ) ≤ O P T ( I ) + O ( log ⁡ O P T ( I ) ) )>

İlk Uyum Azaltma (FFD) Düzenleme

Bu algoritma First-Fit'e analog olarak çalışır. Ancak eşyaları yerleştirmeye başlamadan önce boyutlarına göre artmayacak şekilde sıralanır. Bu algoritma, en fazla O ( n log ⁡ ( n ) ) çalışma süresine sahip olacak şekilde uygulanabilir.

Değiştirilmiş İlk Uyum Azaltma (MFFD) Düzenle

Modifiye edilmiş ilk sığdırma azaltma (MFFD) [27], öğeleri boyuta göre büyük, orta, küçük ve küçük olmak üzere dört boyut sınıfında sınıflandırarak yarım kutudan daha büyük öğeler için FFD'yi iyileştirir; bu, boyutu > 1/2 bin, > olan öğelere karşılık gelir Sırasıyla 1/3 kutu, > 1/6 kutu ve daha küçük öğeler. Ardından beş aşamadan geçer:

  1. Her büyük öğe için en büyüğünden en küçüğüne doğru sıralanmış bir kutu ayırın.
  2. Kutulardan ileriye doğru ilerleyin. Her birinde: Kalan en küçük orta öğe uymuyorsa bu bölmeyi atlayın. Aksi takdirde, kalan en büyük orta boy öğeyi yerleştirin.
  3. Orta boy bir öğe içermeyen bu kutularda geriye doğru ilerleyin. Her birinde: Kalan en küçük iki küçük parça sığmıyorsa bu bölmeyi atlayın. Aksi takdirde, kalan en küçük parçayı ve uygun olan en büyük kalan küçük parçayı yerleştirin.
  4. Tüm kutular boyunca ilerleyin. Herhangi bir beden sınıfının kalan en küçük parçası sığmıyorsa, bu kutuyu atlayın. Aksi takdirde, uygun olan en büyük öğeyi yerleştirin. ve bu kutuda kal.
  5. Kalan öğeleri yeni kutulara paketlemek için FFD'yi kullanın.

Bu algoritma ilk olarak 1985 yılında Johnson ve Garey [27] tarafından çalışıldı ve burada MFFD ( I ) ≤ ( 71 / 60 ) OPT ( I ) + ( 31 / 6 ) (I)+(31/6)> . Bu sınır 1995 yılında M F F D ( I ) ≤ ( 71 / 60 ) O P T ( I ) + 1 (I)+1> .

Asimptotik yaklaşım şemaları

Rothvoss [34] en fazla O P T + O ( log ⁡ ( O P T ) ⋅ log ⁡ log ⁡ ( O P T ) ) +O(log(mathrm )cdot log log(mathrm ))> .

Martello ve Toth [36], MTP adı verilen 1 boyutlu bin-paketleme problemi için kesin bir algoritma geliştirdi. Daha hızlı bir alternatif, 2002'de Korf tarafından önerilen ve daha sonra geliştirilen Bin Tamamlama algoritmasıdır [37]. [38]

2013'te Schreiber ve Korf tarafından bir başka iyileştirme sunuldu. [39] Yeni İyileştirilmiş Kutu Tamamlama algoritmasının, 100 öğeli önemsiz olmayan problemlerde Kutu Tamamlama'dan beş kata kadar daha hızlı olduğu ve BCP'den (dal) daha iyi performans gösterdiği gösterilmiştir. -ve-kes-ve-fiyat) algoritması Belov ve Scheithauer tarafından optimal çözüm olarak 20 kutudan daha az olan problemlerde. Hangi algoritmanın en iyi performans gösterdiği, öğe sayısı, optimal kutu sayısı, optimal çözümde kullanılmayan alan ve değer hassasiyeti gibi problem özelliklerine bağlıdır.

  • Paketleme paketi Python'da iki tipik kutu paketleme sorununu çözmek için açgözlü algoritmalar içerir: (i) öğeleri sabit sayıda kutuya paketleme, (ii) öğeleri düşük sayıda sabit boyutta kutuya paketleme. [40]
  • OR-tools paketi, Python, C# ve Java'da sarmalayıcılarla birlikte C++'da bin paketleme algoritmaları içerir.

Bin paketleme probleminde, boyut kutuların sayısı sabittir ve bunların numara büyütülebilir (ancak mümkün olduğunca küçük olmalıdır).

Buna karşılık, çok yollu numara bölümleme sorun, numara kutuların sayısı sabittir ve bunların boyut büyütülebilir. Amaç, kutu boyutlarının mümkün olduğu kadar eşit olduğu bir bölüm bulmaktır. çok işlemcili zamanlama sorun veya minimum süre sorun, amaç özellikle en büyük çöp kutusunun boyutunu en aza indirmektir).

İçinde ters kutu ambalajı [41] hem kutu sayısı hem de boyutları sabittir, ancak öğe boyutları değiştirilebilir. Amaç, tüm öğelerin öngörülen sayıda kutuya paketlenebilmesi için öğe boyutu vektöründe minimum bozulmayı elde etmektir.

İçinde maksimum kaynak kutusu ambalajı sorun, [42] amaç maksimize etmek kullanılan kutu sayısı, öyle ki, bazı kutu siparişleri için sonraki bir kutudaki hiçbir öğe önceki bir kutuya sığmaz. İkili bir problemde, kutu sayısı sabittir ve amaç, kutulara yerleştirilen öğelerin toplam sayısını veya toplam boyutunu en aza indirmektir, böylece kalan hiçbir öğe doldurulmamış bir kutuya sığmaz.

İçinde çöp kutusu kapağı sorunu, kutu boyutu sınırlıdır aşağıdan: amaç maksimize etmek her bir kutudaki toplam boyutun en azından belirli bir eşik olacağı şekilde kullanılan kutu sayısı.

İçinde adil bölünmez angarya tahsisi sorun (bir varyantı adil öğe tahsisi), öğeler işleri temsil eder ve her biri, her bir göreve farklı bir zorluk değeri atfeden farklı insanlar vardır. Amaç, her bir kişiye, toplam zorluk-değerinin bir üst sınırı olan bir dizi ev işi tahsis etmektir (böylece, her kişi bir çöp kutusuna karşılık gelir). Bu problemde de bin paketlemeden birçok teknik kullanılmaktadır. [43]

İçinde giyotin kesim Sorunda, hem öğeler hem de "kutular" tek boyutlu sayılardan ziyade iki boyutlu dikdörtgenlerdir ve öğelerin uçtan uca kesimler kullanılarak kutudan kesilmesi gerekir.


8 Cevap 8

Bu bir Bin Paketleme problemidir ve NP-zordur. Az sayıda nesne ve paket için, her olasılığı denemek için kaba kuvvet yöntemini kullanabilirsiniz. Bunun ötesinde, bir tür buluşsal yöntem kullanmanız gerekecek. Wikipedia makalesi, muhtemelen kontrol etmek isteyeceğiniz makalelere referanslarla birlikte bazı ayrıntılara sahiptir.

Alternatif, elbette, gerçekten basit bir algoritma ile başlamaktır (örneğin, öğeleri 'istifleme' gibi) ve bunu kullanarak nakliye için makul bir üst sınır hesaplamaktır, o zaman insan paketleyicileriniz daha iyisini yapabilirse, küçük bir kar elde edersiniz. Ya da ambalajınızın ideal olmadığı varsayımıyla hesaplanan fiyatlarınızda biraz indirim yapın.

"3D Kutu paketleme" ile ilgili literatür çok geniştir. Profesör David Pisinger'in yayınlarını izleyerek iyi bir genel bakış elde edebilirsiniz. Ayrıca kaynak kodlu birkaç yüksek kaliteli kutu paketleme uygulamasından birini yayınladı: 3dbpp.c

Kendi lojistik araç takımım pyShipping, Depolama uygulamaları için bir 3D Bin Paketleme uygulamasıyla birlikte gelir. Temel olarak 4D Bin Paketleme (3D boyut ve ağırlık) uygular ve ikinci bir çalışma süresi altında tipik sipariş boyutları (birkaç düzine paket) için kabul edilebilir bir çözüm elde eder. Birkaç aydır üretimde (yani depoda) kullanılacak nakliye kasalarının üst sınırını belirlemek için kullanılıyor. Depo çalışanları genellikle daha verimli bir şekilde paketleme yapabilirler ama bu benim için sorun değil.

Pisinger, çalışma kodu yayınlayan az sayıda akademisyenden biridir. Makalelerinden birinde "Minimum Derinlik" probleminden bahsediyor.

İşte, kapalı kutunun yüksekliğini ayarlayan 3D Dikdörtgen Kutu Paketleme için pratik ve verimli bir algoritma.

Ve işte php'de bir uygulama.

Belirli bir boyuttaki pakete tek bir türden kaç tane sığdığını görmeye mi çalışıyorsunuz yoksa türleri de karıştırmaya mı çalışıyorsunuz?

Sırt Çantası Problemini çözmeye çalışıyor gibisiniz. Bunun için özel gereksinimlerinize uyarlanabilecek bazı algoritmalar bulabilirsiniz. Sadece bir tane bulmanın zor olacağını anlayın. verimli algoritma, sorun NP tamamlandı olduğundan (ancak özel gereksinimlerinize bağlı olarak verimli bir yaklaşım bulabilirsiniz veya girdileriniz önemli olmayacak kadar küçük olabilir).

Kutular elle paketlenecekse, ne yapacak bir algoritma yazmayı düşünebilirsiniz. makul insan yapardı. Bunu önermemin nedeni, her sipariş için paketleme talimatlarını yazdırmak istemediğiniz sürece, paketlemenizi kim yapıyorsa, sipariş edilen öğelerin kaç kutuya ayrılmış olursa olsun, sipariş edilen ürünleri nasıl sığdıracağını öğrenmek zorunda kalacak. sipariş.

Bu, daha sonra, insan paketleyicilerinizin SO'ya gelip n öğeyi m kutulara nasıl paketleyeceğinizi programlı olarak nasıl çalıştıracaklarını sormasına neden olabilir. :-P (Ayrıca sorabilirler sen yapmak, talimat istemek vb.)

Algoritmanız makul bir insanın yapacağı şeyi yaptığı sürece, nakliye tahminini şahsen kabul ederim.

Metasezgisel yöntemler, çok sayıda paket ve/veya çok sayıda kısıtlama olduğunda gerçek dünya çöp kutusu paketleme sorunlarıyla başa çıkmak için iyidir. Bir açık kaynak Java uygulaması, Drools Planner'dır.

Belki bu kulağa bariz gelebilir, ancak sorunu not etmek ve sonra bazılarını elle yapmak faydalı olabilir. NP-zor'da rastgele girişler ve kutular için en verimli çözümü bulmak, ancak sorunlu alanı kısıtlayarak ve bazı verimsizlikleri kabul ederek, bu NP boyutu makul bir şey olabilir ve not alarak, "genel durum" getirebilirsiniz. "zaman önemli ölçüde azaldı.

Olayları hiyerarşik paketleme açısından düşünmek de yardımcı olabilir.

Çok fazla arama yaptıktan sonra birine yardımcı olabilecek bir GitHub deposu buldum. Function PackingService.Pack(), parametre olarak paketlenecek Konteyner ve Öğe (ler) listesini alır ve aşağıdakiler de dahil olmak üzere birçok bilgiyi içeren sonucu döndürür.

"Yüzde olarak paketlenmiş konteyner(ler) ve paketlenmiş ve paketlenmemiş öğelerin listesi"


2 Cevap 2

Daha önce bir cevabım vardı ama biraz daha inceledim ve cevabım yanlış olduğu için kaldırdım. Bu bağlantı ilginizi çekebilir: Bir Karede Daire Paketleme (wikipedia)

KennyTM tarafından genel olarak bu soruna henüz optimal bir çözüm bulunmayabileceği öne sürülmüştür. Bunu daha fazla kazmak bana bunun muhtemelen doğru olduğunu gösterdi. Bu sayfaya göz atın: Çember Paketleme - En Bilinen Paketlemeler. Gördüğünüz gibi, sadece 30 daireye kadar çözümler bulundu ve optimal olduğu kanıtlandı. (Diğer daha yüksek sayıda dairenin optimal olduğu kanıtlanmıştır, ancak 31'in olmadığı kanıtlanmıştır)

Vikipedi sayfasında ve diğer bağlantıda tanımlanan sorun, burada sorulan sorudan yüzeysel olarak farklı olsa da, aynı temel sorunun sorulduğunu unutmayın; bu, "daireleri kare/dikdörtgen bir kapta paketlemenin en etkili yolu nedir?" .

. Ve cevap "gerçekten bilmiyoruz" gibi görünüyor :)

Daireleri dikdörtgen sayfalara yerleştirme

Optimal yuvalama ve pratik sınırlar: Optimal yuvalama çözümü ararken farklı yuvalama seçenekleri göz önüne alındığında, çözümün hızlı bir şekilde bulunması istenir. Bu şu soruyu akla getiriyor: Bir çözümün optimal olduğunu nasıl bilebilirim? Cevap her zaman açık değildir.

Bir dizi seçeneği hızlı ve otomatik olarak keşfedebilen ve sonuçları rapor edebilen otomatik bir yuvalama araması, yanıtın bir parçasıdır. Bir tam sayfadaki maksimum parça sayısını bulma veya belirli sayıda parça için gereken en küçük boyutlu levhayı bulma. Çevrelerin paketleme verimliliğinde ince nüanslara sahip olduğuna dikkat edilmelidir. Tipik vakaların bu beklenen paketleme verimlilikleri hakkında bir çalışma bilgisine sahip olmak bir avantaj olabilir. (Verimlilik grafiğine bakın)

Garip bir şekilde, bazı durumlarda daireler için en uygun paketleme, sezgisel olmayan düzensiz paketlemedir. Bu düzensiz tipteki paketleme yerleşimlerini başka yazılımlara aktarmak zordur. Bu nedenle, genellikle daha düzenli daire paketleme modellerinden en uygun olanı seçilerek bir takas yapılır.

Dikdörtgen bir sayfadan maksimum disk sayısını hesaplamak için belirlenmiş bir formül yoktur. Disk ambalajın verimliliği, malzemedeki disklerin düzenine bağlıdır. Dikdörtgen disk paketleme dizisi (sıfır aralıklı) %78,5'tir (kenar etkilerinin düşük verimliliğinden etkilenmez) Altıgen disk paketleme dizisi (sıfır aralıklı) %90,6'dır En kötü durumda disk paketlemedir (bir kare içinde 2 disk) %53.8

Yukarıdaki disk paketleme yazılımı, sekiz farklı paketleme yöntemini hesaplayıp karşılaştırır ve en verimli çözümleri vurgular. Her varyasyon farklı bir yuvalama düzeni kullanır. Her boyuttaki diski her boyuttaki yaprağa yerleştirmek için tek bir yöntemin optimum verimi sağlamayacağını unutmayın. Optimum yöntem, disk boyutlarına ve sac boyutlarına bağlı olarak değişir. Her diskin x,y konumlarının bu optimal düzenlemelerini profil oluşturma yazılımına aktarmanın zor olabileceğini unutmayın.

Yaprak başına optimal miktar aranırken yazılım tarafından incelenen farklı yerleştirme seçenekleri.

5 mm aralıklı 2400x1200 dikdörtgen bir tabakaya yerleştirilmiş disk çapına (mm) karşı yerleştirme verimliliği (%) grafiği. Mavi çizgi gerçek verimlilik ve diğer renkler teoriktir. 8 farklı daire paketleme yönteminin sonuçlarının maksimum değeri alınır. Grafiğin doğrusal olmayan yapısı, maksimum disk sayısı için basit bir formülün olası olmadığını gösterir. 100 mm çapından daha küçük disklerin düşük paketleme verimliliğine de dikkat edin, çünkü parçalar arası boşluk, alanın daha büyük bir yüzdesidir ve verimliliğin %78.5'te zirve yapmasıdır.

Tablolama sırasında paketleme sonucu, daire paketleme yöntemiyle birlikte not edildi. Otomatik olarak oluşturulan bu sonuçlara ek olarak, bu veri noktasının verimliliği grafikteki yakın noktalara kıyasla düşük görünüyorsa, disklerin manuel olarak yerleştirilmesi denendi ve daha iyi verimler tablo haline getirilip Düzensiz paketleme olarak not edildi. Bu sonuçları pratik anlamda kullanmak, başka bir disk (N+1) eklemek, grafikle mümkün olmayan bir verimlilik gerektiriyorsa, aramayı güvenle durdurmaya yardımcı olur. Dikdörtgenlerdeki diskler için maksimum paketleme verimliliği sürekli olarak araştırılmakta ve geliştirilmektedir. Düzensiz paketleme için mevcut en iyi disk yuvaları için çevrimiçi bağlantıya bakın: http://hydra.nat.uni-magdeburg.de/packing/csq/csq.html

McErlean, P. (2018) "CAD/CNC Programlama El Kitabı: Lazer, Plazma ve Oksi profil kesimi için 2D Malzeme Optimizasyonu ve İpuçları"


'IN' ve 'OUT' olmak üzere iki sütununuz var. 'IN' sütunu tamamen girdilerle dolu, ancak 'OUT' sütunu tamamen boş. Her masanın bir kuralı vardır. Kuralı takip ederek 'OUT' sütununu doldurun.

Not: 'Zor' adlı Giriş-Çıkış Çalışma Sayfaları, 'GİRİŞ' sütununda 3 eksik giriş ve 'ÇIKIŞ' sütununda 2 eksik giriş içerir.

Giriş ve Çıkış Kutuları: İlave

Giriş ve Çıkış Kutuları: Çıkarma

Giriş ve Çıkış Kutuları: Çarpma

Giriş ve Çıkış Kutuları: Bölme

Çarpma ve bölme

Karma İnceleme: Dört İşlemin Tümünü Dahil Edin


Başlangıç ​​değeri içerik kutusu
Şunlar için geçerlidir:genişlik veya yüksekliği kabul eden tüm öğeler
MirasHayır
hesaplanan değerbelirtildiği gibi
Animasyon türüayrık

İçerik kutusu ve kenarlık kutusu ile kutu boyutları

Bu örnek, farklı kutu boyutlandırma değerlerinin, aksi takdirde aynı olan iki öğenin işlenmiş boyutunu nasıl değiştirdiğini gösterir.


Pizza Neden Yuvarlaktır? Kutu Karedir ve Üçgenler Halinde Kesilmiştir

Pizza, dünya çapında farklı şekil ve boyutlarda gelir. Ama yuvarlak pizza hemen hemen her yerde en çok yenen pizzadır.

Pizzanın neden yuvarlak, kare bir kutusu var ama üçgenlere bölünmüş olduğuna dair bir şaka var. Bunu düşündüğünüzde biraz garip! Bu yüzden neden tüm bu farklı şekillere sahip olduğumuzu biraz araştırdım. Peki pizza neden yuvarlak?

Pizza aşağıdaki nedenlerle yuvarlaktır:

  • Pişirmeden önce pizza hamuru kabarması için bir top haline getirilir.
  • Bir topun şekillendirilmesi daha kolaydır ve eşit kalınlıkta bir tabana uzanır.
  • Bir hamur topu merkezden uzatılarak yuvarlak hale gelir.
  • Bazen hamur fırlatılıp döndürülerek gerilir – bu onu yuvarlak yapar.
  • Pasta gibi eşit parçalara kesmek daha kolaydır.
  • Şekli ikonik ve popüler – başka hiçbir yemek pizzaya benzemez.
  • Geleneksel Napoliten pizzanın belirli kuralları vardır ve dairesel olmalıdır.

Öyleyse neden kutu kare ve parçalar üçgenler halinde kesilmiş?

Yuvarlak Pizza Yapmak Neden Daha Kolay?

Pizza hamuru bir bütün olarak yoğrulur ve pizzalar için parçalara ayrılır. Bu hamur topları daha sonra gerilmeden ve fırınlanmadan önce yükselmeye bırakılır. Hamur topunun güzel ve düzgün olmasını istiyorsunuz, böylece onu uzattığınızda daha kalın parçalara sahip olmayacaksınız. Bunu yapmak için en kolay şekil? Tabii ki bir top. Büyük bir hamur parçasını 6 kare hamur parçasına bölmek daha zor olurdu! Ancak 6 top şeklinde hamur parçası hızlı, kolay ve tutarlı bir şekilde yapılabilir.

Yuvarlak top daha sonra uzatılabilir. Bunu bir dikdörtgene uzatabilirsin ama daha kolay yol onu dışarı doğru uzatmaktır.. Bir hamur topunu gerdiğinizde ortasından uzatırsınız, bu yüzden doğal olarak yuvarlak bir şekil oluşturur.

Bazı insanlar pizza hamurunu atarak daha da uzatır. Pizza hamuru havada fırlatılıp döndürüldüğünde, onu dışarı doğru çeken merkezkaç kuvveti alır. Bu, bir şey dönerken merkezden uzaklaşarak alınan kuvvettir ve pizzayı döndürdükçe daha büyük, daha ince ve daha yuvarlak hale gelmesinin nedeni budur.

Yuvarlak şekilli yiyecekler oldukça yaygındır, düşünün kekler, turtalar ve tartlar. Yuvarlak bir şey yaparsanız, porsiyonlara ayırmak kolaydır. Ve porsiyonlar eşit çünkü dış kabuktan tüm sosların olduğu merkeze kadar her şeyden biraz alıyorsunuz.

Pizzanın görünümü anında fark edilir ve her zaman ağzınızı sulandırır. Yuvarlak şekli, kabuğu ve sosları ile – pizza ile ilgili emojiler bile var. Genellikle bir şey ikonikse, o zaman yapışır, çünkü pizzanın sunumu iştah açıcı ve popüler.

Bütün bunlar pizzanın geleneklere göre yuvarlaklaşmasına neden oldu ve geleneği kırmak zor. Pizza İtalya'da Napoli'de yaratıldı ve Napoli pizzasının artık gerçek bir Napoliten pizzası olarak adlandırılabilmesi için uyması gereken belirli kuralları var. Bu kurallardan biri yuvarlak olması gerektiğidir. – bu yüzden şekil zorlandı bile bu kadar önemli. Diğer kurallar, San Marzano domatesleri ve buffalo mozzarella peyniri gibi yalnızca İtalya'nın Campania bölgesinden ürünlerin kullanılmasını içerir.

Kare Pizza Var

Kare veya dikdörtgen pizza da yapılabilir, ancak yuvarlak kardeşi kadar popüler değildir. ‘Sicilya stili’ en çok kare şeklinde gelen pizzayı tanımlamak için kullanılır.

Bir tepside pişirilir, bu şekilde şekli verir ’ hamuru önceden esnetmeyin, sadece tepsiye itin ve pişirin. Bu size, tepsideki iyi bir yağ kaplamasında esasen kızaran ve çok gevrek hale gelen bir inç veya daha kalın pizza tabanı verir.

Tepside hamur gerdirme ve fırınlama gerektirmeden yapımı kolay olduğu için yapmak ve kalabalığa sunmak için iyi bir pizzadır. Paylaşmak için kareler halinde kolayca dilimlenir. Tepside yapıldığı için esnetme, savurma veya yuvarlak pizzayı etkileyen diğer etkenlerden herhangi birine ihtiyaç duymaz.

Pizza Neden Yuvarlak Ama Kutu Kare?

Yuvarlak bir pizzaya eşlik edecek yuvarlak bir kutu asla göremezsiniz! You might have never thought about this until now, but here is some reasons why:

  • Square boxes are much easier to make, needing only one piece of cardboard. Round boxes need a few pieces.
  • One piece of cardboard can be unfolded flat and so boxes take up less space when being stored.
  • Shipping is easier and cheaper from flat packing, stacking, less movement.
  • Square boxes are stacked in freezers and shelves easily, and flat edges stop the box falling.
  • A circular box takes up the same width and length so no space saving improvement.
  • Cheaper to make square boxes as they are common and so don’t need bespoke production.
  • We use square boxes for everything i.e. a shoe box, a cereal box.

Square boxes are easier and cheaper to make and logistically better than round boxes.

A circular box can’t easily be made out of one sheet of cardboard as the round edges cause problems. So this means it needs multiple pieces of cardboard, joining pieces, or more advanced production. So all in all, it just means more production cost.

Square boxes are made up of one piece of cardboard, and this is flattened when it is not in use – i.e. being transported or stored. An unfolded box takes up less space when it’s stacked so it’s cheaper to store and ship. You can’t get this benefit from a round box if its made of multiple pieces.

Square boxes have equal edges and so fit neatly, and stack easily. Circular boxes don’t fit together so well so can move around more in transit for example. Circular boxes still have the same length and width, so they take up the same space. This means they have more problems, but don’t actually have any space saving improvements.

In the grocery stores, pizzas are stacked on shelves and in the freezer. Being square helps them fit into these spaces more efficiently, and neatly. And they can stand up on the shelf without falling over.

Square or rectangular boxes are common for everything if you think about it, and we rarely have a box to fit the shape of the contents. We put shoes in a box, and cereal in a box. Right angles simply make shipping and storage easier. So box manufacturers are set up to make straight edge boxes as a ‘one size fits all’. If you want anything bespoke, that always costs more.

So that explains why pizza boxes are not circular.

But Why Not Square Pizza For A Square Box Then?

As we’ve mentioned, it is simply easier to make a pizza round from its dough ball to its stretching technique. So this has become well known and traditional. There is the argument that square pizza would be harder to get out of a square box, so a round pizza is actually easier to eat.

Why Is Pizza Cut Into Triangles?

Pizza is cut into triangle slices because that is the most common way to equally divide a circle – think of a pie chart.

You can also fold slices. This is particularly common in New York where pizza is sold by the slice and is often for take out food. It can be folded up and eaten on the go.

By slicing it from the crust to the center to make a triangle, every slice gets an equal portion of toppings and crust. It would be a bit unfair to give someone only the crusts!

Why Do They Cut Pizza in Squares In Some Places?

Not all pizzas are cut into triangles. Some pizza is cut into squares, a good example of this is the Chicago thin crust pizza which is popular in Midwestern United States. The pizza usually has toppings pushed right to the edge and so there is little or no crust. A portion will therefore have toppings on the whole square.

This cut can sometimes be referred to as ‘party-style’. This is because it is easier to cut and serve a large pizza in squares than slices – the slices become too long to manage from crust to center.

It is a good way of sharing in the same way you might cut up a large birthday cake into squares. As there is no crusts, everyone gets a similar portion. There is also less waste from people who throw away their crusts.

Özet

So there you have it, you now know the answer to pizza’s biggest questions. Pizza is easier to make round rather than any other shape. And pizza boxes are easier and cheaper to make square than circular. It’s cut into triangles as that is the natural way to divide a circle. That is why we get a mismatch of all these different shapes.


How to Install Wiring into an Outlet Box

Application: Electrical Wiring for Receptacle Outlets.
Skill Level: Intermediate to Advanced – Best performed by a Licensed Electrician.
Tools Required: Electricians Pouch of Hand Tools for Rough-In Wiring, Electric Drill and Auger Bits and Extension Cord.
Estimated Time: Depends on the extent of the bathroom remodel project, the type of construction and available access to the project area.
Precaution: Any existing wiring in the immediate area that may interfere with the installation of new construction materials should be identified, turned OFF and Tagged.
Notice: Modifying existing wiring or installing additional bathroom electrical wiring should be done according to local and national electrical codes with a permit and be inspected.

Box Fill Calculation for Electrical Outlet Box

Example: Guide for Installing Electrical Wires into an Outlet Box.

  • According to NEC 314.16(B) there is no allowance for small fittings, and because these clamps are an internal part of the box then they are included into the calculation as provided by the box manufacturer.
  • If the box states the allowed number of conductors per wire gauge, then the box is already taking into account the built in clamps.
  • With this 17 cubic inch box and the information that is supplied with the box you should have enough space for your wires and a receptacle for each box.

More about Junction Box Electrical Wiring

  • One of the mistakes often made is over loading an wire electrical box with too many wires.
  • This will cause switches and outlets to not fit correctly and could even cause wires to become damaged.
  • This information will help you plan your electrical box size properly.

Electrical Junction Boxes for Home Wiring

Electrical Wire for the Home

Complete listing of electrical wire types and parts used for home projects with electrical code information serves as selection guidelines.


Let $l=sqrt$ be the diagonal of the internal rectangle and $phi=sin^<-1>frac=sin^<-1>frac$ the angle between the diagonal and a side. Let $alpha$ be the angle between $a$ and $c$. Then the necessary and sufficient conditions for the internal rectangle to be inside the external one are $egin a & ge lsin(alpha+phi) b & ge lcos(alpha-phi) end$ Assume that $a<l$ and $b<l$ - otherwise the corresponding condition disappears and the problem is thus simplified. The system of inequalities has a solution in $alpha$ when $ sin^<-1>frac - phi ge cos^<-1>frac + phi $ which is the condition you are looking for.

Let $2ageq2b$ and $2cgeq2d$ be the sidelengths of the two rectangles, and put $f:=sqrt$.

When $R_subset R_$ can be realized then it can be done with common center $M$.

A necessary condition for such an inclusion is $dleq b$, because otherwise $R_$ contains a disk of radius $d>b$, which cannot be covered by $R_$. If $cleq a$ as well then $R_$ can be embedded in $R_$ with aligned sides.

Therefore it remains to consider the case $c>ageq bgeq d$ which is shown in the following figure.

The short sides of $R_subset R_$ are tangent to the circle (shown in blue) with radius $c>a$ and center $M$. This circle intersects $R_$ in four arcs cutting off the vertices of $R_$. It follows that the two shorter sides of $R_$ lie in two opposite corner regions of $R_$. Consider such a side. Its endpoints lie on a similar arc of a circle with radius $f$ and center $M$. Therefore the length $2d$ of this side is at most equal to the distance $|PQ|$ in the figure. This means that we have $(2d)^2leq left(b-sqrt ight)^2+left(a-sqrt ight)^2 .$ Expressing $f$ in terms of $c$ and $d$, and simplifying, you obtain the condition you were looking for.


Videoyu izle: Seç Birini, Mega Kutu 3 - Brawl Stars (Aralık 2021).