---
metadata:
  - name: generator
    content: Diplodoc Platform v5.64.0
alternate:
  - https://yandex.ru/routing/doc/en/vrp/supported-use-cases.md
  - https://yandex.ru/routing/doc/kk/vrp/supported-use-cases.md
  - https://yandex.ru/routing/doc/ru/vrp/supported-use-cases.md
  - https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md
  - href: https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/routing/doc/tr/llms.txt?revision=r21872121
    rel: describedby
title: RouteQ – olası lojistik senaryolar
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/routing/doc/tr/llms.txt?revision=r21872121


# Olası lojistik senaryolar

Tüm lojistik senaryoları için **depoları**, **siparişleri** ve **kuryeleri** belirttiğinizden emin olun. Veri seti, kuryelerin ve siparişlerin bileşimine bağlıdır. Bağımsız parçalara ayrılabiliyorlarsa (bir grup sipariş yalnızca belirli araçlar tarafından yerine getiriliyorsa ve karıştırma yapılmıyorsa), her biri kendi sipariş ve kurye karışımına sahip birkaç ayrı planlama çalışması yapmanızı öneririz. Örneğin, bu gibi durumlarda:

- Birkaç depo, her depo farklı bir dizi siparişi sevk ediliyor ve her depoya kendi nakliye araçları hizmet veriyor.

- Depodan sevkiyat ve gönderilerin depoya toplanması farklı araçlar grubu tarafından yapılıyor (ve bunlar farklı bağımsız siparişlerdir).

- Bir deponun, her biri farklı araçlar grubu tarafından hizmet verilen çeşitli coğrafi bölgeleri bulunur.

Aşağıda açıklanan lojistik senaryolar birbirleriyle birleştirilebilir. Verilen örneklerde iş görevlerinize benzer bir şey yoksa, RouteQ ekibinden müşteri temsilcinize veya teknik desteğe [routing-support@yandex-team.ru](<mailto:routing-support@yandex-team.ru>) başvurun.

## Bir depodan teslimat {#delivery-from-depot}

Bu, malların müşterilere teslimatını planlamanız veya belirli bir konum kümesini ziyaret etmek için bir rota oluşturmanız gerektiğinde varsayılan senaryodur. Sorguda sadece bir depo olduğunda ve siparişler için `location` alanında `delivery` tipi belirtildiğinde veya bu alan boş bırakıldığında kullanılır (bkz. [Sipariş türü](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#order-type)). Algoritma, belirtilen depodan tüm siparişleri teslim etmek için bir rota oluşturacaktır.

**Şema**

![](_images/uc-delivery-from-one-depot_full.svg)

**Örnek**

Bu çözümde 30 sipariş bulunmaktadır. Hepsi aynı depodan teslim edilmektedir. `type` Sipariş türü açıkça etiketlenmemiştir, bu nedenle varsayılan olarak `delivery` değerini alıyor.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/8cc4331d-e7e0c3bd-b23981ae-7581deb0) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/8cc4331d-e7e0c3bd-b23981ae-7581deb0) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#8cc4331d-e7e0c3bd-b23981ae-7581deb0)


## Gönderilerin depoya toplanması {#collection-to-depot}

Bu, gönderiler depoya teslim edilmek üzere müşterilerden toplandığında varsayılan senaryodur. Bu tür gönderi örneğin şunlar olabilir:

- evde yapılan tıbbi testler;

- kuru temizleme için kıyafetler;

- müşterilerden depoya iadeler.

