Yönlendirme Seçenekleri

Bu bölümde, yönlendirme çözücüye yönelik bazı seçenekler açıklanmaktadır.

Arama sınırları

Arama sınırları, çözücüyü şu gibi belirtilen bir sınıra ulaştığında sonlandırır: süresi ya da bulunan çözüm sayısı olarak kabul edilir. Bir arama ağı sınırını aşmamalıdır. Görüntüleyin Örnek için zaman sınırları.

Aşağıdaki tabloda en yaygın arama sınırları açıklanmaktadır.

Ad Tür Varsayılan Açıklama
solution_limit int64 kint64max Çözümlerin sayısını sınırlandırın elde edilmesini sağlar.
time_limit.seconds int64 kint64max Harcanan süre için saniye cinsinden sınırla : girin.
lns_time_limit.seconds int64 100 içinde harcanan süreye (saniye cinsinden) göre sınırla : tamamlama aramasını yapabilirsiniz.

İlk çözüm stratejisi

Birinci çözüm stratejisi, çözücünün bir başlangıç noktası bulmak için kullandığı yöntemdir. çözümüne geçelim. Aşağıdaki tabloda first_solution_strategy için seçenekler listelenmiştir.

Option Açıklama
AUTOMATIC Çözücünün algoritmaya göre hangi stratejinin kullanılacağını çok önemli bir parçasıdır.
PATH_CHEAPEST_ARC Rota "başlangıç"tan başlama onu bağlamak için bir düğüm oluşturun ve ardından rotayı 2 ila 30 gün iterasyon şeklinde yapılır.
PATH_MOST_CONSTRAINED_ARC PATH_CHEAPEST_ARC özelliğine benziyor, ancak yaylar karşılaştırmaya dayalı bir seçiciyle değerlendirildiği için bu seçenek, sabit bir yayın oluşturun. Yönlendirme modeline bir seçici atamak için ArcIsMoreConstrainedThanArc() yöntemini kullanın.
EVALUATOR_STRATEGY Bu yay maliyetleri hariç PATH_CHEAPEST_ARC ile benzer işlevi kullanılarak değerlendirilir SetFirstSolutionEvaluator()
SAVINGS Tasarruf algoritması (Clarke ve Wright). Referans Clarke, G. & Wright, J.W. "Merkezi Depodan Belirli Teslimat Noktasına Araçların Planlaması" , Operasyon Araştırması, Cilt 12, 1964, s. 568-581.
SWEEP Süpürme algoritması (Wren ve Holliday). Anthony Wren ve Referans Alan Holliday Araçlar için Bilgisayar Planlaması Bir veya Daha Fazla Depodan Belirli Teslimat Noktasına Çalışır durumda Research Quarterly (1970-1977), Cilt. 23, No. 3 (Eylül, 1972), s. 333-344.
CHRISTOFIDES Christofides algoritması (aslında Maksimum eşleşme yerine maksimum eşleme kullanan Christofides algoritması Bu da her bir hesapta yaklaşık 3/2 faktörünü garanti etmez. metrik seyahat eden satış görevlisi). Genel araç rotası modellerinde çalışır. Güzergahı, üzerine hiçbir düğüm eklenene dek uzatmak. Referans Nicos Christofides, yeni bulguların en kötü durum analizi: seyahat eden satış görevlisi sorunu, Rapor 388, Lisansüstü Endüstri Okulu Yönetim, CMU, 1976.
ALL_UNPERFORMED Tüm düğümleri devre dışı bırakın. Yalnızca düğümler isteğe bağlıdır (sonlu ceza maliyeti olan bir ayırma kısıtlamasının öğesidir).
BEST_INSERTION En ucuz çözümü ekleyerek düğüm en ucuz konumunda; eklemenin maliyeti, yönlendirme modelinin maliyet işlevi 2.2012 itibarıyla yalnızca isteğe bağlı düğümler (sonlu ceza maliyetleri vardır).
PARALLEL_CHEAPEST_INSERTION en ucuz konumda bulunan düğüm; ekleme maliyeti, ark maliyet işlevine bakalım. BEST_INSERTION ürününden daha hızlıdır.
LOCAL_CHEAPEST_INSERTION Her bir düğüm en ucuz konumunda; eklemenin maliyeti yayına ve maliyet işlevi. Düğüme göre PARALLEL_CHEAPEST_INSERTION aralığından farklı ekleme için seçildi; burada düğümler sıralarına göre çok önemli. PARALLEL_CHEAPEST_INSERTION ürününden daha hızlıdır.
GLOBAL_CHEAPEST_ARC İki düğümü yinelemeli olarak birbirine bağlayarak en ucuz rota segmenti.
LOCAL_CHEAPEST_ARC Bağlı olmayan bir takipçiye sahip ilk düğümü seçin ve en ucuz rota segmentini oluşturan düğüme bağlanmasını sağlayabilir.
FIRST_UNBOUND_MIN_VALUE Bağlı olmayan bir takipçiye sahip ilk düğümü seçin ve bunu kullanılabilir ilk düğüme bağlayabilirsiniz. Bu, CHOOSE_FIRST_UNBOUND stratejisi ASSIGN_MIN_VALUE ile birleştirildi (şununla karşılaştırın: kısıtlaması_solver.h).

