Dilleri Karmaşıklık teorisinde neden kullanmalı?


10

Neyin hesaplanabileceğini, ne kadar hızlı, ne kadar bellek ve hangi hesaplama modeliyle çalıştığını inceleyen hesaplama teorisine girmeye başlıyorum.

Oldukça basit bir sorum var, ama bazılarınızın arkasındaki kavramı anlamama yardımcı olabileceğini umuyorum:

Neden her şey DİL (yani normal diller ve bağlamdan bağımsız diller) kavramı ve tanımı etrafında toplanıyor? Ve bunlar bir algoritmanın karmaşıklığını ve bunları çözmek için olası hesaplama modellerini nasıl ilişkilendirir ve tanımlar?

Bu tür ilgili soruları okudum:

ama yine de şüphelerime bir cevapım yok, çünkü neden önemli olduklarını (anladığım) pratik bir gerekçe sunuyorlar, ancak karmaşıklık teorisinin neden onlara dayandığını anlamama yardım etmiyorlar.


1
Bu bizim referans sorularımız tarafından kapsanmıyor mu?
Raphael

@Raphael - Beni bu soruya gösterdiğin için teşekkürler, bu harika bir referans! Şu anda okuyorum, ama şu anda bunun cs.stackexchange.com/questions/13669/… sorusuna bir ek olabileceğine inanıyorum . Bana zaten cevaplanmış gibi görünmüyor, aksi takdirde
Matteo

3
Bir dil, sonlu dizeleri 1 veya 0 ile eşleştiren bir işlevle aynı olan sonlu uzunluk dizelerinden oluşan bir kümedir. Dolayısıyla, gerçekten "karar sorunları hakkında neden karmaşıklık teorisinin bu kadar çok olduğunu" soruyorsunuz ve bunun cevabı en basit (önemsiz) tür hesaplama görevleri ve genellikle daha karmaşık hesaplama görevleri karar sorunlarına indirgenebilir.
Sasho Nikolov

Yanıtlar:


10

Çünkü diller bir "problem" kavramını resmileştirmenin en iyi (tek?) Yolu.

L

1061091012

İkincisi, dillerin sadece veri için güzel bir soyutlama olmasıdır. Kanıt yapabileceğiniz bir şeye, resmi olarak modelleyebileceğiniz bir şeye ihtiyacınız var. Giriş ve çıktınızı bir dize olarak kodlamak, artık bellekteki bitlerle değil, belirli özelliklere sahip matematiksel nesnelerle uğraştığınız anlamına gelir. Onlar hakkında mantık yürütebilir ve onlar hakkında resmi ve çok basit bir şekilde kanıt sunabilirsiniz.

k

Sanırım işte size meydan okuma: dil olmayan problemleri matematiksel olarak tanımlamanın yolunu bulun. Dillerin özel olup olmadığını bilmiyorum, ama sanırım elimizdeki en basit araç, başa çıkmanın en kolay yolu.


7
Sorunları formüle etmenin tek yolu diller değildir. Örneğin, kromatik sayı gibi bir şeyi grafiklerden doğal sayılara bir işlev olarak resmileştirebilirsiniz . Ve aslında, fonksiyon ve optimizasyon problemleri üzerinde oldukça fazla çalışma var.
David Richerby

2
Doğru, ancak bir dil veya makine kavramı olmadan kromatik sayıyı hesaplamanın karmaşıklığıyla nasıl başa çıkacaksınız?
jmite

1
Cevabınız için teşekkürler, anladım. Ancak hala 2 sorum var: 1) dilleri kullanmamız bir sorunun karmaşıklığı veya karar verilebilirliği ile ilgili sonuçları etkilemez mi? yani bir problem kayan nokta aritmetiğiyle çözülebilir ancak tamsayı aritmetiğiyle (yani tamsayı programlama) çözülebilir mi? 2) Herhangi bir veri türünden hepsini tanımlayan benzersiz bir dile bu eşlemeyi nasıl yapıyoruz (bir problemin karmaşıklığını ve belirli girdiden soyutlamayı değerlendirmek istediğimizden)? Tekrar teşekkürler!
Matteo

3
@jmite Bir makineye ihtiyacınız var, evet, ama mutlaka bir dil değil.
Raphael

2
@ Genellikle makinelerin çalışma süresi olarak tanımlanan birçok karmaşıklık sınıfı tanımlayıcı karmaşıklık olarak nitelendirilebilir.
Sasho Nikolov

7