İkinci durumda, bu senaryo genellikle [tek depodan teslimat](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#delivery-from-depot) ile birlikte kullanılır.

Depoya gönderilerin toplanması noktalarını belirlemek için sipariş türünü `type = pickup` belirtmelisiniz (bkz. [Sipariş türü](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#order-type)). Devamında aşağıdaki seçenekler olasıdır:

1. Tüm kuryeler gün sonunda depoya dönmelidir (bkz. [Gün sonunda depoya dönüş](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#return-to-depot)), bu nedenle `return_to_depot` = `true` seçeneği. Bu durumda, ek bir şey yapılandırmanıza gerek yoktur, kurye rotayı varsayılan olarak depoda tamamlar.

1. Gönderi kuryenin aracında kalmalı ve sabah kurye bir sonraki vardiya için geldiğinde depoya geri dönmelidir. Bunu yapmak için `return_to_depot` = `false` olarak ayarlanmalıdır. Rota son noktada `pickup` sona erecektir. Ayrıca, hiçbir şeyin ek olarak yapılandırılması gerekmez.

1. Tüm kuryeler gün sonunda depoya dönmez, algoritma hangilerinin dönmesi gerektiğini seçecektir. Kurye için `return_to_depot` = `false` alanı kullanılır ve gel-al siparişleri için [mevcut rotadaki depoya zorunlu teslimat](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#pickup-must-reach-depot) `pickup_must_reach_depot` = `true` belirtiliyor veya `delivery_deadline` – [siparişin depoya teslim zamanı](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#order-time-depot-delivery) yapılandırılıyor.

    Eğer [sipariş bir depoya bağlıysa](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#linking-order-depot), yani `depot_id` alanında bir veya daha fazla depo tanımlayıcısı belirtilmişse, gel-al siparişi `pickup_must_reach_depot` alanının değerine bakılmaksızın mevcut rotada bu depolardan birine teslim edilecektir.


**Şemalar**

- Gönderinin depoya teslim edilmesi.

    ![](_images/uc-pickup-to-depot_full.svg)

- Gönderinin birkaç depodan birine teslim edilmesi.

    ![](_images/uc-pickup-to-any-depot.svg)

**Örnek 1**

Gönderilerin depoya toplanması, tüm araçlar gün sonunda (`return_to_depot` = `true`) deposuna geri dönmelidir. 30 sipariş, 1 depo, depo başına 5 toplama noktası.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/cb4b7d73-b12770ff-e3bc99c-136edbe6) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/cb4b7d73-b12770ff-e3bc99c-136edbe6) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#cb4b7d73-b12770ff-e3bc99c-136edbe6)

**Örnek 2**

Örnek 1’deki ile aynı. Araçlardan biri için `return_to_depot` = `false` belirtilmiştir, yani gönderi kuryenin aracında kalacak ve sabah depoya geri dönecektir.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/601a259d-3f0d9ef5-28ee1683-75169035) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/601a259d-3f0d9ef5-28ee1683-75169035) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#601a259d-3f0d9ef5-28ee1683-75169035)

**Örnek 3**

Örnek 1’deki ile aynıdır, ancak farklı toplama noktaları seçilmiştir. Tüm araçlar için `return_to_depot` = `false` uygulanıyor ve toplama noktaları için `delivery_deadline` belirtilmiştir. Sadece `pickup` tipindeki tüm siparişleri içeren araç gün sonunda depoya geri dönecektir.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/ee4390b1-a694dbd6-e20a6e02-77a2b73d) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/ee4390b1-a694dbd6-e20a6e02-77a2b73d) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#ee4390b1-a694dbd6-e20a6e02-77a2b73d)


## Rotayı rastgele bir noktada başlatma veya bitirme  {#route-start-or-end-at-arbitrary-point}

**Hangi durumlarda kullanılmalı**

Varsayılan değer, bir kuryenin rotası depoda başlar ve depoda biter. Ancak, rotayı araç park yerinden, kuryenin evinden başlatmanın veya tam tersi bu noktalara daha yakın bir yerde tamamlamanın gerekli olduğu durumlar vardır.

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

[start_at](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#vehicle-start-at) ve [visit_depot_at_start](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#visit-depot-at-start) parametreleri başlangıç noktalarının tanımlanmasından, [finish_at](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#vehicle-finish-at) ve [return_to_depot](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#return-to-depot) parametreleri ise bitiş noktalarının tanımlanmasından sorumludur.

{% note tip "Not" %}

Bu parametrelerin tüm kombinasyonları çözümde bir depo kullanmaz (örneğin, tüm kuryeler evden başlayıp doğrudan siparişlere gidiyorsa), ancak veri şemasında doldurulması zorunludur. Bu durumda, depo olarak ofis koordinatlarını veya şehir merkezi koordinatlarını belirleyebilirsiniz.

{% endnote %}

Başlangıç ve bitiş noktaları için parametreler birbirinden bağımsızdır, bu nedenle burada herhangi bir kombinasyon özelleştirilebilir:

- Başlangıç ve bitiş noktaları her kurye için ayrı ayrı ayarlanır.

- Birden fazla kurye için aynı noktayı belirlenebilir.

- Başlangıç ve bitiş için aynı noktalar belirlenebilir.

Bir rota için belirli bir başlangıç veya bitiş noktası belirtmek için `garage` sipariş tipini kullanın. Eğer `vehicle.visit_depot_at_start` = `false` ve `vehicle.start_at` parametresinin değeri tanımsız ise, algoritma kuryenin depoya uğramadan ilk siparişten rotaya başlayabileceğini kabul eder.

{% note alert "Uyarı" %}

`start_at` tanımsız ve `visit_depot_at_start` = `false` olduğunda parametrelerin kombinasyonu, rotanın `pickup` veya `pickup & delivery` bağlantısı türünde siparişleri varsa kullanılabilir. Depodan teslim edilen siparişler önce programlanmaz ve ancak kurye depoyu ziyaret ettikten sonra rotada görünür.

{% endnote %}

**Başlangıç noktaları için şemalar**

- Depoya girmeden sipariş noktasından rotanın başlangıcı (`start_at` tanımlanmamış, `visit_depot_at_start` = `false`). Kurye için siparişin başlangıç noktası algoritma tarafından seçilir.

    ![](_images/uc-start-undefined-wo-depot_full.svg)

- Depodan rotanın başlangıcı (`start_at` tanımlanmamış, `visit_depot_at_start` = `true`). Algoritmanın varsayılan davranışı.

    ![](_images/uc-start-depot_full.svg)

- Depoya girmeden tanımlı bir noktadan rota başlangıcı (`start_at` tanımlı, `visit_depot_at_start` = `false`). Başlangıç noktası farklı kuryeler için farklı olabilir.

    ![](_images/uc-start-location-wo-depot_full.svg)

- Rotanın tanımlanmış bir noktadan depoya girerek başlatılması (`start_at` tanımlı, `visit_depot_at_start` = `true`). Başlangıç noktası farklı kuryeler için farklı olabilir.

    ![](_images/uc-start-location-w-depot_full.svg)

**Bitiş noktaları için şemalar**

- Rotanın depoya dönmeden son noktada sonlandırılması (`finish_at` tanımlanmamış, `return_to_depot` = `false`).

    ![](_images/uc-finish-undefined-wo-depot_full.svg)

- Rotanın sonunda depoya dönüş (`finish_at` tanımlanmamış, `return_to_depot` = `true`).

    ![](_images/uc-finish-depot_full.svg)

- Rotanın depoya dönmeden belirli bir noktada sonlandırılması (`finish_at` tanımlı, `return_to_depot` = `false`). Bitiş noktası farklı kuryeler için farklı olabilir.

    ![](_images/uc-finish-location-wo-depot_full.svg)

- Önceden bir depoya giderek, rotanın belirli bir noktada son bulması (`finish_at` tanımlı, `return_to_depot` = `true`). Bitiş noktası farklı kuryeler için farklı olabilir.

    ![](_images/uc-finish-location-w-depot_full.svg)


## Pickup & delivery: gönderinin rastgele noktalardan teslim alınması ve teslim edilmesi  {#pickup-and-delivery}

**Hangi durumlarda kullanılmalı**

Senaryo, ara depolar veya aktarma noktaları olmadan kapıdan kapıya teslimatı planlamak için kullanılır. Örneğin:

- malların tedarikçinin deposundan alınması ve müşteriye götürülmesi gerekir (malların farklı tedarikçilerin birkaç deposundan alınması ve bir müşteriye götürülmesi gereken çoklu senaryolar `pickup` dahil);

- malların iadesi (müşteriden teslim alınmalı ve ana depo yerine iade deposuna götürülmelidir).


Senaryo, noktalar arasında basit bağımlılıkların olduğu bir durumda da kullanılabilir. Örneğin, bir müşterinin evine gitmeden önce aletleri, belgeleri veya anahtarları almak için uğramanız gerekir.

Bu senaryo [bir depodan toplama](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#delivery-from-depot) ve [tek bir depodan sevkiyat](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#delivery-from-depot) senaryoları ile birlikte kullanılabilir.

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

[Pickup & delivery](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#pickup-and-delivery) senaryosunun kullanımının ayırt edici bir özelliği, biri her zaman diğerinden önce ziyaret edilen bağlantılı bir nokta çiftinin kullanılmasıdır: önce `pickup`, sonra `delivery`. Bağlama, `delivery_to` noktası için doldurulan ve bağlanan `pickup`’ın kimliğini belirten `delivery` alanı tarafından yapılır.

Birden fazla farklı nokta için `pickup` içeren bir senaryoda, birkaç farklı nokta `pickup` için `delivery_to` alanında aynı değeri belirtmek mümkündür. Birden fazla `pickup` ve bir `delivery`’den oluşan bir grup her zaman tek bir kurye tarafından yürütülmek üzere planlanacaktır.

Bir noktadan `pickup` farklı noktalara `delivery` teslimat yapılması gerekiyorsa, farklı çiftlerin `pickup & delivery` belirtilmesi gerekir (bu durumda `pickup` siparişler aynı koordinatlara sahip olacaktır, ancak farklı tanımlayıcılara sahip olmalıdır). Bu tür çiftler `pickup & delivery` farklı kuryelere planlanabilir (`pickup` noktaları aynı olsa bile). Kurye başına zorunlu planlama için sipariş gruplamasının kullanılması önerilir.


{% note alert "Uyarı" %}

Ağırlık, hacim ve yer değeri `delivery` tipi bir nokta için atlanabilir, ancak bağlantılı `pickup` için belirtilmelidir.

Eğer `delivery` tipi bir noktada hacim-ağırlık özellikleri belirtiliyorsa, bunlar bağlantılı `pickup` sipariş ile aynı olmalıdır. Yani, çoklu bir `pickup` durumu için, ağırlık, hacim ve yer sayısının yalnızca `pickup` siparişlerde belirtilmesi yeterlidir.

{% endnote %}


`pickup & delivery` çiftlerini yürütürken sırayı kontrol etmek için `location.in_lifo_order` işlevinin kullanılması önerilir (ayrıntılar için bkz. [Sipariş kabul ve teslimat sıralaması](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#order-reception-and-delivery)).

**Şemalar**

- `pickup & delivery`.

    ![](_images/uc-pickup-and-delivery_full.svg)

- Tek bir nokta `pickup` için çoklu `delivery`.

    ![](_images/uc-multi-pickup-to-one-delivery_full.svg)

**Örnek 1**

12 farklı nokta planlıyoruz. Yarısı `pickup` tipinde, diğer yarısı ise `delivery` tipindedir. Sonuç olarak toplamda <q>kapıdan kapıya</q> 6 teslimat elde ediyoruz.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/4a397a25-e1664d02-ee05928b-941d3fef) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/4a397a25-e1664d02-ee05928b-941d3fef) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#4a397a25-e1664d02-ee05928b-941d3fef)

**Örnek 2**

`pickup` tipindeki noktalar için 8 farklı adres belirliyor ve `delivery_to` alanında bunlar için aynı değeri belirtiyoruz. Kuryenin siparişleri farklı yerlerden alması ve hepsini tek bir yere getirmesi için bir plan yapıyoruz.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/689db8ee-55fe7253-3d74c3a3-5d0bf312) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/689db8ee-55fe7253-3d74c3a3-5d0bf312) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#689db8ee-55fe7253-3d74c3a3-5d0bf312)

**Örnek 3**

1 adresten 16 farklı adrese teslimat yapmayı planlıyoruz. Aynı adreslere sahip 16 nokta için `delivery` tipini ve diğer 16 nokta için `pickup` tipini ayarlıyoruz.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/f8c285e-5ebc4f35-378e363c-66bece09) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/f8c285e-5ebc4f35-378e363c-66bece09) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#f8c285e-5ebc4f35-378e363c-66bece09)


## Birkaç deponun birinden teslimat  {#delivery-from-one-of-depots}

**Hangi durumlarda kullanılmalı**

Bu senaryo, birkaç depoda aynı üründen yeterli miktarda bulunduğunda ve planlamanın hangi depodan teslim edileceğini seçmesi gerektiğinde kullanılır.

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

{% note alert "Uyarı" %}

Bu senaryoyu kullanırken, her depodan başlayan tüm kuryeleri listeleyin.

{% endnote %}

