Hesaplanabilir bir sayının rasyonel veya tamsayı olup olmadığını test etmek mümkün müdür?


18

Hesaplanabilir bir sayının rasyonel veya tamsayı olup olmadığını algoritmik olarak test etmek mümkün müdür? Başka bir deyişle, uygular hesaplanabilir sayılar işlevleri sağlamak için bir kütüphane için mümkün olacağını isIntegerya isRational?

Bunun mümkün olmadığını ve bunun bir şekilde iki sayının eşit olup olmadığını test etmenin mümkün olmadığı gerçeğiyle ilgili olduğunu tahmin ediyorum, ancak bunu nasıl kanıtlayacağımı göremiyorum.

Düzenleme: Bir hesaplanabilir sayı bir fonksiyonu verilir f x ( £ değerinin ) bir rasyonel yaklaşımı dönebilirsiniz x hassas olan £ değerinin : | x - f x ( ϵ ) | ϵ , herhangi bir ϵ > 0 için . Böyle bir işlev verildiğinde, x Q veya x Z olup olmadığını test etmek mümkün müdür ?xfx(ϵ)xϵ|xfx(ϵ)|ϵϵ>0xQxZ

computability  computing-over-reals  lambda-calculus  graph-theory  co.combinatorics  cc.complexity-theory  reference-request  graph-theory  proofs  np-complete  cc.complexity-theory  machine-learning  boolean-functions  combinatory-logic  boolean-formulas  reference-request  approximation-algorithms  optimization  cc.complexity-theory  co.combinatorics  permutations  cc.complexity-theory  cc.complexity-theory  ai.artificial-intel  p-vs-np  relativization  co.combinatorics  permutations  ds.algorithms  algebra  automata-theory  dfa  lo.logic  temporal-logic  linear-temporal-logic  circuit-complexity  lower-bounds  permanent  arithmetic-circuits  determinant  dc.parallel-comp  asymptotics  ds.algorithms  graph-theory  planar-graphs  physics  max-flow  max-flow-min-cut  fl.formal-languages  automata-theory  finite-model-theory  dfa  language-design  soft-question  machine-learning  linear-algebra  db.databases  arithmetic-circuits  ds.algorithms  machine-learning  ds.data-structures  tree  soft-question  security  project-topic  approximation-algorithms  linear-programming  primal-dual  reference-request  graph-theory  graph-algorithms  cr.crypto-security  quantum-computing  gr.group-theory  graph-theory  time-complexity  lower-bounds  matrices  sorting  asymptotics  approximation-algorithms  linear-algebra  matrices  max-cut  graph-theory  graph-algorithms  time-complexity  circuit-complexity  regular-language  graph-algorithms  approximation-algorithms  set-cover  clique  graph-theory  graph-algorithms  approximation-algorithms  clustering  partition-problem  time-complexity  turing-machines  term-rewriting-systems  cc.complexity-theory  time-complexity  nondeterminism 

3
Hesaplanabilir sayı nasıl verilir?
Tsuyoshi Ito

10
Sayının nasıl verildiği elbette önemlidir. Aptalca bir örnek olarak, girdi bir tamsayı olsun ya da olmasın bir bayrak içeriyorsa, girdinin bir tamsayı olup olmadığına karar vermek önemsizdir.
Tsuyoshi Ito


3
(1) “Bunun bir tamsayı olduğunu nereden biliyorsun?” Neden umursamalıyım? Operasyonlarla ilgili gereksinimler hakkında hiçbir şey söylemediniz. (2) “Şimdiye kadar iki yanıtı görürseniz, uygulama hakkında hiçbir şeyden bahsetmezler.” Burada “uygulama” ile ne demek istediğinizi veya bu cümlenin neden yorumlarımla alakalı olduğunu bilmiyorum.
Tsuyoshi Ito

16
Umarım cevabım bu tartışmayı yakar. Tsuyoshi, yanılıyorsunuz, hangi işlemlerin hesaplanabilir olduğu önemlidir. Bir boşlukta gerçek sayıları uygulamıyoruz, ama onları manipüle etmek için . Size göre, her şeyi uygulamak için birim tipini kullanabiliriz. Evet, yapabiliriz, ancak o zaman bazı operasyonlar hesaplanamazdı ve tam olarak temsilleri yargıladığımız kriter budur.
Andrej Bauer

