NP eksiksizliğinin öğretilmesi - Turing indirimleri vs Karp indirimleri


25

Bilgisayar bütünlüğü uzmanlarına NP eksiksizliği öğretmenin en iyi yolunu sormakla ilgileniyorum. Özellikle, Karp azaltmalarını kullanarak mı yoksa Turing azaltmalarını mı kullanmalıyız?

NP bütünlüğü ve azaltma kavramlarının her bilgisayar biliminin bilmesi gereken bir şey olduğunu hissediyorum. Ancak, NP'nin eksiksizliğini öğretirken, Karp azaltmalarının kullanımının bazı olumsuzlukları olduğunu fark ettim.

Her şeyden önce, Karp azaltma bazı öğrenciler için gereksiz yere kafa karıştırıcı gibi görünüyor. Bir indirgemenin sezgisel nosyonu "X problemini çözmek için bir algoritmam varsa, onu da Y problemini çözmek için kullanabilirim" dır. Bu çok sezgiseldir - ancak Turing azaltma işlemlerine Karp azaltma işlemlerinden çok daha iyi eşler. Sonuç olarak, NP'nin bütünlüğünü kanıtlamaya çalışan öğrencilerin sezgileriyle sapmış olmalarını ve yanlış bir kanıt oluşturduklarını görüyorum. Her iki azaltma türünü öğretmeye çalışmak ve Karp azaltmalarının bu yönünü vurgulamak bazen gereksiz bir formalizm gibi hissediyor ve gereksiz sınıf zamanını ve öğrencinin kaçınılmaz bir teknik ayrıntı gibi hissettirdiği konusuna dikkat çekiyor; bu daha kısıtlı bir indirgeme nosyonunu neden kullandığımız belli değil.

Karp indirimleri ve Turing (Cook) indirimleri arasındaki farkları ve bunların farklı NP-bütünlüğü kavramlarına neden olduğunu anlıyorum. Karp azaltmalarının bize karmaşıklık sınıfları arasındaki ayrımların daha ince bir ayrıntı verdiğini fark ediyorum. Dolayısıyla, karmaşıklık teorisinin ciddi bir şekilde incelenmesi için, Karp azaltmalarının kesinlikle doğru araç olduğu açıktır. Ancak, bunu öğrenen ve hiçbir zaman karmaşıklık teorisine girmeyecek olan bilgisayar bilimi öğrencileri için, bu ince ayrımın kritik olup olmadığına, maruz kalmaları açısından kritik olup olmadığından emin değilim.

Sonunda, bir öğrenci olarak, "tautology" gibi bir sorunla karşılaştığımda şaşkın hissettiğimi hatırlıyorum - örneğin, bir boolean formülü verildiğinde, bunun bir totoloji olup olmadığını kontrol edin. Kafası karıştıran bu sorunun açıkça zor olduğuydu: bunun için herhangi bir polinom-zaman algoritması P = N P anlamına gelirdi.P=N-P; ve bu problemi çözmek, açıkça totoloji problemini çözmek kadar zor. Bununla birlikte, sezgisel olarak totoloji tatmin edilebilirlik kadar zor olsa da, totoloji NP-zor değildir. Evet, bugün durumun neden böyle olduğunu anlıyorum ama o zaman bununla şaşkın kaldığımı hatırlıyorum. (Sonunda anladığımda aklımdan geçen şey şuydu: Neden yine de NP-sert ile NP-sert arasındaki bu ayrımı çiziyoruz? Bu yapay olarak pratik olarak çok motive değil gibi görünüyor. Neden NP'ye odaklanıyoruz? eş-NP'den daha eşit mi görünüyorlar.Önemli bir perspektiften, pratik bir perspektiften, ko-NP-sertliği, temel olarak NP-sertliği ile aynı pratik sonuçlara sahip gibi gözüküyor, öyleyse neden hepimiz bu ayrımdan vazgeçiyoruz? Evet, biliyorum cevaplar, ancak bir öğrenci olarak, bunun konuyu daha heyecan verici ve kötü motive edici hissettirdiğini hatırlıyorum.)