Planlamada birden fazla depo ve her kurye için hangi depolara bağlı olduğunu belirtin (yani rota boyunca başlayabileceği ve ziyaret edebileceği depolar). Daha fazla ayrıntı için [Birkaç depodan birinden teslimat](https://yandex.ru/routing/doc/tr/vrp/properties-of-depot.md#depot-start-from-any) ve [Birkaç depodan birinden başlama](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#start-from-any) bölümlerine bakın.

Ayrıca, senaryo için depoya girmeden rastgele bir noktada başlatma işlevini kullanabilirsiniz (ayrıntılar için [Rotayı rastgele bir noktada başlatma veya bitirme](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#route-start-or-end-at-arbitrary-point) bölümüne bakın, burada `start_at` belirli ve `visit_depot_at_start` = `false`). Her kurye için teslimatın başlaması gereken başlangıç noktası olarak bir depo belirtirseniz, planlamanın sonucu birden fazla depodan planlamaya benzer olacaktır.

{% note info "Not" %}

Belirli bir siparişin hangi depodan gönderileceği biliniyorsa, [location.depot_id](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#linking-order-depot) parametresini kullanın. Parametre değerinde `id` depo veya `id` depo dizisini belirtin.

{% endnote %}

Senaryo, hizmet fonksiyonları olmadan, yani siparişin depoya katı bir şekilde atanması yoluyla gerçekleştirilebilir. Katı bağlantı için çeşitli seçenekler vardır:

- **En yakın depo**

    Sipariş adresi koordinatları ile tüm depolar arasındaki mesafe hesaplanır (hesaplama için [Mesafe matrisi](https://yandex.com/dev/routing/distance_matrix/) hizmetini kullanın). Sipariş için en yakın depo seçilir.

- **Teslimat bölgesi**

    Her depo için önceden tanımlanmış bir teslimat bölgesi vardır ([Yandex Harita tasarımcısı](https://yandex.com/map-constructor/) ile çizilir). Her sipariş için hangi deponun teslimat bölgesine girdiği önceden kontrol edilir. Her depo ayrı ayrı ve [Bir depodan sevkiyat](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#delivery-from-depot) senaryosuna göre bağımsız olarak planlanır.


**Şema**

![](_images/uc-delivery-from-any-depot_full.svg)

**Örnek 1**

Bu örnekte, `depot_id` parametresi aracılığıyla her bir kuryenin hangi depoya bağlı olduğu belirtilmiştir. Bu şekilde kuryeler siparişleri yalnızca kendi depolarından teslim ediyor.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/307f5a5e-9e18f3cf-70f74759-68b0d87b) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/307f5a5e-9e18f3cf-70f74759-68b0d87b) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#307f5a5e-9e18f3cf-70f74759-68b0d87b)

**Örnek 2**

Bu örnekte, kuryeler rotalarına depodan değil, [garage](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#order-type) tipindeki iki noktadan birinden başlarlar. Rotanın başlangıç noktası [start_at](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#vehicle-start-at) aracılığıyla tanımlanmıştır.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/dd572af7-fb4e75cc-995940fc-15e9a1ef) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/dd572af7-fb4e75cc-995940fc-15e9a1ef) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#dd572af7-fb4e75cc-995940fc-15e9a1ef)

**Örnek 3**

Üç depo, üç sipariş ve üç araç verilmiştir. Her araç kendi deposundan başlar. Siparişlerin depolara `location.depot_id` aracılığıyla bağlantısı:

- 1 numaralı sipariş depolara bağlı değildir. Herhangi bir depodan teslim edilebilir.

- 2 numaralı sipariş 1 ve 2 numaralı depolara bağlıdır. Bu sipariş listelenen iki depodan birinden teslim edilebilir.

- 3 numaralı sipariş 3 numaralı depoya bağlıdır. Belirli bir depoda yer almaktadır.

Sonuç olarak, algoritma iki rota hesaplamıştır:

1. Bir kurye, 2 numaralı depodan 1 ve 2 numaralı siparişleri işlemektedir.
2. Başka bir kurye 3 numaralı depodan 3 numaralı siparişi işler.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/8921efe8-e66d25f-4992a8a0-6a4991bd) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/8921efe8-e66d25f-4992a8a0-6a4991bd) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#8921efe8-e66d25f-4992a8a0-6a4991bd)


## Birden fazla deposu olan rotalar  {#delivery-from-multiple-depots}


### Ek bir depoya uğrama {#additional-depot}

**Hangi durumlarda kullanılmalı**

Planlamada yaygın bir senaryo olarak, [ek gönderi almak](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#visit-additional-depot) için ek bir depoya uğrama kullanılmaktadır:

1. Kuryeler ana depo 1’den başlar.

1. Bazı kuryeler doğrudan teslimata gider.

1. Bazı kuryeler, bazı müşterilerin siparişlerinin bulunduğu depo 2’ye gönderi almak için uğrar.

1. Ek gönderi almak için giden kuryeler, depo 2’ye giderken bazı siparişleri teslim edebilir.


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

Aşağıdaki alanları kullanın:

- `vehicle.starting_depot_id` – kuryenin rotaya başlayabileceği depolar.

- `vehicle.middle_depot_id` – ek gönderi almak için depolar (ara depolar).

- `vehicle.ending_depot_id` – kuryenin rotayı tamamlayabileceği depolar.

    {% note info "Not" %}

    Depo listeleri çakışabilir. Başlangıç, ara ve bitiş depolarının bileşimi aynıysa, üç ayrı alan belirtmek yerine bunları `vehicle.depot_id` alanında listeleyebilirsiniz.

    {% endnote %}

- `vehicle.allow_different_depots_in_route` – tek bir rotada birkaç depoyu ziyaret edebilme olanağı:

    - `true` ise, kurye aynı rota üzerinde farklı depoları ziyaret edebilir.
    - `false` ise, kurye yalnızca bir depoyu ziyaret edebilir – rotaya başladığı depo.

- `vehicle.depots_only_at_run_beginning` – sadece seferin başlangıcında ek gönderi almak için ara depolara girebilir. Varsayılan değer `false`.
- `vehicle.max_middle_depots` – tüm rotadaki maksimum ara depo sayısı. Varsayılan değer 0’dır.
- `vehicle.finish_route_in_starting_depot` veya `vehicle.finish_run_in_starting_depot` – rotayı veya seferi kuryenin başladığı aynı depoda tamamlama ihtiyacı. Varsayılan değer `false`’dir. Bu parametreleri yalnızca `allow_different_depots_in_route` = `true` ise kullanmak mantıklıdır. Daha fazla ayrıntı için bkz. [Rotanın veya seferin sonunda depoya dönüş](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#return-to-depot).

Siparişin hangi depodan alındığını ve nereye götürüldüğüne API yanıtında `picked_orders` ve `delivered_orders` alanlarında bakabilirsiniz.

**Şemalar**

- Kurye, yolculuğun ortasında bir ara depoyu ziyaret edebilir.

    ![](_images/uc-delivery-from-multiple-depots1-additional-depot_full.svg)

- Kurye yalnızca yolculuğun başlangıcında ara depoyu ziyaret edebilir (parametre `vehicles.depots_only_at_run_beginning` = `true`).

    ![](_images/uc-delivery-depots-only-at-run.svg)

**Örnek 1**

Kuryenin 2 depoda bulunan 4 siparişi teslim etmesi gerekiyor. Bu yüzden kurye:

1. Depo 2’de başlar ve burada 2, 3 ve 4 numaralı siparişleri yükler.
1. Yol üzerinde 3 nolu siparişi teslim eder.
1. Ek gönderi almak için Depo 1’e uğrar.
1. Kalan siparişleri teslim eder.

Planlama sonucunda `picked_orders` alanında aşağıdaki değerleri göreceksiniz:

- `Depot 2` için `Order 3`, `Order 4`, `Order 2`;
- `Order 1` için `Depot 1`.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/f5ce3237-40c94855-f077c8f7-3ec9be46) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/f5ce3237-40c94855-f077c8f7-3ec9be46) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#f5ce3237-40c94855-f077c8f7-3ec9be46)

**Örnek 2**

Örnek 1 ile aynıdır, ancak parametre `depots_only_at_run_beginning` = `true`. Planlamanın bir sonucu olarak, kurye:

1. Depo 2’de başlar ve burada 2, 3 ve 4 numaralı siparişleri yükler.
1. Depo 1’e ek yükleme için uğrar ve buradan sipariş 1’i alır.
1. Siparişleri teslim eder.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/15e25725-cc14d32e-61d3d7bd-8b5e0cd) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/15e25725-cc14d32e-61d3d7bd-8b5e0cd) ⋅ [https://yandex.com/courier/mvrp-map#15e25725-cc14d32e-61d3d7bd-8b5e0cd](https://yandex.com/courier/mvrp-map#15e25725-cc14d32e-61d3d7bd-8b5e0cd)

**Örnek 3**

4 siparişin teslim edilmesi gerekiyor:

|	Sipariş | Sipariş türü | Yapılması gereken	|
|	----- | ----- | -----	|
|	Sipariş 1 | `delivery` | Depo 1 veya 2’den teslim al	|
|	Sipariş 2 | `delivery` | Depo 3 veya 4’ten teslim al	|
|	Sipariş 3 | `pickup` | Depo 1 veya 3’e götür	|
|	Sipariş 4 | `pickup` | Depo 2 veya 4’e götür	|

Bu yüzden kurye:

1. Depo 2’de başlar ve buradan sipariş 1’i alır.
1. Sırayla 3. ve 4. gel al siparişlerini alır.
1. Ara depo 3’e gider, burada sipariş 3’ü bırakır ve sipariş 2’yi alır.
1. Sırayla 2 ve 1 numaralı siparişleri alır.
1. Depo 2’ye döner ve burada sipariş 4’ü bırakır.

Siparişin hangi depodan alındığına API yanıtında `picked_orders` alanından ve siparişin hangi depoya götürüldüğüne `delivered_orders` alanında bakabilirsiniz.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/1b830823-e6349f64-a59ccae-a6900e6f) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/1b830823-e6349f64-a59ccae-a6900e6f) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#1b830823-e6349f64-a59ccae-a6900e6f)


### Başka bir depodan yeni bir sefer başlatma {#moving-between-depots}

**Hangi durumlarda kullanılmalı**

Bu senaryoda kurye birden fazla sefer yapabilir. Bununla birlikte farklı bir depodan yeni bir sefer başlatılabilir (bu `vehicle.starting_depot_id`’de belirtilmiştir). Seferler arasında, bir depodan diğerine boş gidişler mümkündür.

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

[Ek bir depoya uğrama](#additional-depot) planlarken kullandığınız parametrelerin aynısını kullanın.

Kuryenin seferler arasında bir depodan diğerine geçmesine izin vermek için `can_change_depot_between_runs` = `true` (varsayılan `false`) olarak ayarlayın.

**Şema**

![](_images/uc-delivery-from-multiple-depots-moving-between-depots.svg)

**Örnek**

[Ek depo](#additional-depot)’ya uğrama örneğinde olduğu gibi, ancak ağırlık kısıtlamaları vardır, araca yalnızca 2 sipariş sığabilir. Bununla birlikte kurye 2 sefer yapabilir: `vehicle.max_runs` = 2. Her sefer depo 2’de başlamalı ve depo 1’de bitmelidir. Kuryenin seferler arasında bir depodan diğerine geçmesine izin vermek için `can_change_depot_between_runs` = `true` parametresi ayarlanır. Kurye aşağıdaki işlemleri gerçekleştirir:

1. Depo 2’de başlar ve buradan sipariş 4’ü yükler. Sipariş 1’i almak için depo 1’e uğrar. 4 ve 1 numaralı siparişleri teslim eder. Depo 1’de ilk seferini tamamlar.
1. Depo 2’ye geçer. İkinci sefer için 2. ve 3. siparişleri yükler. Yüklenen siparişleri teslim eder. Seferin sonunda tekrar depo 1’e döner.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/fb903d5c-44228c21-d84cf77d-a32db5f7) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/fb903d5c-44228c21-d84cf77d-a32db5f7) ⋅  [Haritada aç](https://yandex.com/courier/mvrp-map#fb903d5c-44228c21-d84cf77d-a32db5f7)


### Başlamak için en iyi depoyu seçme  {#optimal-depot}

**Hangi durumlarda kullanılmalı**

Bu senaryoda, depolardaki sevkiyat hacmine göre kuryeleri depolar arasında nasıl tahsis edeceğinize karar vermeniz gerekir. Koşullar:

- birkaç depo var;

- araç filosu tüm depolar için ortaktır.

Bu senaryo hem ek depolara gitmeye gerek olmadığında hem de tek noktaya teslimatın ek depolara gitmeyi gerektirebileceği durumlarda kullanılabilir.

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

Her kurye için, `vehicle.starting_depot_id` alanında, siparişleri başlatabileceği ve alabileceği bir veya [birden fazla depo](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-depot.md#start-from-any) belirtin. Algoritma, başlamak için en iyi depoyu seçecektir. Ayrıca `vehicle.ending_depot_id` – kuryenin rotayı tamamlayabileceği depoları da belirtmelisiniz.

Gerekirse aşağıdaki alanları kullanın:

- `vehicle.allow_different_depots_in_route` – tek bir rotada birkaç depoyu ziyaret edebilme olanağı:

    - `true` ise, kurye aynı rota üzerinde farklı depoları ziyaret edebilir.
    - `false` ise, kurye yalnızca bir depoyu ziyaret edebilir – rotaya başladığı depo.

- <!-- source: tr/vrp/_includes/middle-depot.md -->
  `vehicle.middle_depot_id` – ek gönderi almak için depolar (ara depolar).
  <!-- endsource: tr/vrp/_includes/middle-depot.md -->

- `vehicle.max_middle_depots` – tüm rotadaki maksimum ara depo sayısı. Varsayılan değer 0’dır.


{% note info "Not" %}

<!-- source: tr/vrp/_includes/depot-list.md -->
Depo listeleri çakışabilir. Başlangıç, ara ve bitiş depolarının bileşimi aynıysa, üç ayrı alan belirtmek yerine bunları `vehicle.depot_id` alanında listeleyebilirsiniz.
<!-- endsource: tr/vrp/_includes/depot-list.md -->

{% endnote %}


**Şema**

![](_images/uc-delivery-from-multiple-depots2-optimal-depot_full.svg)

**Örnek**

Teslimat için mallar iki depoda mevcuttur. Kurye için her iki depo `starting_depot_id` alanında listelenir, ancak rota depo 2’de tamamlanmalıdır. Depo 2 teslimat adreslerinden daha uzakta olduğundan, algoritma başlamak için depo 1’i seçer, ancak rotayı depo 2’de tamamlar.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/db88146f-e5558cf4-ad22dcc3-cf740083) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/db88146f-e5558cf4-ad22dcc3-cf740083) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#db88146f-e5558cf4-ad22dcc3-cf740083)


## Uygun lokasyonlardan birine teslimat {#delivery-to-any}

**Hangi durumlarda kullanılmalı**

Bu senaryoyu, bir gönderinin birkaç olası konumdan birine teslim edilebileceği ve planlamanın en uygun olanı seçmesi gerektiği durumlar için kullanın:

- Tıbbi testlerin evde yapılması – en yakın laboratuvara götürülmesi.

- Çöp alma veya hurda metal toplama – her şeyi en yakın düzenli depolama sahalarına götürme.

- Paketi müşteriden teslim alma – üçüncü taraf bir nakliye şirketi aracılığıyla gönderme ve bu amaçla en yakın gönder kabul şubesine götürme.

- Kurye teslimatı – düzenli bir kurye ile düzenli kuryelerden acil gönderileri toplayan sabit rotalı bir kurye arasında bir görüşme planlama.


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

[delivery_to_any](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md) parametresini kullanarak olası konumlardan birine bir teslimat senaryosu uygulayın.

Siparişin nereye götürüldüğünü, depo veya siparişlerin `drop_off` API yanıtında `delivered_orders` alanında görebilirsiniz.

**Şema**

![](_images/uc-delivery_to_any_full.svg)

**Örnek**

Bu örnek, her birinde `pickup`’de birden fazla aynı noktanın belirtildiği bir dizi `delivery_to_any` siparişi seti gerçekleştirilmiştir. Siparişleri toplayan kurye, vardiya sonunda bunları en yakın `drop_off` noktasına götürür. İlk kurye için bu <q>Laboratuvar 4</q> ve ikincisi için <q>Laboratuvar 2</q> olacaktır, API yanıtında, bu konumlara teslim edilen siparişler `delivered_orders` alanlarında listelenir.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/81ead92c-41c4aedf-fbbcc473-1f0b0ce5) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/81ead92c-41c4aedf-fbbcc473-1f0b0ce5) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#81ead92c-41c4aedf-fbbcc473-1f0b0ce5)