Yanıtlar:


32

Gerçek bir sayıyı "temsil etmenin" veya "uygulamanın" ne anlama geldiği konusunda kafa karıştırmak kolaydır. Aslında, temsilin tartışmalı olduğu yorumlarda bir tartışmaya tanıklık ediyoruz. Önce bunu ele alalım.

Bir uygulamanın doğru olduğunu nasıl bilebiliriz?

Bilgisayarda bir şeylerin nasıl temsil edileceğini açıklayan teori gerçekleştirilebilirliktir . Temel fikir olduğunu, verilen bir dizi olduğu , bir veri türü seçmek t alınmak ve her için x X tipi bir değerler kümesi t alınmak fark o. Biz yazma v x X zaman v farkında olduğunu bir değerdir x . Örneğin bir mantıklı uygulanması, (Ben sebepsiz Haskell kullanmak zorundadır) N veri türü olabilir nerede v k N zaman vXτxXτvxXvxNIntegervkNv rakamını değerlendirir (bu nedenle özellikle doğal bir sayıyı temsil etmez ve birbirinden ayrılan bir programı da temsil etmez). Ancak bazı şakacı yürümek ve biz kullanmanızı öneririz olabilir doğal sayıları temsil etmek T r u e42 N ve F bir L ler en N için n 42 . Bu neden yanlış? Bir kritere ihtiyacımız var .k¯-42BoolTrue42NFalsenNn42

"Joker numaraları" durumunda, kolay gözlem toplama işleminin uygulanamayacağıdır. Her ikisinde de temsil edilen iki sayım olduğunu söylüyorum . Toplamları için bir aydınlatıcı verebilir misiniz? Bu, toplamın 42 olup olmamasına bağlıdır, ancak söyleyemezsiniz. Toplama "doğal sayıların ne olduğunun önemli bir parçası" olduğundan, bu kabul edilemez. Başka bir deyişle, uygulama kümelerle değil, yapılarla ilgilidir , yani kümeleri, ilgili yapının da uygulanabileceği şekilde temsil etmeliyiz. Şunu vurgulayayım:False

Çıplak setler değil, yapılar uyguluyoruz. Bu nedenle, uygulamanın doğru olması için tüm yapıyı operasyonlar ve tüm aksiyomlarla birlikte uygulayabilmeliyiz.

Bu ilkeye uymuyorsanız, alternatif bir matematiksel doğruluk kriteri önermelisiniz. Birini bilmiyorum.

Örnek: doğal sayıların gösterimi

Doğal sayılar için ilgili yapı Peano aksiyomları tarafından tanımlanır ve uygulanması gereken kritik aksiyom indüksiyondur (aynı zamanda , halef, + ve × ). Gerçekleşebilirliği kullanarak, tümevarım uygulamasının ne yaptığını hesaplayabiliriz. Bir harita olduğu ortaya çıkıyor ( doğal sayıları temsil eden henüz bilinmeyen veri türü)0+×nat

induction : 'a -> (nat -> 'a -> 'a) -> 'nat -> 'a

tatmin edici induction x f zero = xve induction x f (succ n) = f n (induction x f n). Bütün bunlar gerçekleşebilirlikten geliyor. Bir kritere sahibiz: Peano aksiyomlarının uygulanmasına izin verdiğinde doğal sayıların uygulanması doğrudur. Biz funktor için başlangıç cebri olarak numaralarının karakterizasyonu kullanıldığında da benzer bir sonuç elde edilecektir .X1+X

Reel sayıların doğru uygulanması

Gerçek sayılara ve eldeki soruya dikkat edelim. Sorulması gereken ilk soru "gerçek sayıların ilgili yapısı nedir?" Cevap: Arşimet Cauchy tam sıralı alanı . "Gerçek sayılar" ın yerleşik anlamı budur. Bunu değiştiremezsiniz, sizin için başkaları tarafından düzeltilmiştir (bizim durumumuzda alternatif Dedekind realitelerinin burada düşündüğümüz Cauchy realitelerine izomorfik olduğu ortaya çıkmaktadır.) "Eklemeyi uygulamakla ilgilenmiyorum" veya "siparişle ilgilenmiyorum" demenize izin verilmez. Bunu yaparsanız, buna "gerçek sayılar" dememelisiniz, "doğrusal sıralamayı unuttuğumuz gerçek sayılar" gibi bir şey söylemelisiniz.

