İlginç kombinasyonel optimizasyon problemleri üretmek


9

Meta sezgisel tarama üzerine bir ders veriyorum ve proje terimi için klasik kombinatoryal problemlerin ilginç örneklerini üretmem gerekiyor . TSP'ye odaklanalım. ve daha büyük boyutlu grafiklerle mücadele ediyoruz . Tabii ki rastgele bir alınan değerlere sahip bir maliyet matrisi içeren bir grafik oluşturmaya çalıştım ve (beklendiği gibi) yol maliyeti için histogramın (çok sayıda rastgele yol örnekleyerek çizildi) çok (normal dağılım dar olan ama civarındadır ). Bu, bence, sorunun çok kolay olduğu, çünkü çoğu rastgele yol ortalamanın altında olacağı ve minimum maliyet yolunun rastgele bir yola çok yakın olduğu anlamına gelir.200U(0,1)μ 100σ4

Bu yüzden aşağıdaki yaklaşımı denedim: matrisini ürettikten sonra , grafik etrafında uzun bir rastgele yürüyüş yapın ve rastgele ( ile Bernoulli ) kenarın değerini ikiye katlayın veya yarıya indirin. Bu sonuçta sıfır ulaşan tüm değerleri, düşük eğilimindedir, ancak adımların sadece sağ sayısını alırsak, ben bir dağılım elde edebilirsiniz civarında ve etrafında .U(0,1)p=0.5μ2σ1

Sorum şu, bu ilginç bir problem için bile iyi bir tanım mı? İdeal olarak, çok modlu (en yaygın mahalle işlevleri için) ve minimum değere yakın çok az yolu olan bir örnek isterim, böylece en rastgele çözümler en uygun olandan çok uzak olacaktır. İkinci soru, bu tanıma göre, bu özelliklere sahip örnekleri nasıl oluşturabilirim?


3
OR'de incelendiği gibi TSP kıyaslama kütüphanelerini mi arıyorsunuz ( örn. Applegate ve arkadaşlarına göre TSP üzerindeki çalışmaları arayın, örneğin burada )?
Neal Young

2
Birçok örneği olan TSPLIB var.
adrianN

Teşekkürler, bağlantıyı kontrol ettim ve yardımcı oldum, ancak sorum belirli bir örneği çözmek istediğim için değil, daha iyi genişletilebilir problemler, TSP dışındaki diğer sorunlar.
Alejandro Piad


1
@Alejandro, Gizli klik sorunu aradığınıza bir örnek olabilir. Ayrıca, hangi Satisfiability örneklerinin zor olarak değerlendirildiğini araştırabilirsiniz .
Neal Young

Yanıtlar:


6

Daha zor vakalar üretmeye yönelik genel bir yaklaşım şöyledir:

  • Rastgele bir sorun örneğiyle başlayın.
  • Bir "gizli arka kapı" gömün: rastgele iyi bir çözüm seçin (zaten var olan herhangi bir çözümden çok daha iyi olacaktır) ve bu çözümü zorla sorun örneğine gömmek için sorun örneğini değiştirin.

Örneğin, TSP için aşağıdakine benzer bir şey yapabilirsiniz. Rastgele bir maliyet matrisi seçerek rastgele bir problem örneği oluşturun . Daha sonra, içinde bir çok-daha iyi bir çözüm gizlemek için sorun örneği ayarlamak: rastgele ziyaretler, her köşe tam olarak bir kez bir tur seçmek, ve bu tur kenar ağırlığını azaltan (örn gelen rastgele oluşturmak burada ; mevcut ağırlığı azaltın veya mevcut kenarı bir miktar sabit olasılıkla değiştirin). Bu ayarlama prosedürü, en iyi çözümün yüksek olasılıkla seçtiğiniz özel tur olmasını sağlar. Şanslıysanız ve makul bir yerleştirme seçerseniz, özel çözümü nerede sakladığınızı tanımak o kadar kolay olmayacaktır.U(0,1)U(0,c)c<1

Bu yaklaşım, gizli kapı tuzağı hakkında bilgi sahibi olmadan sorunun çözülmesinin zor olduğu, gizli kapı kapısının bilgisi ile problemin çok kolaylaştığı kriptografideki genel fikirlerden kaynaklanmaktadır. Gizli tuzakları çeşitli zor sorunlara gömmek için birçok girişimde bulunuldu (kapak kapısı eklendikten sonra bile sorunun sertliğini korurken), karışık derecelerde başarı ile. Ancak bu genel yaklaşım, sizin amaçlarınız için uygulanabilir gibi görünmektedir.

Ortaya çıkan sorun örnekleri zor olabilir , ancak herhangi bir pratik açıdan ilginç olacaklar mı? Bilmiyorum. Beni aşar. Bana oldukça yapay görünüyorlar, ama ne biliyorum?