## Gönderinin olası konumlardan birinde teslim alınması {#pickup-from-any}

**Hangi durumlarda kullanılmalı**

Bu senaryoyu, belirli bir yükün birkaç konumdan birinden alınabileceği ve planlamanın en iyisini seçmesi gerektiği durumlarda kullanın. Örneğin:

- teslim edilecek mal farklı yerlerde bulunuyor (örneğin marketlerden veya eczanelerden biri);

- gönderi üçüncü taraf bir nakliye şirketinin terminallerinden birinden teslim alınabilir;

- düzenli bir kurye ile acil gönderileri düzenli kuryelere ileten sabit rota kuryesi arasında bir görüşme planlanmalı.


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

Daha fazla ayrıntı için [pickup_from_any](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#pickup-from-any) parametre açıklaması bölümüne bakın.

**Şema**

![](_images/uc-pickup_from_any_full.svg)

**Örnek**

Örnekte, `delivery`’nin `pickup_from_any` değerine eşit oldu 2 sipariş `true` tanımlanmıştır. Bu siparişlerin her biriyle 2 sipariş `pickup` ilişkilidir.

Tüm `pickup` ve bağlı `delivery`’nin aynı ağırlığa sahip olması gerektiğini unutmayın.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/4a5fe463-44c130f-f90674ce-299f6701) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/4a5fe463-44c130f-f90674ce-299f6701) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#4a5fe463-44c130f-f90674ce-299f6701)


## Bir kurye için depodan birden fazla sefer planlamak  {#multiple-runs}

**Hangi durumlarda kullanılmalı**

- **Sevkiyat hacmi mevcut taşıma kapasitesini aşıyor**

    Bu durumda, tüm sipariş hacmini taşımak için araçların tamamının veya bir kısmının birden fazla sefer yapması gerekir.

- **Sevkiyat için tüm siparişler toplanamıyor**

    Bazen depo kapasitesi, sevkiyat başlangıcına tüm siparişlerin toplanmasına izin vermez, ancak sipariş zaman aralıklarının karşılanmasını sağlamak için sevkiyat hemen başlamalıdır. Bu durumda kuryeler, zaman kazanmak amacıyla daha erken teslimat aralıkları olan siparişleri dağıtmak için ilk seferlerine eksik yük ile çıkacaktır. Bu sırada, depo daha sonraki bir teslimat aralığına konu siparişleri toplayacak ve bunlar bir sonraki seferlerde teslim edecektir.


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