Tüm ayrıntılara girmeyeceğim, ancak yapının çeşitli bölümlerinin gerçekler üzerinde nasıl çeşitli işlemler verdiğini açıklayayım:

  • Arşimet aksiyomu yaklaşık işlem olup rasyonel reals yaklaşımları
  • alan yapısı olağan aritmetik işlemleri verir
  • doğrusal sipariş bize x < y test etmek için yarı değerli bir prosedür verirx<y
  • Cauchy eksiksizliği bize fonksiyonu yerine lim : (nat -> real) -> realbir (temsilini) alır hızlı Cauchy dizisini ve sınır döndürür. ( Tüm m , n için | x n - x m |2 dk. ( N , m ) ise dizisi hızlıdır .)(xn)n|xnxm|2min(n,m)m,n

Elimizde olmayan şey , eşitlik için bir test fonksiyonudur. Aksiyomlarda realite için bunun karar verilebilir olmasını isteyen hiçbir şey yoktur . (Buna karşılık, Peano aksiyomları doğal sayıların karar verilebilir olduğunu ima eder ve bunu sadece eğlenceli bir egzersiz olarak kullanarak kanıtlayabilirsiniz ).=eq : nat -> nat -> Boolinduction

İnsanlığın kullandığı realitlerin olağan ondalık ifadesinin kötü olduğu bir gerçektir, çünkü onunla toplama bile uygulayamayız. Sonsuz mantis ile kayan nokta da başarısız olur (egzersiz: neden?). Bununla birlikte, işe yarayan , imzalı rakam temsilidir, yani, negatif rakamlara ve pozitif rakamlara izin verdiğimiz bir rakamdır. Veya yukarıda belirtildiği gibi hızlı Cauchy testini karşılayan rasyon dizilerini kullanabiliriz.

Tsuyoshi temsili de bir şey uygular, ancak R

Bize reals aşağıdaki temsili düşünelim: Gerçek bir bir çift ile temsil edilir ( q , b ) ( q, n ) n, yakınsayan bir hızlı Cauchy dizisidir x ve b olup bir Boolean belirten x bir tamsayıdır. Bunun gerçeklerin bir temsili olması için, toplama uygulamak zorunda kalırız, ancak ortaya çıktığı gibi Boole bayraklarını hesaplayamayız. Yani bu gerçeklerin bir temsili değildir . Ama yine de bir şeyi temsil ediyor, yani Z( RZ ) realitelerinin alt kümesix(q,b)(qn)nxbxZ(RZ). Gerçekten de, gerçekleşebilirlik yorumuna göre, sendikanın hangi kısmında olduğumuzu belirten bir bayrakla bir birlik uygulanır. Bu arada, hariç tutulan orta noktaya inanmadığınız sürece , , R ile eşit değildir. uygulanamaz ve bu nedenle bu tartışma için oldukça önemsizdir. Biz edilir bilgisayarlar tarafından zorla intuitionistically şeyler yapmak.Z(RZ)R

Gerçeğin bir tam sayı olup olmadığını test edemeyiz

Son olarak, sorulan soruya cevap vereyim. Artık gerçeklerin kabul edilebilir bir temsilinin hızlı Cauchy rasyon dizileriyle bir olduğunu biliyoruz. (Önemli bir teorem, kabul edilebilir olan iki gerçek ifadesinin aslında hesaplanabilir şekilde izomorfik olduğunu belirtir.)

Teorem: Gerçeğin bir tam sayı olup olmadığını test etmek karar verilemez.

Kanıt. Bir gerçekin bir tamsayı olup olmadığını test edebileceğimizi varsayalım (elbette, gerçek hızlı bir Cauchy dizisi ile gerçekleşir). İsterseniz çok daha genel bir teorem kanıtlamanızı sağlayacak olan fikir, bir tamsayıya dönüşen tamsayı olmayanların hızlı Cauchy dizisini oluşturmaktır. Bu kolay, sadece x n = 2 - n al . Ardından, Durdurma sorununu aşağıdaki gibi çözün. Turing makinesi verilen T , yeni bir dizisini tanımlayan ( y , n ) , n ile y , n = { x , n ise  T(xn)nxn=2nT(yn)n Yani yeni dizisi dizi gibi görünüyor olduğunu(xn)nsüreceTishal, ama sonra at "sıkışmış" alırxmiseTadımm'dedurur. Çok önemli olarak, yeni dizi aynı zamanda hızlı bir Cauchy dizisidir (ve bunuT'nindurup durmadığınıbilmeden kanıtlayabiliriz). Bu nedenle, sınırını hesaplayabilirizz=limnyn

