Çözülmesi gereken kehanet çağrılarının alt sınırı


9

Kolayca bir egzersiz olan aşağıdaki soru ile karşılaştım (aşağıdaki spoiler).

Bize veriliyor n durma probleminin örnekleri (yani TM'ler M1,...,Mn) ve hangisinin durduğuna tam olarak karar vermeliyiz ϵ. Yani, çıktı almalıyız{i:Mi halts on ϵ}. Durma problemi için bir kehanet verilir, ancak bunu en az defa kullanmak zorundayız.

Bununla yapılabileceğini göstermek zor değil log(n+1) çağırır.

Sorum şu: bir alt sınır kanıtlayabilir miyiz? Böyle bir bağın bulunmasının çok zor olacağından şüphelenmek için bir neden var mı?

Sorunun cevabı (spoiler, fareyle üzerine gelme):

Şu durumu düşünün: 3TM'lere. Bir TM inşa edebilirizH2 koşan M1,M2,M3paralel olarak durur ve en az ikisi durursa durur (aksi takdirde sıkışır). Benzer şekilde, bir TMH1en azından biri durursa durur. Sonra kehaneti arayabilirizH2. Durursa, makineleri paralel olarak çalıştırabilir ve birinin durmasını bekleyebiliriz. Sonuncusunda kehaneti arayabiliriz. Eğer kehanet "hayır" derse, kehanetiH1. Durursa, makineleri duruncaya kadar çalıştırırız ve duran tek makine budur. EğerH1durmaz, sonra durmaz. Bunu şu adrese genişletiyor:n makineleri kolaydır.

Bu soru ile ilgili ilk gözlem, bilgi teorik araçlarını kullanarak çözülmesinin imkansız olduğu, çünkü makineleri kehanetsiz çalıştırarak bilgi edinme yeteneğimize çok önem veriyoruz.


@Kaveh - Neal Young'ın yazdığı gibi, kesin durdurma makineleri setini hesaplamamız gerekiyor.
Mart'ta

Yanıtlar:


11

Sonuç şurada bulunabilir:

Onların kanıtları aslında probleminizin daha azıyla çözülemeyeceğini gösterir. log2nherhangi bir kümeye sorgularX, durma probleminin kendisini bırakalım. Bazı gösterimler için, probleminiz bazen belirtilirCnK veya CnHALT (durdurma sorunu için en sevdiğiniz gösterime bağlı olarak).

Bu ve ilgili birçok sonuç için ayrıca bkz:


10

EDIT: Yanıt verdiğim argüman yanlış değildi, ama biraz yanıltıcıydı, sadece üst sınırın bazıları için sıkı olması gerektiğini gösterdi. n (bu aslında önemsizdir, çünkü n=2 ve sınır 1).

İşte daha kesin bir argüman. Bu gösterir eğer üst sınırılog2n herhangi bir belirli için gevşek n, o zaman herkes için n gereken oracle çağrılarının sayısı O(1).

(Elbette öyle değil O(1), üst sınır asla gevşek değildir! Ama aslında bunu burada kanıtlamıyorum ve soruna başka bir cevap verildiğinde, takip etmeye değmez gibi görünüyor.)

Maksimum çıktıyı hesaplama problemini düşünün :

Verilen n-tuple (M1,,Mn) Turing makinelerinin maksimum çıkışını hesaplayın (çalıştığında duran Turing makinelerinin ϵ). Hiçbiri durmazsa, 0'a dönün.

Bir fonksiyonu olarak n, bu işlevi hesaplamak için gereken en kötü sayıda oracle çağrısı hangisinin nverilen makineler durur. (Hangi makinelerin durduğunu bilirsem, maksimum çıktıyı kolayca hesaplayabilirim. Tersine, hangi makinelerin durduğunu bilmek istersem, sorun ifadesindeki yapıyı takip ederek, makineler yapabilirim{Mi} (i=1,2,,n) nerede Mi hepsini çalıştırır n paralel olarak verilen makineler, ardından durur ve çıkış i Eğer ihiç durmadı. Maksimum çıktı bana duran sayıyı söyleyecektir. Bundan tam olarak hangi durduğunu hesaplayabilirim.)

Şimdi izin ver n0 en küçük tamsayı ol n (varsa) aşağıdakilerin geçerli olacağı şekilde:

kullanma C(n)=max{kZ:2k<n}oracle çağrıları, verilen makinelerin maksimum çıktı hesaplanabilir . (Yani, üst sınır için sıkı değildir .)nn

Açıkça , çünkü . Aslında, de, çünkü , ancak verilen makinenin maksimum çıktısını hesaplamak kararsızdır (oracle çağrıları olmadan). Şimdi daha büyük düşünün :n0>1C(1)=1n0>2C(2)=02n

İddia: Eğer sonlu, sonra, herhangi , tek bir maksimum çıkış hesaplayabilir verilen makineleri torpil aramaları. n0nnC(n0)( , olduğuna dikkat edin .)n0C(n0)=O(1)

Kanıt. . Biz üzerinde indüksiyon ile kanıtlamak . Temel durumlar, ve tanımı gereği .nnn0n0C

, herhangi bir Turing makinesi verildiğinde, sadece çağrılarını kullanarak maksimum çıktıyı hesaplayan TM olsun .Q0n0C(n0)

Herhangi bir . Herhangi bir makine , , maksimum çıktıyı aşağıdaki gibi hesaplayın.n>n0nM1,,Mn

İlk makinelerine . Bu makinelerde çalıştırmayı düşünün . Not bu yapan oracle aramaları ve orada sadece bu çağrılara oracle mümkün tepkiler. Tanım gereği . Let belirtmek inci olası tepkisi. Her , bu makinelerde aşağıdaki gibi simüle eden bir makine oluşturun :M1,,Mn0Q0n0Q0C(n0)n=2C(n0)n=2C(n0)<n0oiii=1,,nMiQ0

TM ( girişinde ):Miϵ

  1. Benzet üzerinde makineleri , ancak bunun yerine kahini çağıran, uygun oracle cevap vermekte varsayalım .Q0n0(M1,,Mn0)oi
  2. Bu simülasyon (örneğin, kehanetin gerçekte geri döneceği şey değilse).oi
  3. Simülasyon alıkoymalarla Eğer izin o maksimum çıkış olmak verilecek diyor.hiQ0
  4. Tüm makinelerini kırlangıç . Bunlardan biri çıktısı , durdurun ve çıktısını .n0(M1,,Mn0)hihi

Şimdi, verilen makine dizisinde , ilk makine yerine bu makine . Bu makine dizisi üzerinde yinelenerek hesaplanan değeri döndürün . (Kehanetin tekrarlamadan önce çağrılmadığına dikkat edin, böylece kehanet sadece temel duruma ulaşıldığında çağrılır.)nn0M1,,Mn0n<n0M1,,Mnn(n0n)<n

İşte bu hesaplamanın doğru olmasının nedeni budur. İçin öyle ki Oracle ile `` doğru 'tepki sorgularına, durdurmak ve orijinal doğru maksimum çıkış verecek makineleri. Bu nedenle, makinelerinin maksimum çıkışı en azından makinelerinin maksimum çıkışıdır . Öte yandan, 4. adımda, hiçbir maksimum çıktıdan daha büyük bir çıktı veremez . Böylece, makinelerinin maksimum çıktısıioiQ0Min0n(M1,,Mn)n0(M1,,Mn0)Mi(M1,,Mn0)n(M1,,Mn) değiştirdikleri makinelerin maksimum çıktısına eşittir . QEDn0

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.