- Birden fazla sefer gerçekleştirme olanağı `max_runs` parametresi ile belirleniyor (ayrıntılar için [Aracın günde birden fazla sefer yapması](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles.md) bölümüne bakın).

- Tüm siparişlerin sevkiyat başlangıcında toplanmış olmayacağı gerçeğini hesaba katmak için `depot_ready_time` parametresini kullanın (daha fazla ayrıntı için bkz. [Siparişin depoda hazır olma süresi](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md)).


**Şema**

![](_images/uc-max_runs_full.svg)

**Örnek 1**

Bu örnekte, üç siparişin toplam ağırlığı (3000 kg) iki aracın toplam taşıma kapasitesini (2500 kg) aşmaktadır. 2 numaralı kurye iki sefer yapacak (`max_runs`) ve ikinci seferinde üçüncü siparişi götürecektir.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/4c8cce05-becb1d52-5dc9d0c6-39c139b4) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/4c8cce05-becb1d52-5dc9d0c6-39c139b4) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#4c8cce05-becb1d52-5dc9d0c6-39c139b4)

**Örnek 2**

Bu örnekte, kurye ilk olarak `depot_ready_time` aracılığıyla hazır olup olmadığı belirlenen daha erken siparişleri (`time_window`) dağıtacaktır. `max_runs` parametresi, daha sonraki siparişleri almak için depoya dönmesine izin verecektir.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/3de071b-d6c517a3-6f92f1ee-11a2a2e9) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/3de071b-d6c517a3-6f92f1ee-11a2a2e9) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#3de071b-d6c517a3-6f92f1ee-11a2a2e9)

## Çapraz yükleme {#cross-docking}

Çapraz yükleme deposu, malların aktarıldığı, yeniden konsolide edildiği veya ek yükleme yapıldığı bir depodur. Bu tür depolar için `type` alanına `crossdock` değeri girilmelidir.

Teslimat hızını sağlamak ve nakliye ücretlerini azaltmak için siparişlerin bir kısmı için çapraz yükleme kullanılabilir: siparişler, uzun mesafeli siparişlere daha yakın bir çapraz yükleme deposuna önceden götürülür. Örneğin, depo şehrin kuzeyinde yer alıyor ve teslimat gün içinde gerçekleşiyor. Daha sonra siparişlerin şehrin güney kesimine ulaştırılması için güneyde bir çapraz yükleme deposu düzenleyerek bazı siparişlerin gece büyük nakliye araçlarıyla aktarılmasını sağlıyorlar.

Çapraz yükleme depolarında siparişler depolanmaz, önce bir veya daha fazla araç siparişleri getirir ve ardından bir veya daha fazla araç bu siparişleri alır ve müşterilere götürür. Şu anda, siparişleri çapraz yükleme depolarına götürmek ve oradan taşımak için farklı araçlar gerekiyor.

Çapraz yükleme depolarıyla çalışma konusunda araçlara `crossdock_mode` parametresi kullanılarak kısıtlama ayarlanır. Aşağıdaki değerleri alabilir:

- `allow` – araç hem müşterilere hem de çapraz yükleme depolarına sipariş götürebilir (bu varsayılan değerdir);
- `deny` – araç sadece müşterilerden sipariş alabilir;
- `mandatory` – araç sadece çapraz yükleme depolarına siparişleri götürebilir.

Aracın hangi depodan veya çapraz yükleme deposundan başladığını belirtmek için `vehicle.depot_id` alanını kullanın.

Siparişler için `crossdock_mode` parametresi de aşağıdaki değerlerle ayarlanır:

- `allow` – sipariş hem doğrudan depodan hem de çapraz yükleme deposundan doğrudan teslim edilebilir (bu varsayılan değerdir);
- `deny` – sipariş yalnızca doğrudan depodan teslim edilebilir;
- `mandatory` – sipariş yalnızca çapraz yükleme deposundan teslim edilebilir.

Siparişin hangi depoda olduğunu veya hangi çapraz yükleme deposundan teslim edilmesi gerektiğini belirtmek için `location.depot_id` alanını kullanın. Birden fazla depo ve çapraz yükleme deposu listeleniyorsa, siparişin bunlardan herhangi birinden alınabileceği anlamına gelir.

`pickup` tipindeki siparişler için, aşağıdaki değerleri alan `may_drop_in_crossdock` parametresini ayarlayabilirsiniz:

- `true` – sipariş çapraz yükleme deposuna bırakılabilir (varsayılan değer);
- `false` – sipariş düzenli bir depoya teslim edilmelidir.

`may_drop_in_crossdock` parametresi sadece [Uygun lokasyonlardan birine teslimat](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#delivery-to-any) senaryosunda kullanılabilir. Çapraz yükleme deposunda aktarma özelliğine sahip sipariş bağları `pickup&delivery` varsa, [Pickup & delivery через кросс-док](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#delivery-to-any) senaryosunu kullanın.

{% note alert "Uyarı" %}

Kurye önce `delivery` tipindeki siparişleri çapraz yükleme deposuna götürür ve daha sonra `pickup` tipindeki siparişleri çapraz yükleme deposundan alır.

{% endnote %}

**Hizmet süresi**

Çapraz yükleme deposu yoluyla teslim edilen siparişler için `location.crossdock_service_duration_s` hizmet süresi dikkate alınır. Bir araç normal depodan çapraz yükleme deposuna geldiğinde, araç için hizmet süresi aşağıdaki formül kullanılarak hesaplanır:

`depot.service_duration_s` + Aracın getirdiği tüm siparişlerin toplamı {`location.crossdock_service_duration_s`}.

Çapraz yükleme yaparken, bir zaman marjı `depot.crossdock_safety_waiting_duration_s` oluşturmak yararlıdır, bir siparişin müşteriye teslim edilmek üzere alınabilmesi için siparişin çapraz yükleme deposundan boşaltıldığı andan itibaren geçmesi gereken minimum süre (varsayılan 3600 saniye veya 1 saattir). Bu yedek zaman, ilk aracın (siparişleri çapraz yükleme deposuna götüren) olası gecikmesinin, çapraz yükleme deposundan siparişleri alan araçların rotalarını bozmaması için gereklidir.

**Şema**

![](_images/uc-cross-docking-general_full.svg)

**Örnek 1**

4 kurye ve 6 siparişin 2 depodan ve kısmen çapraz yükleme deposundan dağıtılması. Depolar Moskova’nın batısında, çapraz yükleme deposu ise doğusunda yer almaktadır. Sipariş 1, 2 ve 3 batıdadır ve depolardan teslim edilir. 4, 5 ve 6 numaralı siparişler doğudadır ve çapraz yükleme deposundan teslim edilir.

Planlamanın sonucu:

|	Kurye | Kurye özellikleri | Rota	|
|	----- | ----- | -----	|
|	Kurye&nbsp;1 | Depo 1’den başlar. Onun çapraz yükleme deposuna siparişleri götürmesine izin verilmiyor. | 1 ve 3 numaralı siparişleri depo 1’den alır ve müşterilere teslim eder.	|
|	Kurye&nbsp;2 | Depo 2’den başlar. Onun için tüm rotalara izin veriliyor. | 2 ve 6 numaralı siparişleri depo 2’den alıyor. Sipariş 2’yi müşteriye ve sipariş 6’yı da çapraz yükleme deposuna götürür.	|
|	Kurye&nbsp;3 | Depo 1’den başlar. Siparişleri sadece çapraz yükleme deposuna götürebilir. | Depo 1’den 4 ve 5 numaralı siparişleri alır, çapraz yükleme deposuna götürür ve depo 1’e geri gelir.	|
|	Kurye&nbsp;4 | Çapraz yükleme deposundan başlar. | 4, 5 ve 6 numaralı siparişleri çapraz yükleme deposundan alır ve müşterilere götürür.	|

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/402d84b2-eebf31d1-1472a96-9c5cf7a6) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/402d84b2-eebf31d1-1472a96-9c5cf7a6) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#402d84b2-eebf31d1-1472a96-9c5cf7a6)

**Örnek 2**

Planlama görevinde 2 kurye, Moskova’nın güneyinde 1 depo ve doğuda bir çapraz yükleme deposu mevcut. Siparişler için aşağıdaki koşullar belirlenmiştir:

|	Sipariş | Sipariş türü | Nerede | Nereye teslim edilecek | Çapraz yükleme<br/>deposu yoluyla | Çapraz yükleme<br/>deposuna bırakılabilir |
|	----- | ----- | ----- | ----- | ----- | -----	|
|	1 | `delivery` | Depoda | Müşteriye | Evet | -	|
|	2 | `pickup` | Müşteride | Çapraz yükleme deposuna | Hayır | Evet	|
|	3 | `pickup` | Müşteride | Çapraz yükleme deposuna | Hayır | Evet	|
|	4 | `pickup` | Müşteride | Depoya | Evet | Hayır	|