Birincil hedefiniz, pratik olarak alakalı ve TSP'nin gerçek dünyadaki uygulamalarını temsil eden sorunlu örnekleri seçmekse, önerim tamamen farklı bir yaklaşım olacaktır. Bunun yerine, TSP'nin gerçek dünyadaki uygulamalarını inceleyerek başlayın, sonra bu sorunların temsili örneklerini arayın ve bunları karşılık gelen TSP problem örneğine dönüştürün - böylece gerçek dünya probleminden türetilen problem örnekleri ile çalışıyorsunuz.


Bu yaklaşımı çok seviyorum, gerçekten ortaya çıkmaya çalıştığım şeye çok yakın ve farklı sorunlara oldukça uyarlanabilir görünüyor. İlk motivasyonum öğrenciler için test problemleri yapmaktı, bu yüzden gerçek kelime sorunlarını almama rağmen, bu oldukça yapay durum için bana iyi hizmet veriyor (öğrenci algoritmalarını derecelendirmeye çalışıyorum). Her durumda, bunu araştırma ihtiyaçlarım için de uyarlamaya çalışacağım, ancak bu şekilde oluşturulan örneklerin yeterince temsili olup olmadığını belirlemek için daha yakından bakmanız gerekecektir. Çok teşekkürler, +1 ve kabulümü aldın.
Alejandro Piad

3

genellikle çözümlerin doğası üzerinde yüksek kontrol sağlayan bir yaklaşım, bir NP tam probleminden diğerine dönüşümdür. şimdi sorunuzda "ilginç" i istatistiksel olarak tanımlayabilirsiniz, ancak başka bir düzgün yaklaşım da alandan klasik problemleri kullanmaktır. benim favorim faktoring / SAT. çok sayıda faktöre sahip "düz" sayıları ya da yalnızca iki "faktöre" (bir ve asal) sahip asal sayıları bulmak önemsizdir. faktoringi çözmek için SAT örneğini oluşturun ve çözümler faktörlerdir (aslında faktörlerin permütasyonlarıdır, fakat aynı zamanda önceden sayılması zor değildir).

bu yaklaşım altında, P zamanında çözülemeyen "ilginç" bir doğal tanım vardır. ve bu yaklaşımın pürüzsüz olmayan sayıları çarpanlara ayırmak için zor örnekler üretmesi garanti edilir, aksi takdirde karmaşıklık teorisindeki en açık soruyu, yani çarpanlara ayırma sertliğini çözer .

o zaman muhtemelen probleminize, bu durumda TSP'ye dönüştürün. Bu cevabı doldurmak için doğrudan SAT'den TSP'ye dönüşüm yapmak iyi olurdu, orada olduklarını düşünün, ancak onlara aşina değilim. ancak, bu soruda SAT'a çarpanlara ayırmaya ilişkin bazı referanslar bulunmaktadır: tamsayı çarpanlara ayırma problemini NP tam problemine indirgemek

faktoringden hoşlanmıyorsanız, çeşitli nedenlerden ötürü önce SAT'da örneklerin oluşturulması yine de tercih edilebilir. kolay-zor-kolay geçiş noktasında, vb. merkezde ayarlanmış rastgele SAT örnekleriyle başlayabilirsiniz. veya topluluk tarafından oluşturulan DIMACS zor örneklerinden çalışabilirsiniz . veya SAT'de başka mantıksal "programlar" oluşturun.


1
Dönüşüm yaklaşımını seviyorum, ancak özellikle TSP ile ilgili daha fazla bağlantı sağlamıyorsunuz, ancak yine de fikir için teşekkürler, daha derinlemesine keşfedeceğim. + 1'imi aldın.
Alejandro Piad

1
@alejandro thx ok bu konuda bir bağlantı heres. bkz. örneğin burada 28. slayttan başlayarak [lisans sınıfı!], CMSC 451: SAT, Boyama, Hamilton Döngüsü, TSP Slaytları: Carl Kingsford . SAT → Hamilton çevrimi (TSP). istenirse literatürde daha verimli (daha az ek yük) dönüşüm yaklaşımları veya diğer özel yönlerle olabilir. işinizi daha fazla duymak dileğiyle, belki burada veya
blogumda

1
Ben çok yüksek düzeyde pdf kontrol ama yeterince anlaşılır. Şimdilik @DW cevabı ile ihtiyacım olanı aldım, ancak yaklaşımınız benim için çok ilginç görünüyor. Kendi başıma denemek zorunda kalacağım. İndirimi daha önce görmüştüm (bir karmaşıklık lisans dersinde), ancak özellikle zor örnekler oluşturmak için bunun gerçek bir uygulamasını düşünmemiştim. Optimizasyon ve meta-sezgiye uzun vadeli bir ilgi duyuyorum ve ilgi alanlarımdan biri ilginç kıyaslama sorunları yaratmakla ilgili. BTW, sadece blog kontrol, emin geri gelecek !!!
Alejandro Piad
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.