Yönlendirme Seçenekleri

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

Arama sınırları

Arama sınırları, maksimum süre uzunluğu veya bulunan çözüm sayısı gibi belirli bir sınıra ulaştıktan sonra çözücüyü sonlandırır. Çözümleyicinin arama parametreleri aracılığıyla bir arama sınırı belirleyebilirsiniz. Örnek için Zaman sınırları bölümüne bakın.

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

Ad Type Varsayılan Açıklama
solution_limit int64 kint64max Arama sırasında oluşturulan çözüm sayısıyla sınırlandırın.
time_limit.seconds int64 kint64max Saniye cinsinden arama süresiyle sınırlayın:
lns_time_limit.seconds int64 100 Saniye cinsinden harcanan zamanla sınırlandırın: her yerel arama komşusu için tamamlama araması.

İlk çözüm stratejisi

İlk çözüm stratejisi, çözümleyicinin ilk çözümü bulmak için kullandığı yöntemdir. Aşağıdaki tabloda first_solution_strategy için seçenekler listelenmiştir.

Option Açıklama
AUTOMATIC Çözücünün, çözümlenen modele göre hangi stratejiyi kullanacağını algılamasını sağlar.
PATH_CHEAPEST_ARC Bir rota "başlangıç" düğümünden başlayarak, en ucuz rota segmentini oluşturan düğüme bağlanın. Ardından, rotaya eklenen son düğümde iterasyon yaparak rotayı genişletin.
PATH_MOST_CONSTRAINED_ARC PATH_CHEAPEST_ARC özelliğine benzer ancak yaylar, önce en kısıtlanmış yayına öncelik verecek karşılaştırmaya dayalı bir seçici ile değerlendirilir. Yönlendirme modeline bir seçici atamak için ArcIsMoreConstrainedThanArc() yöntemini kullanın.
EVALUATOR_STRATEGY Yaklaşım maliyetlerinin SetFirstSolutionEvaluator()'e iletilen işlev kullanılarak değerlendirilmesi dışında PATH_CHEAPEST_ARC özelliğine benzer.
SAVINGS Tasarruf algoritması (Clarke ve Wright). Clarke, G. & Wright, Japonya
SWEEP Süpürme algoritması (Wren & Holliday). Anthony Wren ve Alan Holliday Araçlarının Bir veya Daha Fazla Depodan Çalışacak Şekilde Gerçekleşebilecek Operasyonların Sayısına İlişkin Planlamaları Üç Aylık Operasyon Araştırması (1970-1977), 23. Cilt, 3 Sayı (Eylül, 1972), s. 333-344.
CHRISTOFIDES Christofides algoritması (maksimum olarak, maksimum eşleme yerine maksimum eşleme kullanan Christofides algoritmasının bir varyasyonudur). Rotalar, düğüm eklenebilene kadar uzatılarak genel araç yönlendirme modellerinde çalışır. Nicos Christofides'e başvurun, En kötü örnek, gezginler için satış problemi için yeni bir bulgudur, Rapor 388, Yüksek Lisans Endüstri Yönetimi, CMU, 1976.
ALL_UNPERFORMED Tüm düğümleri devre dışı bırak. Yalnızca düğümlerin isteğe bağlı olması durumunda bir çözüm bulur (sonlu ceza maliyeti olan bir ayrılma kısıtlamasının öğesi).
BEST_INSERTION En ucuz düğümü en ucuz konuma ekleyerek tekrarlı olarak çözüm oluşturun; ekleme maliyeti, yönlendirme modelinin küresel maliyet işlevine göre belirlenir. 2/2.2012 tarihinden itibaren yalnızca isteğe bağlı düğümleri (sonlu ceza maliyeti olan) modellerde çalışmaktadır.
PARALLEL_CHEAPEST_INSERTION En ucuz düğümü en ucuz konuma ekleyerek tekrarlı olarak çözüm geliştirin; ekleme maliyeti, yay maliyeti işlevine dayanır. BEST_INSERTION daha hızlı.
LOCAL_CHEAPEST_INSERTION Her düğümü en ucuz konuma ekleyerek tekrarlı olarak çözüm oluşturun; ekleme maliyeti, yay maliyeti işlevine bağlıdır. PARALLEL_CHEAPEST_INSERTION, ekleme için seçilen düğüme göre değişiklik gösterir. Burada düğümler oluşturulma sırasına göre değerlendirilir. PARALLEL_CHEAPEST_INSERTION daha hızlı.
GLOBAL_CHEAPEST_ARC En ucuz rota segmentini oluşturan iki düğümü yinelenen şekilde bağlayın.
LOCAL_CHEAPEST_ARC Bağlantısız bir takipçisi olan ilk düğümü seçin ve en ucuz rota segmentini oluşturan düğüme bağlayın.
FIRST_UNBOUND_MIN_VALUE Bağlantısız bir takipçisi olan ilk düğümü seçip kullanılabilir ilk düğüme bağlayın. Bu değer, ASSIGN_MIN_VALUE stratejisiyle birlikte CHOOSE_FIRST_UNBOUND stratejisine eşdeğerdir (cf. restrictedt_solver.h).