Planlamanın sonucu:

|	Kurye | Kurye özellikleri | Rota	|
|	----- | ----- | -----	|
|	Kurye&nbsp;1 | Depo 1’den başlar. Siparişleri sadece çapraz yükleme deposuna götürebilir. | Sipariş 1’i depodan alır ve çapraz yükleme deposuna götürür. Bekledikten sonra, çapraz yükleme deposundan 4 numaralı siparişi alır ve depoya götürür.	|
|	Kurye&nbsp;2 | Çapraz yükleme deposundan başlar. | Çapraz yükleme deposundan sipariş 1’i alır. Müşterilerden 2, 3 ve 4 numaralı siparişleri alır ve 1 numaralı siparişi müşteriye teslim eder. 2, 3 ve 4 numaralı siparişleri çapraz yükleme deposuna götürür.	|

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/108758aa-70b4d8e5-499ebd23-cded0bf5) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/108758aa-70b4d8e5-499ebd23-cded0bf5) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#108758aa-70b4d8e5-499ebd23-cded0bf5)

**Örnek 3**

Örnek 2’de olduğu gibi aynı depolar ve kuryeler. Siparişler için aşağıdaki koşullar belirlenmiştir:

|	Sipariş | Sipariş türü | Nerede | Nereye teslim edilecek | Çapraz yükleme<br/>deposu yoluyla | Çapraz yükleme<br/>deposuna bırakılabilir	|
|	----- | ----- | ----- | ----- | ----- | -----	|
|	1 | `delivery` | Depoda | Müşteriye | Evet | -	|
|	2 | `pickup` | Müşteride | İçinde `drop_off` veya `drop_off_2` (`delivery_to_any`) | Hayır | Evet	|
|	3 | `pickup` | Müşteride | Çapraz yükleme deposuna | Hayır | Evet	|
|	4 | `pickup` | Müşteride | Depoya | Evet | Hayır	|

Planlamanın sonucu:

|	Kurye | Kurye özellikleri | Rota	|
|	----- | ----- | -----	|
|	Kurye&nbsp;1 | Depo 1’den başlar. Siparişleri sadece çapraz yükleme deposuna götürebilir. | Sipariş 1’i depodan alır ve çapraz yükleme deposuna götürür. Çapraz yükleme deposundan 4 numaralı siparişi alır ve depoya götürür.	|
|	Kurye&nbsp;2 | Çapraz yükleme deposundan başlar. | Çapraz yükleme deposundan sipariş 1’i alır. 3 numaralı siparişi müşteriden alır, 1 numaralı siparişi müşteriye teslim eder, 2 ve 4 numaralı siparişleri müşteriden alır, 2 numaralı siparişi `drop_off_2`’e teslim eder, 3 ve 4 numaralı siparişleri çapraz yükleme deposuna götürür.	|

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/42a2077b-f1f90993-bbfc446-6a890dd2) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/42a2077b-f1f90993-bbfc446-6a890dd2) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#42a2077b-f1f90993-bbfc446-6a890dd2)


### Çapraz yükleme deposuna teslimat mesafesini hesaba katmadan planlama {#planning-without-route-to-crossdock}

**Hangi durumlarda kullanılmalı**

Ana depodan çapraz yükleme deposuna kadar teslimat mesafesini dikkate almaya gerek yoksa bu yapılandırma seçeneğini kullanın.

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

Bu senaryo [birkaç depodan birinden sevkiyat](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#delivery-from-one-of-depots) senaryosuna benzer ve aynı yollarla uygulanabilir.

{% note alert "Uyarı" %}

Yukarıda açıklanan [çapraz yükleme senaryosunun](#cross-docking) aksine, bu senaryoda siparişlerin çapraz yükleme deposuna teslimatı rotalara dahil edilmemiştir. Planlamada, herhangi bir siparişin çapraz yükleme deposuna girebileceği varsayılır ve buradan hangi siparişlerin sevk edileceğini daha uygun olacağını seçmeniz gerekir. Ayrıca hangi araçların ana depodan, hangilerinin çapraz yükleme deposundan hareket ettiği de önceden bilinmelidir.

{% endnote %}

**Şema**

![](_images/uc-planning-w-choice_full.svg)

**Örnek**

`delivery` tipindeki 60 nokta, bunlar teslim edilecek siparişlerdir. `garage` tipli 1 nokta, bir çapraz yükleme deposudur. Bir kurye için rotaya depodan başlanacağı belirtilirken, başka bir kurye için rotaya çapraz yükleme deposundan başlanacağı belirtilir.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/16a81909-61b01fad-7275f5d3-5341ced) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/16a81909-61b01fad-7275f5d3-5341ced) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#16a81909-61b01fad-7275f5d3-5341ced)

### Çapraz yükleme deposu üzerinden Pickup & delivery {#cross-docking-pickup-delivery}

**Hangi durumlarda kullanılmalı**

Bu senaryo, çapraz yükleme deposundan dağıtılması gereken siparişlerin önceden `pickup` noktalarından toplanması gerekiyorsa kullanılır.

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

Çapraz yükleme depolarına sipariş toplama rotaları ve ardından siparişlerin müşterilere teslimatı için zaman sınırları belirleyin.

- **Farklı araçlarla toplama ve teslimat**

    Çapraz yükleme deposuna teslimatı ve çapraz yükleme deposundan sevkiyatı farklı planlamalara bölün. Bu şekilde [Gönderilerin depoya toplanması](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#collection-to-depot) senaryosuna göre bir planlama ve [Bir depodan sevkiyat](https://yandex.ru/routing/doc/tr/vrp/supported-use-cases.md#delivery-from-depot) senaryosuna göre başka bir senaryo elde edeceksiniz.

    **Örnek**

    İki farklı planlama aracılığıyla çapraz yükleme: toplama ve teslimat.

    1\. İlk bölüm, toplama. Sabah vardiyasındaki bir araç adreslerden siparişleri toplayıp depoya geri dönüyor.

    [API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/2e09e5b2-a9eed157-86cb817-be3f8cad) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/2e09e5b2-a9eed157-86cb817-be3f8cad) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#2e09e5b2-a9eed157-86cb817-be3f8cad)

    2\. İkinci kısım, teslimat. Başka bir araç gündüz vardiyasında depodan siparişleri alır ve alıcılara teslim eder.

    [API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/2d09d379-54f76059-ea297d6c-3d33dc3a) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/2d09d379-54f76059-ea297d6c-3d33dc3a) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#2d09d379-54f76059-ea297d6c-3d33dc3a)