İşte benim sorum bu. NP-bütünlüğünü öğrencilere öğrettiğimizde, Karp azaltmalarını mı yoksa Turing azaltmalarını kullanmayı mı öğretmek daha iyi? Turing azaltmalarını kullanarak NP eksiksizliği kavramını öğretmeye çalışan var mı? Eğer öyleyse nasıl gitti? Turing azaltmalarını kullanarak kavramları öğretip Karp azaltmalarıyla ilgili kavramsal sorunları atlasaydık, bariz olmayan herhangi bir tuzak veya dezavantaj olur mu?


İlgili: Karp azaltmalarını literatürde kullanmamızın sebebinin NP sertliği ile yardımcı NP sertliği arasında ayrım yapmamızı sağladığından dolayı, buraya ve buraya bakın . Ancak, bu kabiliyetin, her CS uzmanı tarafından alınması gereken bir algoritma sınıfının öğrenme hedefleri için kritik olup olmadığına dair pedagojik bir perspektife odaklanmış herhangi bir cevap vermiyor gibi görünmektedir. Benzer bir tartışmaya sahip olan sstheory.SE hakkında da bakınız .


Motivasyonel Gözlem: NP'deki bir soruna dönüşmenin azaldığı olduğu bilinmemektedir . XNP

1
@RickyDemer, anlaşıldı - ama bir problemi göstermeye çalıştığımız zaman, NP'de olup olmamasını gerçekten umursamıyoruz , bu yüzden beni süper etkili bir şekilde motive etmiyor. Ve, bir sorunu gösteren sert NP, vb NP tamlığı NP-sertlik, ana uygulama olduğuX
DW

1
Bu kadar bir fark görmüyorum. Cook, "diğer sorunların çözümünü çağırmak" fikri, programlama için doğaldır , ancak sorunlu durumlar arasında daha soyut bir arka plana (bazılarının altında ayrı matematik) sahip olan insanlar için de doğaldır.
vonbrand

Yanıtlar:


10

Çok kesin olarak Karp (bir-bir) indirimlerini kullanmayı öğrettiğimi söyleyebilirim. Çok zamanlı Turing azaltmalarının (Cook) kullanılmasının faydalarından bağımsız olarak, Karp azaltmaları standart modeldir.

Herkes Karp'ı ve Cook öğretiminin ana sorununu kullanır; bir ders kitabı okuduğunda veya konuyu sizin tarafınızdan öğretilmeyen biriyle tartışmaya çalıştığında, tüm öğrencilere patolojik olarak karıştığı bir sınıfla karşılaşırsınız.

Cook indirimlerinin birkaç açıdan daha mantıklı olduğu ve NP-sertliği ile coNP-sertliği arasında pratik anlamda, her ikisinin de demek istediği anlamında hiçbir farklılık olmadığı konusunda hemfikirim. ”Bu sorun oldukça zor ve Büyük örneklerle başa çıkabilen genel, verimli, kesin algoritma. " Öte yandan, NP ve coNP arasındaki ayrım tamamen Karp azaltmalarına dayanan bir teorinin eseri değildir: sık sık 3 renklendirilemez olan veya her bir  köşeli kümenin içerdiği grafikler hakkında konuşmazsınız . en az bir kenar. Her nasılsa, sorunun "doğal" versiyonu genellikle coNP'den ziyade NP olarak gözüküyor.k


7

Her ikisine de öğretmek daha iyidir ! Bir bilgisayar bilimi uzmanı ikisini de bilmeli.

NP'nin bütünlüğünü öğretmek için Cook indirimlerini kullanan hiç kimseyi tanımıyorum, karmaşıklık teorisyenleri açıkça görmüyor, karmaşıklık teorisyenleri tipik olarak Karp'ın makalesinden bu yana standart tanım olanı takip ediyor ve tüm ders kitaplarında (bildiğim kadarıyla) kullanılıyor. Standart terminolojiyi izlemezseniz, bu durum onlar için daha sonra kafa karışıklığına neden olacaktır.