yn={xnif T has not stopped within n stepsxmif T stopped in step m and mn
(xn)nTxmTmTz=limnynçünkü gerçekleri temsil etmemiz doğrudur. Deney olup bir tamsayıdır. Öyleyse, 0 olmalıdır ve bu sadece T sonsuza dek çalışırsa olur . Aksi takdirde, z bir tamsayı değildir, bu nedenle T durmuş olmalıdır. QED.z0TzT

Alıştırma: yukarıdaki kanıtı rasyonel sayıları test edemeyeceğimizi göstermek için uyarlayın. Sonra, önemsiz olmayan bir şeyi test edemediğimizi göstermek için uyarlayın (bu biraz daha zor).

Bazen insanlar tüm bu test işi hakkında kafaları karışır. Onlar , gerçekliğin bir tam sayı olup olmadığını asla test edemeyeceğimizi kanıtladığını düşünüyorlar . Ama şüphesiz, 42 gerçektir ve bunun bir tamsayı olup olmadığını söyleyebiliriz. Aslında, bulduğumuz herhangi bir gerçek, , 88 ln 89 , e π sin1188ln89 , vb., Tamsayı olup olmadığını mükemmel bir şekilde söyleyebiliriz. Kesinlikle,bizçünkü söyleyebilirimbizekstra bilgiye sahip: Bu realse dizileri olarak bize verilen değil, biz Tsuyoshi biraz hesaplayabilir hangi sembolik ifadeler olarak verilmez. Yakında gerçek hakkında sahip tek bilgilerin yanı kendisine yakınlaşan rasyonel yaklaşımları dizisidir (ve donotdizisini anlatan sembolik bir ifade, ama çıktılar bir kara kutu anlamınangirişi oyunu bırakanların terimininbiz o zaman) makineler kadar çaresiz olacak.eπ163nn

Hikayenin ahlakı

Bir set üzerinde ne tür işlemler yapmak istediğimizi bilmedikçe, bir setin uygulanması hakkında konuşmak mantıklı değildir.


16
Eğer cevaplarım eş olsaydı, sadece bir kere cevap verebilirdim. Ya da en azından bir sonrakini yazmadan önce bir önceki cevabı silmek zorunda kalırdım.
Andrej Bauer

5
@Max: Bu tür ilk teoremler Kreisel, Lacombe ve Shoenfield tarafından verilmiştir (KLS teoremine bakınız). Bağımsız olarak Tsteitin, KLS'yi genelleştiren ve açıkça "her hesaplanabilir harita hesaplanabilir şekilde sürekli" şeklinde bir teorem verdi.
Andrej Bauer

6
Bir ders kitabı yazmam gerekiyor - (Google google google). Tamam, iyi, görev süren var. Göreyim seni!
Jeffε

10
@Tsuyoshi: Soru, bir nitelik olmadan yerleşik "gerçek sayı" ifadesini kullandı. Reel sayıların yapısı standarttır. Diğer yapıları düşünmekte özgürsünüz, ancak standart terminolojiyi yanlış yorumlamakta özgür değilsiniz.
Andrej Bauer

21
Teknik olarak, haklısın, "gerçek" kelimesi kullanılmadı. Ama gerçek sayıların tanımı konusunda yanılıyorsunuz. Ya da şöyle söylerdim: gerçeklerin önce gelen belirli bir küme olduğunu düşünmek kötü bir matematiktir , bunu sadece bir yapı takip eder. Sadece bu yüzden biz, yapıları bakımından, vs. grupları, halkalar, topolojik boşluk tanımlamak gibi gereken doğal sayılar ilk semiring, tam sayılar ilk halka, kesirli ilk alan, reals vardır (bunların genel özellikleri açısından özel nesneleri tanımlamak .....).
Andrej Bauer

10

Bunun kararsız olduğunu düşünme eğilimindeyim:

Let hesaplanabilir bir irrasyonel sayı. Bir TM M düşünün . M'yi ϵ üzerinde çalıştıran ve paralel olarak x'i artan hassasiyetle hesaplayan bir işlev oluşturabilirsiniz . Eğer M alıkoymaların, bu işlem durur x aksi halde devam.xMMϵxMx

Bu işlevin rasyonel bir sayı hesaplayıp hesaplamayacağına karar vermek durma problemine eşdeğerdir.


Cevabınızı anlamıyorum, lütfen biraz daha ayrıntı verebilir misiniz? Bunu durma problemiyle nasıl ilişkilendirdiğinizi anlamıyorum ve daha da önemlisi, durmak için bir nedeni olmadığını düşünüyorum ( x bir tam sayı olsa bile ). Mx
dbarbosa

Tsuyoshi'nin belirttiği gibi cevap, temsil ve hesaplama modeline bağlıdır. Cevabınız doğru şekilde diyorsa, girişleri bunları hesaplayan bir TM tarafından verilen hesaplanabilir gerçek sayılar olarak alırsanız, eşitlik karar verilemez. Bu doğrudur, ancak pratikte kullanılan herhangi bir modele yakın değildir.
Kaveh

2
MMMM

10

Bir gerçekin, sıfıra eğilimli bilinen bazı hesaplanabilir fonksiyonlarla sınırlanan hatayla rasyonel yaklaşımlar dizisi olarak verildiği (tüm bu yaklaşımlar eşdeğerdir ve gerçekler üzerindeki olağan topolojiye karşılık gelir).

Hesaplanabilir fonksiyonlar süreklidir. IsRational ve IsInteger sürekli değildir ve bu nedenle hesaplanamaz.

IsInteger yarı hesaplanabilir: giriş bir tamsayı değilse sonunda "false" çıktısını alacak, ancak girdi bir tamsayı ise sonsuza kadar çalışacak bir yordam vardır. Bu prosedür her bir yaklaşıma bakar ve bağlı hata içinde bir tamsayı olup olmadığını kontrol eder. Sierpiński topolojisini {true, false} (yani {false} açık bir kümedir, ancak {true} değil) üzerinde kullandığımızda bu işlev süreklidir.


Cevap için teşekkürler. Sürekli değil => hesaplanabilir değil anlamıyorum, farkında değilim (hatırlayamıyorum) bir (muhtemelen yaygın olarak bilinen) teorem kullandığınızı tahmin ediyorum. Bu adım hakkında daha ayrıntılı bilgi verir misiniz?
dbarbosa

1
"computable => sürekli" bir halk teoremi gibi görünüyor - Orijinal bir alıntı bulamıyorum. Sonsuz nesneler üzerinde hesaplama teorisi ve topolojiye bağlantılar Brattka ( math.uni.wroc.pl/~pkowa/slides/brattka.pdf ) tarafından hazırlanan bu ders slaytlarında oldukça iyi açıklanmıştır (IMO ). Slaytlardaki öneri 2, doğal diziler üzerindeki tüm hesaplanabilir fonksiyonların süreklilik arz ettiğini; Teorem 12 ile birleştiğinde, diğer tip fonksiyonların sonucu elde edilir.
Maksimum

6

Belirli bir hesaplanabilir sayının sıfıra eşit olup olmadığı doğrulanamaz .

(Yani rasyonel yaklaşım kâhin, denediğiniz her ε için 0 döndürür? Belki de yeterince küçük vermediniz ε.)

Bu nedenle, -½ ve + ½ arasında verilen bir hesaplanabilir sayının bir tamsayı olup olmadığına karar verilemez.


2

Hesaplanabilir bir fonksiyon sürekli olan fonksiyondan daha güçlüdür, yani herhangi bir hesaplanabilir fonksiyonun bilgi topolojisinde sürekli olması gerekir.

görmek istersiniz.F:R{Yes,No}

F(r)={YESrQNOo.w.

hesaplanabilir.

Yazdıklarınıza benzer şekilde, gerçek sayıların kara kutular tarafından verildiğini ve gerçek bir sayı kara kutu varsayalım.rk2nr[k2n,k+12n]n

O zaman işleviniz sürekli değildir ve bu nedenle hesaplanamaz.

M0n[12n,12n]MMmM[12m,12m]MMNOYESM[12m,12m] and M will incorrectly answer YES since it will get exactly the same information from the black-box. Therefore M cannot solve the problem correctly.

The proof that any computable function needs to be continuous is similar.

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.