Gerçek hayatta NP tam veya NP zor problemleri


17

Herkesin düzenli olarak NP tam veya NP zor problemlerini (sezgisel tarama ile ya da yetersiz bir çözümü ya da herhangi bir şeyi kovalayarak) çözdüğü gerçek yaşam örnekleri var mı? Programlama, planlama, VLSI tasarımı vb. Alanlarında meydana geldiğini biliyorum, ancak bugün düzenli olarak bunu yapan programcılar veya mühendisler kullanan büyük endüstriler hakkında bir fikir edinmeye çalışıyorum. Biri uzmanlık veya kütüphane geliştirecek olsaydı, mesela, kombinatoryal optimizasyon bunu bir programlama işinin parçası olarak nerede kullanabilir?

Kişisel hesaplarınız var mı?


"Düzenli" ile ne demek istiyorsun
Conrad Frix

@Conrad, sanırım öznel bir fikir. Çabaların% 5-10'undan fazlası np-complete veya np-hard problemlerini çözmeye odaklanmış olabilir.
highBandWidth

Oyunlarda AI programlamanın NP-tam olma potansiyeli olduğunu düşünüyorum.
Michael K

Orada çok sayıda NP zor problem var (sınırlı kaynaklarla planlama ve planlama genellikle NP zor). Bununla birlikte, kombinatoryal optimizasyon yanlış bir yoldur. 100 üretebilmek! kombinasyonlar mümkün olduğunca hızlı, alana özgü buluşsal yöntemler uygulamaktan daha az yararlıdır.
David Thornley

@David, kombinatoryal optimizasyon ile kombinasyon oluşturmak istememiştim. Ben vs. k-SAT veya gezgin satıcı problemi gibi sorunların bir sınıf atıfta bulundu
highBandWidth

Yanıtlar:


8

Düşünebileceğim bazı şeyler (bunların çoğu az ya da çok dahil oldum):

  • Diller ve derleyiciler için geliştirme ortamları. Şunun gibi sorular: bu dilbilgisi belirsiz bir dil mi oluşturuyor? (Bu sorun aslında kararsızdır!)
  • Veri kurtarma. Kısmen kaybolan veri paketlerinin yeniden birleştirilmesi veya parçalanmış dosyaların kurtarılması. (Faktöriyel karmaşıklık)
  • Yazılım güvenliği. Gözlemlenen bazı davranışların kendisine atfedilip atılamayacağını belirlemek için bir yazılım parçası aracılığıyla tüm olası yürütme yollarının değerlendirilmesi. (Durma sorunu mu?)
  • Lojistik. Taşımak için paketlere, boyutlarına ve nereye gitmeleri gerektiğine göre nakliye kullanımını optimize etmek. (En azından üstel)

En kısa rotayı bulmak, hemşire planlaması vb.Gibi birçok standart örnek vardır, ancak kombinatoryal optimizasyona giriyorsanız, bunlar hakkında her şeyi biliyorsunuz :)


Lojistik şirketleri tarafından bu optimizasyon problemlerini çözmeye adanmış programcılar var mı, yoksa bu operasyonların çoğu genellikle bir kez mi çözülüyor ve çoğu şirket için tekrarlanıyor mu? Birkaç örnek için +1. Bunlardan herhangi birine dahil oldunuz mu?
highBandWidth

İlk iki araç yazdım, üçüncüsü meslektaşların üzerinde çalıştığı bir şey. Büyük lojistik şirketlerinin aktif olarak bu alanda araştırma yapmasını beklerdim, çünkü yeni bir algoritma ile yüzde birkaç ekstra performans elde ederlerse milyonlarca dolar tasarruf edebilirler :)
Deckard

Seyahat eden bir satıcı rolü için röportaj yaptım. Büyük ana şirket, rotalarında yüzde bir iyileşme elde etme umuduyla, köle doktora yapan bir odaya sahipti. Bu da onlara her gün birkaç milyon dolar değerinde olurdu. Yani bu yerler var. Yönlendirme ve zamanlama iki büyüklüktür - 1000 kişi ve iki veya üç vardiya çalışan bir fabrika olduğunu düşünün. Şimdi bu 200 kural ve herkesin tercihlerini göz önünde bulundurarak herkesi bir sonraki ay çalışmak üzere planlayın ...