Arama durumu

Yönlendirme modelinin status yöntemini kullanarak bir aramanın durumunu döndürebilirsiniz. Aramanın durumunu yazdıracak Python kodunu aşağıda görebilirsiniz:

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

Bu, aşağıdaki anlamlara sahip bir tam sayı yazdırır:

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: Yerel bir optimizasyona ulaşılamaması dışında, RoutingModel.Solve() çağrısı yapıldıktan sonra sorun başarıyla çözüldü. Daha fazla zaman bırakmak, çözümün iyileştirilmesine olanak tanır.
3 ROUTING_FAIL: Sorunun çözümü bulunamadı.
4 ROUTING_FAIL_TIMEOUT: Çözüm bulmadan önce ulaşılan süre sınırı.
5 ROUTING_INVALID: Model, model parametreleri veya işaretler geçerli değildir.
6 ROUTING_INFEASIBLE: Sorunun mümkün olmadığı kanıtlandı.

Yerel arama seçenekleri

Aşağıdaki tabloda yerel arama stratejileri için seçenekler (metaforistik olarak da adlandırılır) listelenmektedir. Bu seçenekleri ayarlama örnekleri için Arama stratejisini değiştirme bölümüne bakın.

Option Açıklama
AUTOMATIC Problem çözücünün metaforu seçmesine olanak sağlar.
GREEDY_DESCENT Yerel bir minimum değere ulaşılana kadar, yerel arama komşularını iyileştirmeyi (maliyeti azaltma) kabul eder.
GUIDED_LOCAL_SEARCH Yerel minimum içerikten kaçmak için rehberli yerel aramayı kullanır. (cf. Açıklamalı Yerel Arama) bu, araç yönlendirme için genellikle en verimli metalisttir.
SIMULATED_ANNEALING Yerel minimumdan kaçmak için simüle doğal geçiş (ör. Simüle Edilmiş Dolaşım) kullanır.
TABU_SEARCH Yerel minimumdan kaçmak için sekme araması kullanır (ör. Sekmeu Arama).
GENERIC_TABU_SEARCH Yerel minimum değeri atlatmak için çözümün nesnel değerinde tabu aramasını kullanır.

Yayılım denetimi

Ad Type Varsayılan Açıklama
use_full_propagation bool true Yönlendirme modelinde tam yayılımlı kısıtlamaları kullanın (yalnızca ışık yayılımı yerine). Tam yayılım, yalnızca derin öncelikli arama kullanılırken veya ikincil değişkenlerin değerini kesinleştirmek için güçlü bir yayılım gerektiren modeller için gereklidir. Bu ayarın doğru değerine ayarlanması, çoğu durumda aramayı yavaşlatır ve tüm durumlarda bellek tüketimini artırır.