Üretim yazılımında genel durum üstel zaman algoritmaları ne kadar yaygındır?


11

Üstel zaman algoritmalarından genel olarak kaçınılması gerektiğini, ancak bazen gerekli olduğunu biliyorum. Gezgin Satıcı olgusu. Bu tür algoritmalar üretim yazılımında ne kadar yaygındır? Bu durumlar genellikle gerekli mi yoksa acele işlerin bir sonucu mu? Birçoğunun iyi bir buluşsal yöntemle çözülebileceğini anlıyorum. Genellikle yapamayanlarla neler yapılır?


1
Benim izlenimim, gezici satıcı problemi gibi şeyler için, üstel zaman algoritmasını terk eder ve bunun yerine çok daha iyi bir buluşsal yöntemle gider (seyahat eden satıcı durumunda, oldukça iyidir)
soandos

Birçok problem "üstel" algoritmalarla çözülmüştür. (TSP, CDS, ILP, vb.) Üstel algoritmaların iyi sezgisel özellikleri olduğu için çok sayıda gerçek dünya verisiyle makul bir şekilde çalışırlar. Daha iyi bir soru, " Üretim yazılımında genel durum üstel zaman algoritmaları ne kadar yaygındır ?"
user541686

Soruyu düzeltti
Dünya Mühendisi

Seyahat eden satıcı n !, üstel değil.
user281377

1
@ user281377: O da (n ^ 2 2 ^ n) yani evet, üstel bir problem. Bu aynı zamanda açıktır, çünkü tüm NP problemleri için çalışan 2 ^ n sürede çözülebilen poli zamanda SAT ile eşlenebilir.
Raphael

Yanıtlar:


7

Değil bir şey de yapmış üretim yazılımı ancak üzerinde üretim yazılım olan biçimsel doğrulama . Muhtemelen çoğu müşteri yazılımı için kabul edilmez, ancak gömülü sistemler ve sürücüler için, yani doğruluğu önemli (ve izlenebilir) olan yazılım ve yazılımlar için iz kazanır.

Aslında hesaplanabilir olan bu doğrulama problemleri (bariyer # 1) genellikle EXPTIME -hard, daha şanslı durumlarda PSPACE-tamamlanmış problemler (bariyer # 2) alırsınız . Her iki sınıf da NP-tamamlanmış problemlerden daha zordur (şüphelenilir) ve bu da karşılaştırması kolaydır. Şüpheli üstel problemler de kolayca elde edilebilir.

Bu durumlarda, sezgisel tarama (sonuç sonucu anlamında) kesin sonuçlara ihtiyaç duyduğunuz için kesmez; bu nedenle büyük makinelere ve zamana ihtiyacınız var. Genellikle daha kısa çalışma süresine (yani, hata durumları arandığında akıllı arama alanı keşfi) yol açan sezgisel tarama (alternatif seçim anlamında) vardır, ancak en kötü durumda, tüm yapabileceğiniz beklemek. Ya da bir kalem ve kağıt kanıtı yapabilir ve hesap makineleri daha basit olan makineler tarafından kontrol edilmesini sağlayabilirsiniz .



5

Programlama dili tercümanları üstel süreden daha kötüdür (girdilerinin uzunluğunda, yani yorumladıkları programın uzunluğunda) ve oldukça yaygındır. Başka bir örnek, otomatik teoremi kanıtlama / kısıtlama çözme / sat çözme / tamsayı doğrusal programlamadır. Ve yine bir başka örnek, örneğin Maple / Mathematica'da uygulandığı gibi sembolik farklılaşmadır (her ne kadar alt ifadeleri düğümler arasında paylaşmanıza izin verilirse doğrusal zamanda sembolik farklılaşma yapmak mümkündür).


1

Gezici satıcı sorunu örneğini ele alalım. Birkaç kez üzerinde çalıştım.

Seyahat eden satıcı sorununa çözüm yazmış bir takımda bulunduğumda, ancak birkaç parametre daha var. Örneğin, her biri benzersiz bir beceri setine sahip bir teknisyen ve mühendis filosuna sahip bir mağaza olabilir. Destinasyonlar her gün servis talepleri şeklinde gelir. Tüm programlar orijinal olarak yazıldığından beri değişiklikler ve bakım geçirmiş olsalar da üretimde.

Bu şekilde çalıştılar. Her mühendis, el tipi bir cihazda her gün servis edilecek şeylerin bir listesini alacaktı. Her hizmet görevini bitirdiklerinde, vakayı kapatmaları gerekir. Dışarıda bırakılan vakalar, ertesi gün için planlanacak vakalara, o zamana kadar müşterinin bazı memnuniyetsizliklerini ifade edeceği için biraz daha yüksek önceliğe katılır. Bir mühendisin davaya katılmamasının çok çeşitli nedenleri vardı. Trafik sorunları en yaygın olanıydı.

Ne kadar yaygındır? En azından müşterilerden gelen satış sonrası hizmet taleplerinin sayısı kadar yaygındır. Örneğin satış sonrası servis olmadan, müşterileri elde tutmak zor olacak ve yenilerini kazanmak daha zor olacaktır.

Amazon ve diğer kitap mağazaları gibi birçok web tabanlı mağazanın ve bu tür mağazaların işini iyi yapmasıyla, seyahat satıcısının eskisinden daha yaygın olduğunu düşünürdüm. Ayrıca, seyahat satıcısı sorununun ders kitaplarında öğretilen birçok varyasyonu olabilir.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.