9

Dokunmatik panel imalatında gezici bir saleman gibi problemi çözmek için zaman kısıtlamalı simüle tavlama kullandım. Her panelin lazer gravürünün döngü süresinden tıraş edebileceğimiz her milisaniyede, makinenin verimini, kullanımını ve dolayısıyla karlılığını artıracağız, bu yüzden scriping yolları (ki bunlar arasındaki) ölü zamanı en aza indirmek ( Açıkçası optimize edilemedi).

Optimizasyon hesaplamasının daha optimum yoldan tasarruf edilen süreden daha uzun sürmesi riskini göze alamadığımız için sorunun NP sertliğini aşmak için zaman sınırlı bir algoritma kullandım. Makine paneli yükleme konumundan lazer kafasının en yakın köşede olduğu konuma hareket ettirirken bazı simülasyonlar yapmak için zamanım vardı. Algoritma hareketin birkaç yüz milisaniyesi içinde neredeyse hiç tamamlanmadı, ancak neredeyse her zaman daha önce her zaman kullandığımız basit, uyarlanabilir olmayan modellerden (spiral veya yılan yolları gibi) daha iyi bir yazma yolu döndürdü.


2
Çok havalı. Ancak her panelin aynı desene sahip olacağını düşündüm ve her widget için sorunu tekrar tekrar değil, bir kez çözersiniz. Neden her seferinde çözmek zorunda kaldın?
highBandWidth

2
İdeal desen her panel için aynıydı, ancak panelin mekanik hizalaması, işlemdeki önceki katmanların konumu ve lazer çizme kafasının kiremitli doğası, her panel için dinamik bir alt desen kümesinin hesaplanması gerektiği anlamına geliyordu. ayrı ayrı ve sonra optimize. Özellikle zaman kısıtlamaları göz önüne alındığında, üzerinde çalışmak ilginç bir sorundu.
Mark Booth

7

(Şu anda, aslında) çoklu lokal DNA dizisi hizalamasının biyoinformatik problemi üzerinde çalışıyorum. Bunun amacı, bazı ortak özelliklere (benzer ifade profili veya bir ChIP çip deneyinde aynı transkripsiyon faktörü bağlanması) sahip olan genlerden çok sayıda sekansın bir noktada güçlü bir şekilde hizalanması durumunda, muhtemelen ortak nedenlerini bulmuş olmanızdır. Emlak. Sonra tekrar, sorunun istatistiksel yönleriyle daha fazla ilgileniyorum. NP-zor olsa da, pratikte sezgisel tarama kullanarak fazla kaybetmezsiniz. Sorunun ilginç kısmı IMHO, bir sinyal / gürültü oranı sorunudur.


1
klasik kombinatoryal / ai yaklaşımları veya istatistiksel yaklaşımlar mı kullanıyorsunuz? Bir bakıma, tüm modern nlp, kümeleme, makine öğrenimi np-komple problemlerle ilgilenir, ancak genellikle istatistiksel açıdan saldırır. Yine de ilginç ve alakalı. Bu akademi veya endüstride mı?
highBandWidth

@highBandWidth: Yaklaşımım istatistiksel. Akademiyeyim. Yaptığım araştırmanın asıl amacı, istatistiksel konuları görmezden gelir ve sadece kombinatoryal probleme odaklanırsanız, Kötü Şeyler Olur.
dsimcha

3

NP'nin tam / zor ne anlama geldiğini gerçekten bilmiyorum, ama sanırım arz otomatik planlaması bunun bir çeşidi.

100 ürün SKU'su için 90 gün ileriye yönelik talep planınız var: bira! 100 ürün SKU'su:

  • 10-15 çeşit 1. seviye temel çiğ demlenmiş şey var, onlar büyük litrelik büyük kutularda demlendi ve bir gün sürüyor;
  • demlendikten sonra, bazı malzemeler eklenmelidir (maya?) ve 10-15 gün dinlendirilmelidir, o zaman 15-20 çeşit seviye-2 malzeme var;
  • Son olarak, hazır olduğunda, bazı malzemeler eklenmelidir, bu içilebilir bira denilen seviye-3 şeyler, cc var. 30 çeşit bira;
  • bira 3 dl, 5 dl olarak şişelenebilir, bazen özel necklacigng (seviye 4) alır, daha sonra 5x4 kutu, 6 paket (seviye 5) olarak paketlenebilir.