- **Tek araçla toplama ve teslimat**

    Siparişleri toplamak ve teslimatı için bir zaman sınırı belirleyin.

    1\. Çapraz yükleme deposunda toplanması gereken siparişler için:
    - `pickup` tipi belirleyin;
    - [delivery_deadline](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#order-time-depot-delivery) parametresini kullanın.

    2\. Çapraz yükleme deposundan teslim edilmesi gereken siparişler için:
    - `delivery` tipi belirleyin;
    - [depot_ready_time](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#order-time-depot-ready) parametresini kullanın.

    Çapraz yükleme işlemlerini gerçekleştirmek için `delivery_deadline` ve `depot_ready_time` parametrelerinin değerleri arasında bir zaman aralığı olmalıdır. Örneğin, gönderiyi saat 13.00’e kadar toplama ve teslimatı saat 14.00’te başlama.

    **Örnek**

    1 kurye, 10 sipariş `pickup` ve 10 sipariş `delivery`. Siparişler birbiriyle bağlantılı değil. Tümü `pickup` saat 13.00’e kadar depoya teslim edilmelidir ve tümü `delivery` saat 14.00’ten itibaren depodan alınabilir. Kuryenin siparişleri 2 seferde yerine getirmesine izin vermek için `vehicle.max_runs` = 2 belirtilmiştir.

    [API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/26f714ab-25d12bd9-6b92ea42-3db447ee) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/26f714ab-25d12bd9-6b92ea42-3db447ee) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#26f714ab-25d12bd9-6b92ea42-3db447ee)

**Şema**

![](_images/uc-cross-docking_full.svg)

## Rotanın yürüyüş kısmından önce araç park yeri ile teslimat {#vehicle-walking-courier}

**Hangi durumlarda kullanılmalı**

Senaryo, rotada birbirine yakın birkaç sipariş olduğunda kullanılır. Kurye araçla gelebilir, park edebilir ve siparişleri yürüyerek dağıtabilir. Tüm siparişleri bir kerede taşımak mümkün değilse, kurye birkaç sefer yapar. Her seferin başında, kurye siparişlerin bir kısmını alır, teslim eder ve daha sonra siparişlerin bir sonraki kısmını almak için araca geri döner.

Rotanın birkaç yürüyüş bölümü olabilir.

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

Parametreleri ayarlayın:

- `location.parking_service_duration_s` – kuryenin aracı park etmek için harcadığı süre.

    {% note info "Not" %}

    `walking` ve `transit` taşıma şekilleri için, `location.parking_service_duration_s` parametresi geçen sürenin hesaplanmasına dahil değildir.

    Diğer taşıma şekilleri için `location.parking_service_duration_s`’de belirtilen süre, rotanın yürüme kısmı başlamadan önce yalnızca bir kez dikkate alınacaktır.

    {% endnote %}

- `vehicle.walking_courier.capacity.units` – kuryenin taşıyabileceği maksimum birim sayısı. Bu işlevi kullanmak için, ayrıca `location.shipment_size` parametresi yardımıyla sipariş edilecek birim sayısını belirtin.

    Kuryenin `vehicle.walking_courier.capacity.units` parametresinde belirtilenden daha fazla birim dağıtması gerekiyorsa, algoritma kuryenin birden fazla sefer yaptığı bir rota oluşturabilir. Örneğin, 10 birimi yaya olarak dağıtmanız gerekiyorsa ve parametre `vehicle.walking_courier.capacity.units` = 5 ise, kurye önce 5 birimi teslim edecek, ardından araca dönüp kalan 5 birimi alacaktır.

    {% note info "Not" %}

    RouteQ, yalnızca bir kuryenin araçtan indiği ve siparişleri yürüyerek teslim ettiği senaryoları destekler.

    {% endnote %}

- `vehicle.walking_courier.cost.hour` ve/veya `vehicle.walking_courier.cost.km` – saat ve kilometre başına yürüme ücreti. Yaya teslimatının ücreti [araç veya kurye ücreti](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles-cost.md#cost) ile aynı şekilde hesaplanır.
- `vehicle.walking_courier.restrictions` – rotaların yürüyüş kısımları için kısıtlamalar:
    - `max_walking_edge_distance_m.value` ve `max_walking_edge_distance_m.penalty` – rotanın yürüme kısımlarındaki iki nokta arasında izin verilen maksimum mesafe (metre cinsinden) ve kısıtı ihlal etmenin cezası.
    - `max_parking_walking_distance_m.value` ve `max_parking_walking_distance_m.penalty` – tek bir park seansında kat edilebilecek izin verilen azami mesafe (metre cinsinden) ve kısıtı ihlal etmenin cezası.
    - `max_parking_duration_s.value` ve `max_parking_duration_s.penalty` – bir park oturumunun izin verilen maksimum süresi (saniye cinsinden) ve kısıtı ihlal etmenin cezası.
    - `close_locations` – yakın siparişler için kısıtlamalar dizisi:
    - `duration_till_service_s.value` ve `duration_till_service_s.penalty` – iki yakın siparşi teslim etme arasında izin verilen maksimum süre (saniye cinsinden) ve kısıtı ihlal etmenin cezası.
    - `distance_till_service_m.value` ve `distance_till_service_m.penalty` – iki yakın siparişin arasında izin verilen maksimum mesafe (metre cinsinden) ve kısıtı ihlal etmenin cezası.
    - `search_radius_m` – yakın kabul edilen ve kısıtlamalara tabi olan iki sipariş arasındaki mesafedir.
    - `soft_search_radius_m` – bu parametrenin değeri karşılık gelen `search_radius_m` değerini aşarsa, `search_radius_m` ila `soft_search_radius_m` arasındaki mesafede bulunan siparişler de kısıtlamaya tabi olacaktır, ancak boyutu mesafeye bağlı olarak doğrusal olarak azalır. Örneğin, (`search_radius_m` + `soft_search_radius_m`) / 2 mesafesinde, 0,5 ağırlığa sahip bir kısıtlama geçerli olacaktır.

    {% cut "Yakın sipariş ayarlarının kullanma örneği" %}

    ```json
    {
        ...
        "walking_courier": {
        ...
        "restrictions": {
                "close_locations": [
                    {
                        "search_radius_m": 400,
                        "soft_search_radius_m": 500,
                        "distance_till_service_m": {
                            "penalty": 0.02,
                            "value": 1500
                        }
                    },
                    {
                        "search_radius_m": 100,
                        "soft_search_radius_m": 160,
                        "duration_till_service_s": {
                            "penalty": 0.02,
                            "value": 1500
                        }
                    }
                ],
        ...
            }
        ...
            },
        ...
    }
    ```

    Yukarıdaki örnekte, ilk kısıtlama aralarındaki mesafe 400 metreye kadar olan siparişlerin bir sonraki 1500 metrelik hareket içinde teslim edilmesi gerektiğini belirtmektedir. Sınırın aşılması her metre için 0,02 oranında cezalandırılır. 400 ila 500 metre arasındaki siparişler için de bu kısıtlama geçerlidir, ancak mesafeye bağlı olarak doğrusal olarak azaltılır – örneğin, 430 metre uzaklıktaki bir sipariş, temel cezanın 0,7’si kadar bir cezaya tabi olacaktır.

    İkinci kısıtlama ilkine benzer, ancak siparişleri işlenmesi arasındaki süreyi belirler. 100 metre yarıçapındaki siparişler 25 dakika içinde işlenmelidir ve geciken her saniye için 0,02 ceza uygulanmalıdır. 100 ila 160 metre arasındaki siparişler kısıtlamaya tabidir, ancak uzaklaştıkça doğrusal olarak azalır.

    {% endcut %}

Siparişleri yürüyerek ve arabayla ziyaret etmenin ücretini dengelemek için `options.average_projection_walking_part_distance_m`’i kullanın – seçenek, yoldan siparişe olan ortalama yürüme mesafesini ayarlar. Bu seçenek kullanıldığında, kuryeye siparişe araçla yapılan her ziyaret için yaya ücretinin iki katı ceza kesilir.

Örneğin, `average_projection_walking_part_distance_m` = `15` ise, 30 metrelik bir yürüyüş rotasının ücreti her ziyaretin ücretine eklenecektir. Bu ayar, `driving` taşıma şekli kullanıldığında yolculuğun yürüme kısmının ücretinin, `walking` kullanıldığında aynı mesafeye kıyasla telafi edilmesini sağlar.

**Şema**

![](_images/uc-walking-courier_full.svg)

**Örnek 1**

Rota 10 siparişten oluşmaktadır. Bazı siparişler birbirlerine yakındır:

- 1., 2., 3. ve 4. siparişler;
- 5, 7 ve 9. siparişler;
- 8\. ve 10. siparişler.

Yürüyerek teslimatın ücreti araba ile teslimattan daha az olduğu için, yakın siparişlerin teslimatında kurye park eder ve yürüyerek teslim eder. Diğer siparişlerin teslimatı için kurye araba ile seyahat eder.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/f2db0112-56f75202-fabcc3fe-fafa0028) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/f2db0112-56f75202-fabcc3fe-fafa0028) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#f2db0112-56f75202-fabcc3fe-fafa0028)

**Örnek 2**

Örnek 1 ile aynı, sadece `vehicle.walking_courier.capacity.units` = 2. Yakın siparişlerin teslimatı için kurye park eder ve bir seferde en fazla iki ünite teslim eder.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/3af24ad8-1ad89db1-b60eb732-409db315) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/3af24ad8-1ad89db1-b60eb732-409db315) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#3af24ad8-1ad89db1-b60eb732-409db315)


## Treyler kullanımı {#trailer}

**Hangi durumlarda kullanılmalı**