Arama durumu

Bir aramanın durumunu, yönlendirme modelinin status yöntemini kullanarak döndürebilirsiniz. Bir aramanın durumunu yazdırmak için kullanabileceğiniz Python kodu şöyledir:

print("Solver status: ", solver.status())

Bu işlem, şu anlamlara sahip bir tam sayı üretir:

Değer Açıklama
0 ROUTING_NOT_SOLVED: Sorun henüz çözülmedi.
1 ROUTING_SUCCESS: Sorun başarıyla çözüldü.
2 ROUTING_PARTIAL_SUCCESS_LOCAL_OPTIMUM_NOT_REACHED: Sorun çözüldü RoutingModel.Solve() çağrısından sonra başarıyla optimuma ulaşılmadı. Daha fazla zaman bırakmak, projenizin çözümüne geçelim.
3 ROUTING_FAIL: Sorun için bir çözüm bulunamadı.
4 ROUTING_FAIL_TIMEOUT: Çözüm bulmadan önce süre sınırına ulaşıldı.
5 ROUTING_INVALID: Model, model parametreleri veya işaretler geçerli değil.
6 ROUTING_INFEASIBLE: Problemin uygulanabilir olmadığı kanıtlandı.

Yerel arama seçenekleri

Aşağıdaki tabloda, yerel arama stratejileri (diğer adıyla meta bulgular). Bkz. Arama stratejisini değiştirme bu seçenekleri ayarlama örneklerine bakın.

Option Açıklama
AUTOMATIC Çözücünün meta-sezgisel yaklaşımı seçmesine izin verir.
GREEDY_DESCENT Yerel arama yapana kadar yerel arama komşularını iyileştirmeyi (maliyet azaltma) kabul eder. minimuma ulaşıldı.
GUIDED_LOCAL_SEARCH Yerel minimum değerden kaçmak için rehberli yerel aramayı kullanır. (şununla karşılaştırın: Rehberli Yerel Arama) bu genellikle araç yönlendirmesi için en verimli metabulgusaldır.
SIMULATED_ANNEALING Yerel minimum değerden kurtulmak için simüle edilmiş tavlama yöntemini kullanır (şununla karşılaştırın: Tavlama Simülasyonu).
TABU_SEARCH Yerel minimum değerden kurtulmak için tabu aramasını kullanır (bkz. Tabu Arama).
GENERIC_TABU_SEARCH Yerel bilgilerden kaçınarak çözümün nesnel değeri için tablo araması kullanır en yüksek değere sahip.

Yayılım kontrolü

Ad Tür Varsayılan Açıklama
use_full_propagation bool true Tam yayılımla kısıtlamalar kullanma (yalnızca ışık yayılım yerine) yönlendirme modelinde. Tam yayılım yalnızca derinlik öncelikli arama kullanılırken gereklidir ikincil değerin kesinleştirilmesi için güçlü bir yayılım gerektiren değişkenlerine karşılık gelir. Bu ayarı true (doğru) olarak değiştirmek, aramayı şurada yavaşlatır: ve her durumda bellek tüketimini artırır.