Ek planlama (eski sürüm)
Excel şablonlarıyla çalışırken veya ek planlama ilkesini öğrenmek için kullanılır. Bu yöntem desteklenmektedir ancak artık geliştirilmemektedir. Ek planlama görevlerini otomatikleştirmek için periyodik ek planlama kullanmanızı öneririz (API üzerinden çalışırken).
Siparişlerin sırasını sabitleme
Sıralamanın korunması gerekiyorsa, vehicles.visited_locations
alanını kullanın. Yeni siparişler herhangi bir sırada eski siparişlerle karıştırılabiliyorsa, vehicles.planned_route
alanını kullanın. Listelerde yalnızca siparişleri değil, aynı zamanda kurye tarafından rota üzerinde ziyaret edilecek ek yükleme için depolar da gösterilebilir.
Kuryenin mevcut konumu
Kurye depoda ise, bir sorgu oluşturmak için bilinmesi gerekenler:
-
her araç için halihazırda tahsis edilmiş siparişler;
-
son planlamadan bu yana alınan yeni siparişler.
Her araç için yeni ek planlama talebinde, planned_route
(visited_locations
) alanına önceden tahsis edilmiş siparişlerin (önceki planlama aşamasından) tanımlayıcılarını (locations
veya id
) girin.
Kurye yoldaysa, bir sorgu oluşturmak için bilmeniz gerekir:
-
her araç için halihazırda tahsis edilmiş siparişler;
-
her bir aracın ek planlama sırasındaki konumu (bu aynı zamanda son teslim edilen sipariş veya sıradaki olabilir);
-
halihazırda tamamlanmış siparişlerin bir listesi;
-
son planlamadan bu yana alınan yeni siparişler.
Ek planlama için yeni sorguda :
-
Her araç için yeni ek planlama talebinde,
planned_route
(visited_locations
) alanına önceden tahsis edilmiş, ancak ek planlama anında yerine getirilmemiş siparişlerin (önceki planlama aşamasından) tanımlayıcılarını (locations
veyaid
) girin. -
Sipariş listesinde, her araç için geçerli konum noktalarına karşılık gelen
hayali
siparişleri ekleyin. Mevcut konum noktası en son teslim edilen veya sıradaki siparişin konum noktası ise bu atlanabilir. -
Her araç için,
visited_locations
alanındaki ilk öğe olarak mevcut konum noktasının tanımlayıcısını ve başlangıç zamanını girin.Bir noktadan hareket zamanını ayarlamak için
planned_route.start_time
(veyavisited_locations.N.time
) parametresini kullanın.Saati belirtmek için olası biçimler:
- göreceli: [D.]HH[:MM[:SS]], burada D rotanın başlangıç tarihine göre tarih kaymasıdır;
- mutlak: ISO 8601 formatında (örneğin
2018-09-06T10:15:00+03:00
).
Örnek
Bu durumda, 1001 numaralı rota noktasından saat 10.20’de hareket planlanacaktır.
"visited_locations": [ { "id": "1001", "shift_id": "1", "time": "10:20" }, ... ]
Not
Daha önce kullanılmamış araçlar için doğru kalkış parametrelerini ayarlamanız gerekir: ya vardiya başlangıç zamanı kaydırılmalı ya da depodaki mevcut konum
visited_locations
’de belirtilmelidir. -
Tamamlanmış siparişleri sipariş listesinden silin (2. maddeyi dikkate alarak: son teslim edilen sipariş geçerli konum noktası olarak kullanılıyorsa, onu silmenize gerek yoktur).
Örnekler
Temel görev
Görevde 70 sipariş ve 9 kurye bulunmakta, dengeleme seçeneği balanced_groups
kullanılır.
Çözüm için 5 kurye elde ediyoruz.
Planlamanın sonucu:
Kurye |
Sipariş miktarı |
Sipariş sırası |
Kurye 3 |
15 |
27, 70, 53, 64, 65, 40, 60, 4, 43, 28, 29, 49, 33, 56, 48 |
Kurye 4 |
13 |
45, 31, 58, 52, 24, 54, 39, 47, 19, 30, 44, 16, 63 |
Kurye 5 |
10 |
14, 41, 8, 10, 1, 12, 13, 22, 9, 46 |
Kurye 6 |
15 |
11, 3, 23, 51, 42, 55, 36, 68, 66, 61, 25, 7, 67, 57, 62 |
Kurye 7 |
17 |
18, 37, 38, 17, 2, 59, 35, 34, 32, 26, 20, 69, 5, 50, 15, 21, 6 |
API isteği (JSON) ⋅ API yanıtı ⋅ Haritada aç
Daha sonra, temel probleme göre ek planlama yapmanın farklı yollarına bakalım.
Örnek 1
Depoda ek planlama ile rotalarda sipariş sıralamasında değişiklik.
Sorguda 110 sipariş (40 tanesi temel göreve göre yeni) ve 9 mevcut kurye belirledik. 5 kuryede, planned_route
’deki temel çözümden dağıtımı belirtiyoruz. Ayrıca dengeleme balanced_groups
seçeneğini de kullanıyoruz.
Çözüm için 7 kurye elde ediyoruz.
Planlamanın sonucu:
Kurye |
Sipariş miktarı |
Temel göreve göre sipariş sıralaması |
Kurye 1 |
14 |
Yeni rota |
Kurye 3 |
19 |
4 sipariş eklendi: 27, 70, 53, 64, 65, 40, 99, 60, 4, 43, 28, 95, 29, 49, 33, 56, 88, 48, 84 |
Kurye 4 |
16 |
3 sipariş eklendi: 45, 31, 58, 52, 87, 24, 54, 39, 100, 47, 19, 30, 44, 16, 102, 63 |
Kurye 5 |
13 |
3 sipariş eklendi, sıralama büyük ölçüde yeniden düzenlendi: 46, 80, 71, 12, 1, 10, 8, 41, 83, 14, 13, 22, 9 |
Kurye 6 |
17 |
2 sipariş eklendi: 11, 3, 23, 79, 51, 42, 55, 36, 68, 66, 61, 25, 7, 108, 67, 57, 62 |
Kurye 7 |
18 |
1 sipariş eklendi: 18, 37, 38, 17, 2, 59, 35, 34, 32, 26, 20, 69, 104, 5, 50, 15, 21, 6 |
Kurye 9 |
13 |
Yeni rota |
Not
Temel çözümde planlanan siparişler aynı kuryelere atanmış kaldı, ancak:
-
temel çözümden gelen kuryelere, diğer yol noktalarının yanı sıra yeni siparişler eklenmiştir;
-
temel çözümden gelen kuryelerin önceden planlanan sipariş sırasını değişmiştir;
-
iki yeni rota eklenmiştir.
API isteği (JSON) ⋅ API yanıtı ⋅ Haritada aç
Örnek 2
Rotalardaki siparişlerin sırasını değiştirmeden** depoda** ek planlama.
Sorguda 110 sipariş (40 tanesi temel göreve göre yeni) ve 9 mevcut kurye belirledik. 5 kuryede, visited_locations
’deki temel çözümden dağıtımı belirtiyoruz. Ayrıca dengeleme balanced_groups
seçeneğini de kullanıyoruz.
Çözüm için 7 kurye elde ediyoruz.
Planlamanın sonucu:
Kurye |
Sipariş miktarı |
Temel göreve göre sipariş sıralaması |
Kurye 3 |
19 |
4 sipariş eklendi: 27, 70, 53, 64, 65, 40, 60, 4, 43, 28, 29, 49, 33, 56, 48, 84, 88, 96, 85 |
Kurye 4 |
15 |
2 sipariş eklendi: 45, 31, 58, 52, 24, 54, 39, 47, 19, 30, 44, 16, 63, 102, 89 |
Kurye 5 |
14 |
4 sipariş eklendi: 14, 41, 8, 10, 1, 12, 13, 22, 9, 46, 80, 71, 79, 108 |
Kurye 6 |
15 |
Rota değişmedi: 11, 3, 23, 51, 42, 55, 36, 68, 66, 61, 25, 7, 67, 57, 62 |
Kurye 7 |
17 |
Rota değişmedi: 18, 37, 38, 17, 2, 59, 35, 34, 32, 26, 20, 69, 5, 50, 15, 21, 6 |
Kurye 8 |
14 |
Yeni rota |
Kurye 9 |
16 |
Yeni rota |
Not
Temel çözümde planlanan siparişler aynı kuryelere atanmış kaldı, ancak:
-
temel çözümden gelen kuryelerin rotasının sonuna yeni siparişler eklendi;
-
iki yeni rota eklenmiştir.
API isteği (JSON) ⋅ API yanıtı ⋅ Haritada aç
Örnek 3
Kuryeler depodan gittikten sonra ek planlama (rotalarda siparişlerin sırasını değiştirmeden).
Planlama anında, 15 siparişin teslim edildiğini var sayıyoruz (temel görevdeki 5 kuryenin her biri için 3 sipariş) ve bunları ek planlama görevinden çıkarıyoruz.
Bunun sonucunda sorguda toplam 100 sipariş (40 yeni sipariş, temel görevden 55 henüz teslim edilmemiş sipariş, 5 kurye başlangıç noktası dahil) ve 9 müsait kurye belirledik. 5 kuryede, visited_locations
’deki temel çözümden dağıtımı belirtiyoruz. Ayrıca dengeleme balanced_groups
seçeneğini de kullanıyoruz.
Çözümde 8 kuryemiz oluyor (depodan başlayan 3 yeni kurye dahil).
Planlamanın sonucu:
Kurye |
Sipariş miktarı* |
Temel göreve göre sipariş sıralaması |
Kurye 2 |
9 |
Yeni rota |
Kurye 3 |
13 |
Rota değişmedi: 27, 70, 53 (tamamlanan siparişler), 1003 (başlangıç noktası), 64, 65, 40, 60, 4, 43, 28, 29, 49, 33, 56, 48 |
Kurye 4 |
11 |
1 sipariş eklendi: 45, 31, 58 (tamamlanan siparişler), 1004 (başlangıç noktası), 52, 24, 54, 39, 47, 19, 30, 44, 16, 63, 101 |
Kurye 5 |
10 |
3 sipariş eklendi: 14, 41, 8 (tamamlanan siparişler), 1005 (başlangıç noktası), 10, 1, 12, 13, 22, 9, 46, 80, 71, 79 |
Kurye 6 |
13 |
1 sipariş eklendi: 11, 3, 23 (tamamlanan siparişler), 1006 (başlangıç noktası), 51, 42, 55, 36, 68, 66, 61, 25, 7, 67, 57, 62, 108 |
Kurye 7 |
14 |
Rota değişmedi: 18, 37, 38 (tamamlanan siparişler), 1007 (başlangıç noktası), 17, 2, 59, 35, 34, 32, 26, 20, 69, 5, 50, 15, 21, 6 |
Kurye 8 |
12 |
Yeni rota |
Kurye 9 |
13 |
Yeni rota |
* – tamamlanmışları ve başlangıç noktasını dikkate almadan.
Not
Bu çözümde, tüm kuryeler saat 11.00’de başlar ve yeni siparişler rotanın sonuna eklenir.
API isteği (JSON) ⋅ API yanıtı ⋅ Haritada aç