Sorunuzun iki temel cevabı var:

  1. Karmaşıklık teorisinde dillerden daha fazlası vardır, örneğin işlev sınıfları, aritmetik karmaşıklık ve yaklaşık algoritmalar ve uyumsuzluğun alt alanları.

  2. Tarihsel nedenler: Hesaplanabilirlik teorisindeki temel makalelerden biri Hilbert'in Entscheidungsproblem'i (bir tür durdurma problemi) tartışmaktı.

Ne yazık ki ikincisi hakkında çok şey bilmiyorum, ama birincisini genişletmeme izin verin.

Dillerin ötesinde karmaşıklık

LMfMxMfM(x)L.

Aritmetik devre karmaşıklığı (veya cebirsel karmaşıklık teorisi ) çeşitli polinomları hesaplamanın karmaşıklığıyla ilgilenir. Buradaki önemli karmaşıklık sınıfları VP ve VNP'dir ve geometrik karmaşıklık teorisi , cebirsel geometri ve temsil teorisi kullanarak VP ve VNP'yi (ve daha sonra P ve NP) ayırmaya çalışan önemli bir projedir.

Cebirsel karmaşıklığın bir diğer önemli örneği hızlı matris çarpımıdır. Burada temel soru iki matrisi ne kadar hızlı çoğaltabiliriz ? Benzer sorular, tamsayıları ne kadar hızlı çoğaltabileceğimizi, tamsayıları önceliklilik için ne kadar hızlı test edebileceğimizi (bu bir karar problemidir!) Ve tamsayıları ne kadar hızlı faktörleştirebileceğimizi soruyor.

Konveks optimizasyon , verimli bir şekilde çözülebilen (veya neredeyse çözülebilen) optimizasyon problemleriyle ilgilenir. Her ikisi de verimli algoritmalara sahip olan doğrusal programlama ve yarı-bit programlama. Burada hem optimum hem de optimum çözümün kendisi ile ilgileniyoruz. Genellikle birden fazla en uygun çözüm olduğu için, en uygun çözümü hesaplamak bir karar sorunu olarak iyi temsil edilmez.

lnn


3

Bu soruya kategori teorisi açısından bakalım. Karar problemleri (veya diller) daha sonra bir kategorinin nesnelerine karşılık gelecek ve iki problem arasındaki izin verilen indirimler bir kategorinin morfizmlerine (oklar) karşılık gelecektir.

Diller hakkında konuşmak, dillerin denkliğinin iyi tanımlanmış olması (yani genişlemeli eşitlik) avantajına sahiptir. İlişkisiz iki sorun aynı dile yol açabilir ve sonra bunları eşdeğer olarak kabul etmemize izin verilir. Bunun yerine izomorfik problemler hakkında konuşmak istesek, iki problem arasındaki izin verilen morfizmi tanımlamamız gerekirdi. Ancak izin verilen morfizmler, dikkate alınan gerçek karmaşıklık sınıfına bağlıdır, bu da bu yaklaşımı farklı karmaşıklık sınıflarını karşılaştırmak için daha az uygun hale getirir.

İzomorfik problemler kavramı normalde eşdeğer diller kavramından daha kaba olacaktır, yani ilişkili diller eşdeğer olmasa bile iki problem izomorfik olabilir. Daha da kötüsü, izin verilen morfizmler için genellikle izin verilen izomorfizmlerle ilgili olarak kabul edilen farklı makul kavramların olmasıdır. Dile odaklanmak, farklı makul indirgeme kavramlarından (Karp azaltma ve Aşçı azaltma gibi) söz edene kadar bu tür sorunları ertelemeye izin verir.


Bu soruya cevap vermiyor gibi görünüyor. Hala ilgili kategorideki nesneler olarak ne kullansın problemler arasındaki morfizmlerden bahsedilebilir.
David Richerby

@DavidRicherby Karşılaşmak istediğim nokta, uygun morfizmleri çivilemenin, uygun nesneleri (= diller) çivilemekten daha zor olduğudur. (Özellikle normalde birden fazla uygun morfizm kavramı olduğu için.) Morfizm olmadan izomorfik problemler (veya algoritmalar) hakkında konuşamazsınız. Ancak, diller hala sorunların denkliği hakkında konuşmanın bir yolunu sunar. Belki bunu doğru bir şekilde açıklamamıştım, ama (benim için) bu, “karmaşıklık teorisinde dil kullanmak” için iyi bir neden.
Thomas Klimpel
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.