Aşçı indirimleri, esas olarak kara kutu alt yordamları kullanan sorunları çözmektedir. Öğrencilerinizin programlama deneyimi varsa, açıklamak ve motive etmek kolaydır. Bunlar önemlidir çünkü Cook indirimleri olmadan arama sorunları, optimizasyon sorunları vb. Arasındaki indirimleri tartışamazsınız.

N-PN-PPN-PN-P

N-PcON-PN-PN-PN-PPN-P

xbirf(x)B


2
NPNPNPNP

@DW yorumunuzda (ikinci ve üçüncü) "Karp" yerine "Aşçı" mı demek istediniz? Sorunların Cook'u kullanmanın zor olduğunu hala kanıtlayabilirsiniz, sorun bu değil. Mesele şu ki, NP onların altında kapalı değil, yani Cook azaltmaları, problemlerin doğrulanabilirliğini etkili bir şekilde korumuyor.
Kaveh

2
Hata! Evet, Cook'u kastettim, Karp'ı değil. (ar! Hangi pedagojik veya kavramsal sorunları yaratır? Böyle algoritmalar öğretirsek ve NP'nin Cook indirimleri altında kapalı olmadığını kabul etmiş / kabul etmiş olsaydık olumsuz sonuçlar neler olurdu? Örneğin, öğrenciler arasında bazı kavramsal kavramsal yanlış anlamalara neden olur mu?
DW

-3

Bir indirgemenin sezgisel nosyonu "X problemini çözmek için bir algoritmam varsa, onu da Y problemini çözmek için kullanabilirim" dır.

Bu özel öğretim sorununa yaklaşmanın ilginç bir yolu, NP bütünlüğünün kararsızlıkla benzerlik ve benzerliklerinin olduğunu ve bunun da sezgisel olmadığını fark etmektir. Öğrenciler sınıfa ancak hiç durmayan algoritmaları duyarak girerler. ancak, TCS'nin temel teoremi, garantili bir çözümü olmayan sorunların var olduğu, yani durdurma problemidir. ve aslında çözülemeyen problemler, uzlaşılmış olmaktan uzak durmaya başlayabilir ve görünüşe göre biraz belirsizdir.

bu nedenle, teori bize hesaplamayı temelde bazı durumlarda bir cevap getirebilecek bir süreç olarak görme yolunu söylüyor . diğer durumlarda, olmayabilir. NP'nin eksiksizliği ve karar verilebilirliği için temel ve en genel soru “ YP zamanında geri dönen bir algoritma var” dır . fakat bu N, P zamanında dönen bir algoritma hakkında hiçbir şey söylemez . bir algoritma Ybir vakada P zamanında geri dönebilir ancak diğer durumlarda bir cevap döndürmeyebilir. Teori bize burada çok dikkat etmemiz gereken belirgin bir fark olduğunu söylüyor. Sezgisel değilse, temel sezgilerimizin yeniden ayarlanması gerektiği anlamına gelir (genellikle teorik öğretimde olduğu gibi).


Başka bir deyişle, görünüşe göre YP zamanında geri dönen , ancak geri dönmek P zamanından "daha uzun" olan algoritmalar da mevcut olabilir Nve teori cevap vermesi gereken süre boyunca / yönelimli / odaklanmaya dayanmaktadır Y.
vzn

1
Beşten fazla program yazmış olan herhangi bir öğrenci, doğrudan kişisel deneyimden "durmayan bir algoritma" kavramına aşinadır.
David Richerby

sadece coNP'yi günlük deneyime / analojilere dayanarak istenildiği gibi daha sezgisel bir şekilde tanımlamaya çalışmaktan etkileniyorum. her zaman kendimi de sezgisel bulmamıştım daha iyi bir yolu olan var mı?
vzn
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.