Her işlem için makine "hatları" vardır: demlemeden ambalajlamaya. Makineler daha fazla işlem yapabilir, örneğin, bazı paketleme makineleri 6'lı ve 3'lü paketler yapabilir, ancak diğerleri sadece 6'lı paketler yapabilir. Kısıtlamalar vardır, örneğin hız veya büyük demleme su ısıtıcısı dk. Demlemek içindir. 6000, maksimum, 8000 l bira, (ancak bira tipi hafifse, min. 5000 l ve maksimum 7000 l'dir). Ve böylece, her seviyede.

Görev: bahsettiğim gibi, 100 çeşit seviye-5 (şişelenmiş, paketlenmiş şeyler) için bir talep planı var. Tüm 5 seviye, tüm makineler için en uygun üretim planını yapın . Makine anahtarlarını en aza indirin (örn. Şişeleme .5, .5, .5, .3, .3, .3 .3, .5, .3, .5, .3, .5'den daha az swithc, şişeleme makineleri için daha az ölü zaman). Müşteri tarafından önceliklendirin: bazı müşteriler, biranın yalnızca son kullanma süresinin% 50'sinden fazlası ile gönderilmesini gerektirir. Vs vs.

Darboğazları keşfedin (eh), bu noktalara var olmayan makineler ekleyerek alternatif planlar yapın , daha sonra yeni makineler almayı önermek için en iyi sanal senaryo kullanılabilir.

Yeterince zor mu, yoksa sana bir tekstil fabrikasının nasıl çalıştığını söylemeliyim ?

(Kişisel not: Web, banka ve lojistik zorlayıcı alanlardır, ancak imalat sorunlarına kıyasla bebek oyuncaklarıdır.)

Feragatname: güvenlik nedeniyle sayılar çarpıtılmış, büyüklük sırası gerçek.


İşvereniniz için böyle bir şey veya böyle bir şeyi çözmek için bir araç üzerinde mi çalışıyorsunuz?
highBandWidth

1
Üretim lojistik büyüktür. Bu açıdan finanstan kesinlikle daha zor. Ama en azından rastgele denklemler ve gevşek tanımlanmış çalışma düzenleriyle değil, tanımlanmış problemlerle ilgilenir!
Michael K

1
En uygun kaynaklara sahip her türlü zamanlama algoritması muhtemelen NP-komple olan sırt çantası sorununa eşdeğerdir .
Scott Whitlock

Bir arkadaşım yıllar önce Excel + VB'de bir DP / SP sistemi oluşturdu. Otomatik planlama içermiyor, uygulama Excel için çok şişman. Bu nedenle, MySQL / PHP / AJAX tabanlı işbirliğine dayalı genişletilebilir hale getirdik (bkz: veri akışı - aka. Akış tabanlı programlama - yaklaşım) elektronik tablo çerçevesi (ben) ve XLS sürümünden (arkadaş) biz mantığını benimsedik . Otomatik planlamayı da uyguladık (arkadaş). Elektronik tablo yazmak çılgınca bir fikirdi, ama işe yarıyor. En iyi bölüm: XLS-> SQL anahtarı biraz harika! Herhangi bir araç / platform (PHP, Java, istediğimiz) kullanarak verilerle (örneğin otomatik pilot) her şeyi yapabiliriz.
ern0

@ ern0, NP-tam / NP-zor dahi temelde nasıl birkaç kısa keser atıfta varsayalım tüm olanakları iyi birer birer çalışmak yerine almaya muktedir. Teorisyenler kısa yolları bulmak için çok çaba harcıyorlar, örneğin ABC yolunun her zaman doğrudan AC'den daha uzun olacağını bilersek, daha hızlı hale getirebilir ve optimal değerin% 50'sinde olduğunu kanıtlayabiliriz . Vb
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.