---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.kz/routing/doc/en/vrp/additional-planning.md
  - https://yandex.kz/routing/doc/kk/vrp/additional-planning.md
  - https://yandex.kz/routing/doc/ru/vrp/additional-planning.md
  - https://yandex.kz/routing/doc/tr/vrp/additional-planning.md
  - href: tr/vrp/additional-planning.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
title: RouteQ – olası lojistik senaryolar – periyodik ek planlama
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.kz/routing/doc/tr/llms.txt


# Periyodik ek planlama

Ek planlama, önceden planlanmış bir rotaya siparişlerin eklenmesidir. Ek planlama görevi aşağıdaki durumlarda ortaya çıkar:
- siparişlerin bir kısmı halihazırda rotalara tahsis edilmiştir, ancak yeni siparişler ortaya çıkmıştır;
- kurye, bekleme süresini en aza indirmek için siparişlerin bir kısmını bırakır ve yeni siparişler rotaya daha sonra eklenir.

{% note info "Not" %}

Bu senaryo yalnızca API istekleri aracılığıyla uygulanır. 

{% endnote %}

Yeni planlama görevine aktarılır:
- genel sipariş listesi (eski ve yeni siparişler);
- bu rotanın değiştirilip değiştirilemeyeceğini belirleyen bir önceki planlama ve ayarlama aşamasında elde edilen rota;
- kuryenin mevcut konumu (gerekirse).

Ek planlama görevi zaman içinde farklı noktalarda ve farklı koşullar altında ortaya çıkabilir:

- **Seçenek 1**: Kurye depodadır, halihazırda dağıtılan siparişlerin sırası sabittir, yeni siparişler rotanın sonuna eklenir:

    ![](_images/depot-fix.svg)

- **Seçenek 2**: Kurye depodadır, halihazırda dağıtılmış siparişlerin sırası sabit değildir, yeni siparişler herhangi bir sırada eklenir:

    ![](_images/depot-no-fix.svg)

- **Seçenek 3**: Kurye yolda, halihazırda dağıtılan siparişlerin sırası sabittir, yeni siparişler rotanın sonuna eklenir:

    ![](_images/route-fix.svg)

- **Seçenek 4**: Kurye yolda, siparişlerin bir kısmı zaten yerine getirildi, kalan siparişlerin sırası sabit değil, yeni siparişler herhangi bir sırada rotanın geri kalanına eklenir:
    ![](_images/route-no-fix.svg)

![](_images/new.svg) – yeni sipariş.

![](_images/fix.svg) – sabit bir sırada sipariş.

![](_images/no-fix.svg) – sabit sırası olmayan sipariş.

Tüm seçeneklerde, rotanın ortasında ek bir depoya uğramak mümkündür.

Ek planlama kullanılıyorsa, ilk sipariş tahsisinde aşağıdakiler düşünülmelidir:
- yeni siparişler için araçta boş alan bulunması (daha küçük kapasite belirtilmeli);
- boş zaman mevcudiyeti (azaltılmış kurye vardiya süresi belirtilmeli);
- yeni siparişlerin kuryeler arasında eşit dağılımı (dengeleme seçenekleri).

{% note alert "Uyarı" %}

İlk planlamada araçların yapay olarak az yüklenmesi için getirilen tüm ek kısıtlamalar ek planlamada kaldırılmalıdır.

{% endnote %}

