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. |