① จำนวนช่อง = floor(ชั้นกว้าง ÷ กล่องกว้างเฉลี่ย)
ปัดลงเสมอ — ไม่สร้างช่องที่กล่องวางไม่พอดี
เช่น ชั้น 250 cm ÷ กล่อง 45 cm = 5.5 → 5 ช่อง
② ความกว้างช่อง ∝ qty ณ พิกัดนั้น
แต่ละไซได้ช่องสัดส่วนตาม qty — ปัดลง (floor) แล้วแจก leftover ให้ไซที่ fraction สูงสุด
raw = qty_ไซ ÷ qty_รวม × จำนวนช่อง → floor → fraction
③ วางซ้อน: qty น้อย → ล่าง, qty มาก → บน
ของน้อย = หมดเร็ว = ต้องหยิบบ่อย → วางต่ำไว้เข้าถึงง่าย
ของมาก = ซ้อนสูงขึ้นได้ ไม่จำเป็นต้องหยิบบ่อย
④ Proximity Rule — ช่องกลาง "เขตเปลี่ยนผ่าน"
ถ้าไซ A ได้ extra col เพราะ fraction เฉือนกัน (fraction < 0.55)
และไซข้างเคียง B ก็มี fraction ใกล้เคียง (fraction > 0.22)
→ แทนที่ A จะครอง 2 ช่องคนเดียว ให้ช่องกลางเป็น A+B วางร่วมกันได้
📐 ตัวอย่าง: พิกัด SMALL (ชั้น 250 cm, กล่อง 45 cm → 5 ช่อง)
| ไซ |
qty |
raw (÷51×5) |
floor |
fraction |
ช่องสุดท้าย |
| 36 | 1 | 0.098 | 0 | 0.098 | 0 → ซ้อนกับ 39 |
| 37 | 1 | 0.098 | 0 | 0.098 | 0 → ซ้อนกับ 39 |
| 38 | 3 | 0.294 | 0 | 0.294 | 0 → ซ้อนกับ 39 |
| 39 | 5 | 0.490 | 0 | 0.490 🥇 | 1 (+leftover) |
| 40 | 13 | 1.275 | 1 | 0.275 | 1 |
| 41 | 15 | 1.471 | 1 | 0.471 🥈 | 2 (+leftover) |
| 42 | 13 | 1.275 | 1 | 0.275 | 1 |
📊 ภาพที่ได้ (มองจากด้านหน้าชั้นวาง)
39
38
37
36
ช่อง 0
36-39 stack
40
40
40
40
ช่อง 1
40 เฉพาะ
41
41
40
40
ช่อง 2
🔀 shared
41
41
41
41
ช่อง 3
41 เฉพาะ
42
42
42
42
ช่อง 4
42 เฉพาะ
ช่อง 2 (shared): 40 และ 41 วางร่วมกันได้ — เป็น "เขตกันชน" ระหว่างไซที่มี fraction ใกล้กัน (0.275 vs 0.471)
ล่างสุด = ไซที่ qty น้อยกว่า (40=13) · บนกว่า = ไซที่ qty มากกว่า (41=15)