Varsayılan değer, sipariş noktasına yalnızca treyleri olmayan bir çekici (kamyon) gelebilir. Sipariş noktası treylerli kamyon için uygunsa, bu senaryoyu kullanın. Treylerli kamyon ayarları için bkz. [Eklentiler](https://yandex.ru/routing/doc/tr/vrp/properties-of-vehicles.md#coupling).

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

Treylerli çekici için konumun kullanılabilirliği `location.allow_trailers` alanında belirlenir. Varsayılan değer, `location.allow_trailers` = `false` yalnızca treylersiz çekicinin varabileceği erişilemez bir konumdur. Araç erişimli konumu olan bir senaryoyu gerçekleştirmek için `location.allow_trailers` = `true` olarak belirtin. Böyle bir konuma bir treylerli çekici gelebilir.

Treylerli çekiciler için sipariş türleri:

- `anchor` – treyleri uzun süre bırakabilecek ve aktarma yapılabilek bir noktadır;

- `parking` – treylerin sadece bir siparişin boşaltılması için bırakılabileceği bir nokta.


`anchor` tipli (demirli) noktaya bir treyler ile gelebilir, onu birkaç saatliğine bırakabilir, aktarma yapılabilir. Böyle bir siparişin benzersiz bir `id` olması gerekir. Bu noktaya bir gönderi getirmek istiyorsanız, tipi `delivery` olan başka bir sipariş oluşturmalısınız (bkz. [Sipariş türü](https://yandex.ru/routing/doc/tr/vrp/properties-of-orders.md#order-type)).

Demirli bir bağlantı noktası tarafından hizmet verilebilecek araç sayısı (çekici ve treyler bağlantıları) varsayılan olarak sınırsızdır. Gerekirse, `max_total_vehicles` parametresinde aynı anda demirli bağlantı noktasında bulunabilecek maksimum araç sayısını belirtin.

Tipi `parking` olan bir noktada, treyler yalnızca bir siparişi boşaltma süresi boyunca yanaşma yolu olmayan bir mağazada bırakılabilir.

`anchor` ve `parking` tipindeki siparişler için planlama probleminin çözümünde aşağıdaki alanlar ortaya çıkar:

#|
||	**Alan** | **Açıklama**	||
||	`trailer_used` | Çekicinin depodan treylerle mi yoksa treylersiz mi ayrıldığını gösterir. `true`/`false` değerlerini alır.
Çekici treylersiz yola çıktıysa, erişim yolu olmayan bir yere varabilir (`trailer_used` = `false`).	||
||	`trailer_decoupled` | Çekicinin treylerle yola çıktığı bir durumu anlatır. Yolda treyleri ayırıp ayırmadığını gösteriyor. `true`/`false` değerlerini alır.
Treyleri ayırdıysa, çekici erişimi olmayan bir yere varabilir (`trailer_decoupled` = `true`).	||
|#

{% cut "Cevap parçası" %}

```json
{
    "arrival_time_s": 36726.340873455316,
    "node": {
        "type": "location",
        "used_time_window": "12:00:00-18:00:00",
        "value": {
            "anchor_mode": "Decoupling",
            "hard_window": false,
            "id": 1,
            "penalty": {
                "out_of_time": {
                    "fixed": 1000,
                    "minute": 17
                }
            },
            "point": {
                "lat": 55.780426,
                "lon": 37.712129
            },
            "ref": "",
            "service_duration_s": 0,
            "shared_service_duration_s": 0,
            "time_window": "12:00:00-18:00:00",
            "total_service_duration_s": 0,
            "trailer_decoupled": true,
            "trailer_used": true,
            "type": "anchor"
        }
    },
    "transit_distance_m": 4035.227074751774,
    "transit_duration_s": 726.3408734553194,
    "violations": [],
    "waiting_duration_s": 6473.659126544684
  }
```

{% endcut %}

Aşağıdaki alanlar **sadece** `anchor` tipindeki siparişler için çözümde görünür:

#|
||	**Alan** | **Açıklama**	||
||	`anchor_mode` | Demirli bağlantı noktası kullanım modu. Değerleri alır:
- `Decoupling` – treyleri ayır ve yola devam et.
- `Coupling` – treyleri bağla ve yola devam et.
- `Rolling` – treyleri bağla, aktarma yap, treyleri ayır ve yola devam et.	||
||	`load_to_head` | Treylerden çekiciye aktarılacak siparişlerin bir listesini içerir (yalnızca `anchor_mode = Rolling` noktaları için).
Bununla birlikte sipariş çekiciye kısmen aktarılabilir. Tamamı taşındıktan sonra çekicinin kapasitesi aşılacaksa, bu tür bir siparişin bir kısmı treylerde kalacaktır	.||
|#

{% cut " Cevap parçası" %}

```json
{
    "route": [
        {
            "arrival_time_s": 49003,
            "departure_time_s": 52603,
            "load_to_head": [
                "Order 1",
                "Order 2",
                "Order 3",
                "Order 4"
            ],
            "node": {
                "type": "location",
                "used_time_window": "08:00:00-14:00:00",
                "value": {
                    "anchor_mode": "Rolling",
                    "hard_window": false,
                    "id": "anchor43",
                    "point": {
                        "lat": 52.527983,
                        "lon": 85.227133
                    },
                    "ref": "",
                    "service_duration_s": 3600,
                    "shared_service_duration_s": 0,
                    "time_window": "08:00:00-14:00:00",
                    "total_service_duration_s": 3600,
                    "trailer_decoupled": true,
                    "trailer_used": true,
                    "type": "anchor"
                }
            }
        }
    ]
  }
```

{% endcut %}

Depoda, eklentili rotalama görevleri çözülürken aşağıdaki alanlar ortaya çıkıyor:

#|
||	**Alan** | **Açıklama**	||
||	`trailer_used` | Çekicinin garajdan nasıl rotaya çıktığını gösteriyor: treylerli veya treylersiz. `true`/`false` değerlerini alır.
Rota sırasında değişebilir	.||
||	`trailer_decoupled` | Çekicinin depodan treylerle mi yoksa treylersiz mi ayrıldığını gösterir. `true`/`false` değerlerini alır.
Rota sırasında değişebilir	.||
||	`load_to_head` | Çekiciye yüklenecek siparişlerin listesi.	||
||	`load_to_trailer` | Treylere yüklenecek siparişlerin listesi.	||
|#

{% cut "Cevap parçası" %}

```json
{
    "route": [
        {
            "arrival_time_s": 0,
            "departure_time_s": 5040,
            "load_to_head": [
                "Order 5",
                "Order 6",
                "Order 7",
                "Order 8"
            ],
            "load_to_trailer": [
                "Order 1",
                "Order 2",
                "Order 3",
                "Order 4"
            ],
            "node": {
                "type": "depot",
                "used_time_window": "00:00:00-1.23:59:59",
                "value": {
                    "finish_service_duration_s": 1800,
                    "flexible_start_time": true,
                    "hard_window": true,
                    "id": "576",
                },
                "point": {
                    "lat": 53.400374288503,
                    "lon": 83.967696868016
                },
                "preliminary_service_duration_s": 0,
                "ref": "",
                "service_duration_s": 5040,
                "time_window": "00:00:00-1.23:59:59",
                "total_service_duration_s": 5040,
                "trailer_decoupled": false,
                "trailer_used": true
            }
        }
    ]
  }
```

{% endcut %}

**Şema**

![](_images/uc-trailer.svg)

**Örnek 1**

Örnekte, treylerli bir kamyonun üç siparişi teslim etmesi gerekiyor. Noktalardan birine treylerle yaklaşılabilir (`allow_trailers` = `true`), diğer ikisine yaklaşılamaz (`allow_trailers` = `false`). Ancak erişilemeyen yerlerin yakınında treylerin bir süreliğine bırakabileceği noktalar var (`type = parking`).

Ortaya çıkan çözümde, kamyon önce bir park noktasına gidiyor, treyleri orada bırakıyor ve daha sonra erişilemeyen konuma yükünü indirmek için gidiyor. Yükü teslim ettikten sonra otoparka dönüyor, treyleri alıyor ve rota boyunca yoluna devam ediyor.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/cd13866-9d00e8df-c7abe157-d0ec535b) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/cd13866-9d00e8df-c7abe157-d0ec535b) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#cd13866-9d00e8df-c7abe157-d0ec535b)

**Örnek 2**

Örnekte, bir treylerli kamyonun dört siparişi teslim etmesi gerekiyor. İki noktaya treyler ile yaklaşılamaz (`allow_trailers` = `false`), ancak diğer iki noktaya yaklaşılabilir (`allow_trailers` = `true`). Rota üzerinde treylerin uzun süre bırakılabileceği demirli bir konum (`type = anchor`) bulunmaktadır.

Algoritma, erişilemeyen konumları dikkate alarak bir rota oluşturur. İlk olarak, kamyon demirli konuma varır ve treyleri bırakır. Daha sonra siparişleri treyler ile götüremeyeceği noktalara ulaştırıyor. Daha sonra treyler için demirli konuma geri dönüyor ve treylerle gidebileceği konumlara yükü götürüyor.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/90bb84f3-b0923bb2-f6ea11c7-1551007a) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/90bb84f3-b0923bb2-f6ea11c7-1551007a) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#90bb84f3-b0923bb2-f6ea11c7-1551007a)

**Örnek 3**

Örnekte, treylerli bir kamyon, treyler ile ulaşılamayan noktalara dört sipariş teslim etmek zorundadır (`allow_trailers` = `false`). Rotada demirli konum (`type = anchor`) bulunmaktadır. Bununla birlikte siparişlerin toplam ağırlığı aracın taşıma kapasitesinden çok daha yüksektir, yani kamyon bir treyleri kullanmadan tüm siparişleri teslim edemez.

İlk olarak, kamyon demirli konuma gelir, treyleri bırakır ve treyler olmadan iki siparişi teslim eder. Daha sonra demirli konuma geri döner, treylerden çekiciye yükleri aktarır ve kalan siparişleri teslim etmek için treylersiz tekrar ayrılır.

[API isteği (JSON)](https://courier.yandex.ru/vrs/api/v1/log/request/c107d06-f7a6048a-ee308bec-d68acf90) ⋅ [API yanıtı](https://courier.yandex.ru/vrs/api/v1/result/c107d06-f7a6048a-ee308bec-d68acf90) ⋅ [Haritada aç](https://yandex.com/courier/mvrp-map#c107d06-f7a6048a-ee308bec-d68acf90)

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


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