Siparişlerin herhangi bir seçili araçlara eklenmesini önlemek için etiket işlevini kullanabilirsiniz. Ayrıntılar için [Araç etiketleri](https://yandex.kz/routing/doc/tr/vrp/properties-of-vehicles.md#tags) bölümüne bakın.

**Senaryo nasıl gerçekleştirilir**

Ek planlama sorgusunda nesne `locations` ile daha önce planlanmış olanlar ve ek planlanması gerekenler olmak üzere genel bir sipariş listesinin iletilmesi gerekir.

Aynı şekilde sorguya, başlangıçta planlanan seferlerle ilgili verileri içeren bir nesne `initial_routes` de eklenmelidir. Bu veriler, ilk planlama görevi kapsamındaki API yanıtında yer alan `result.routes` nesnesinden kopyalanabilir. Her sefer için nesnelerin aktarılması gerekir:

- `route` – seferde durakların dizisi,
- `run_number` – sefer numarası,
- `shift` – kurye deği̇şi̇kli̇ği̇,
- `vehicle_id` – kurye tanımlayıcısı.

## Siparişlerin sırasını sabitleme {#fixed-order}

Önceden planlanmış bir uçuşu değiştirmeden tutmak istiyorsanız, `initial_routes` nesnesinde `immutable` = `true` özniteliğini belirtin. Bir seferdeki durakların sırasını değiştiremiyorsanız, `fixed_order` = `true` olarak belirtin.

Seferin tamamını değil de bir kısmını (ardışık duraklar dizisi) değiştirmek istemiyorsanız, bu durakların her biri için `node.value.fixed_position` = `true` belirleyin.

Siparişin başlangıçta planlanan kurye tarafından teslim edilmesi için, sipariş için `fixed_vehicle` = `true`; siparişin aynı vardiyada bırakılması için, `fixed_shift` = `true`; aynı seferde bırakılması için `fixed_run` = `true` belirtin. Yukarıdaki özelliklerden hiçbiri belirtilmemişse, yeni siparişler eski siparişlerle rastgele sırayla karıştırılabilir.

## Kuryenin mevcut konumu {#actual-time}

Kurye yoldaysa, ek planlama sırasında mevcut konumunu dikkate almak önemlidir. Kuryenin mevcut konumu `type` = `courier` türünde ayrı bir noktada `node` ayarlanır – `value.location_id` alanında ya kurye tarafından ziyaret edilen son siparişin tanımlayıcısını ya da kuryenin koordinatlarını içeren noktanın tanımlayıcısını belirtmelisiniz. Kuryenin bu noktada kalma süresi `actual_departure_time_s` alanında belirtilir. Ek planlama sırasında bazı siparişler zaten teslim edilmişse, ziyaret süreleri aşağıdaki alanlarda belirtilir:

- `actual_arrival_time_s` – siparişe varış süresi;
- `actual_service_start_time_s` – siparişe hizmet vermeye başlama zamanı;
- `actual_departure_time_s` – siparişten ayrılma zamanı.

`arrival_time_s` ve `departure_time_s` alanları da kullanılabilir. Bu alanlar ya seferdeki tüm noktalar için belirtilmeli ya da hiçbiri belirtilmemelidir. Varış ve ayrılış saatleri tüm siparişler için benzersiz olmalıdır. Bu nedenle ek planlama sırasında çoklu sipariş kullanmamak daha iyidir. Kuryenin vardiyası ilk siparişinin ziyaret saatinden daha geç başlarsa, ek programlama sırasında bir hata meydana gelecektir.

## Yüklenen siparişler {#loaded-orders}

Depodan ayrılmadan önce araca yüklenen siparişlerin tanımlayıcıları `node` noktası için `loaded_orders` alanında `depot` tipi ile listelenmelidir. Yeni sipariş listede `loaded_orders` yoksa, kuryenin bu siparişi yüklemek için depoya ek bir yolculuk yapması planlanacaktır. `loaded_orders` ayarlanmazsa, tüm siparişlerin depoda yüklendiği varsayılır.

Bir sipariş ilk planlandığında bir araca yüklenebilir, ancak ek planlamada tahsis edilmemiş olabilir. Bununla birlikte sipariş araçta yer kaplayacaktır. Algoritmanın bunu dikkate almasını sağlamak için, sipariş için `keep_in_vehicle` = `true` özniteliğini belirtin.

{% note info "Not" %}

Ek planlamaya sahip siparişlerin sayısı, verilen zaman aralıklarında mevcut kuryelerin teslimat kapasitesini aşarsa, bazı siparişler tahsis edilmemiş olarak kalabilir. Siparişin mutlaka teslim edilmesi gerekiyorsa, sipariş için `undroppable` = `true` belirtin.

{% endnote %}

## Örnek {#examples}

İlk planlamada kurye depodan 10 siparişi teslim alır ve teslim eder.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/4d32bff-4316cc0f-5dc1f43-f3e570bf) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/4d32bff-4316cc0f-5dc1f43-f3e570bf) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#4d32bff-4316cc0f-5dc1f43-f3e570bf)

Ek planlamaya 4 sipariş daha eklendi. Ek planlama yapıldığında, kurye ilk iki siparişi çoktan teslim etmişti. Bunu belirtmek için, `initial_routes` nesnesi depo ve ilk iki sipariş için `fixed_position` = `true` belirtir. Yeni çözümde geri kalan siparişlerin teslimat sırası değişti.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/c6fe05ce-ff4bee11-d76c1a9e-5ac6f9d2) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/c6fe05ce-ff4bee11-d76c1a9e-5ac6f9d2) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#c6fe05ce-ff4bee11-d76c1a9e-5ac6f9d2)

<!-- source: tr/vrp/_includes/feedback.md -->
<a href="feedback">
  <span class="button">Destek birimine yaz</span>
</a>


<!-- endsource: tr/vrp/_includes/feedback.md -->
