Zaman karmaşıklığını elde etmek için lambda matematiği kullanıyor musunuz?


Yanıtlar:


22

Ohad, lambda hesabının karmaşıklık sınıflarından bahsetmek için bir temel teşkil ettiği sorunlar konusunda oldukça haklıdır. Lambda matematiğindeki indirgenebilirlik karmaşıklığının karakterize edilmesi üzerine, özellikle de Lèvy'in doktora tezinden elde edilen etiketli ve optimal indirgeme çalışmaları üzerine yapılan çalışma hakkında oldukça fazla bir çalışma yapılmıştır. Genel olarak konuşursak, lambda matematiği için uygun maliyetli modeller, tüm beta azaltmalarına sabit bir ağırlık vermemelidir: sezgisel olarak, büyük bir subterm'i birçok farklı şekilde kapsamlaştırılmış yerlere koymak, küçük bir K redex kontratı yapmaktan daha pahalıya mal olmalıdır, farklı yeniden yazma stratejileri altında maliyet değişmezliği, bu gerekli hale gelir.

İki bağlantı:

  1. Lawall & Mairson, 1996, İyimserlik ve verimsizlik: lambda hesabının maliyet modeli nedir? (.ps.gz) - Maliyet modelinin seçimine ilişkin sorunların ve neden pek çok makul fikrin işe yaramadığını gösteren seminal araştırma.
  2. Dal Lago ve Martini, 2008, Makul bir makine olarak zayıf lambda matematiği - Literatürün iyi bir tartışması ile birlikte, uygun fiyatlı lambda matematiği için maliyet modeli sunar.

1
İlginç referanslar, bu işler hakkında hiçbir şey bilmiyordum.
Iddo Tzameret

1
Durum son zamanlarda bu konuda değişti. Aşağıdaki cevaba bakınız.
Marc

23

λλ

Sorunuza daha yakın bir şey için, statik analizle programların çalışma zaman sınırlarını belirleyebilecek (polinom) bir program sistemi (işlevsel bir programlama dili) geliştiren ve inceleyen mevcut bir proje var. programları). Bu nedenle, bir anlamda, bu, çalışma zamanı karmaşıklığını analiz etmek için fonksiyonel programlama kullanmanın bir avantajı olabileceğine işaret ediyor olabilir. Proje ana sayfası burada .

Bu projenin muhtemel bir temsilcisi bildiridir: Jan Hoffmann, Martin Hofmann. Polinom Potansiyeli ile İtfa Edilen Kaynak Analizi - İşlevsel Programlar İçin Polinom Sınırlarının Statik Çıkarımı. Gelen Programlama üzerindeki 19 Avrupa Sempozyumu Bildiriler Kitabı (ESOP'10). bağlantı



18

Lambda matematiğine çeşitli tip disiplinleri yükleyerek çeşitli karmaşıklık sınıflarını niteleyen, dolaylı karmaşıklık teorisi adı verilen doğrusal mantığa dayalı çok ilginç bir çalışma alanı vardır. IIRC, bu çalışma Bellantoni ve Cook ve Leivant, çeşitli karmaşıklık sınıflarını yakalamak için ilkel özyinelemeyi sınırlamak için tip sistemini nasıl kullanacaklarını öğrendiklerinde başladı.

Genel olarak, lambda calculi ile çalışmanın çekiciliği, Turing makineleri gibi modellere güçlerini veren çeşitli boyutsal özelliklerin daha genişlemeli (yani daha matematiksel olarak izlenebilir) karakteristiklerini bulmanın mümkün olmasıdır. Örneğin, Turing makineleri ve saf lambda hesabı arasındaki bir fark, Turing program kodlarını aldığından beri, bir müşteri kırlangıç ​​kuyruğu uygulamak için zaman aşımlarını manuel olarak uygulayabilir - ve dolayısıyla paralel hesaplayabilir. Bununla birlikte, zaman aşımları metrik olarak da modellenebilir ve Escardo, lambda hesabının metrik uzay modellerinin PCF + zaman aşımları için tamamen soyut olduğu kanısındadır. Metrik uzaylar çok iyi çalışılmış matematiksel nesnelerdir ve bu teoriyi kullanabilmek çok güzel.

Bununla birlikte, lambda matematiğini kullanmanın zorluğu, sizi başlangıç ​​kapısından itibaren yüksek dereceli olaylarla yüzleşmeye zorlamasıdır. Kilise Turing tezi daha yüksek tipte başarısız olduğu için bu çok ince olabilir - doğal hesaplama modelleri, yüksek tipte farklılık gösterir, çünkü hesaplamaların temsilleri ile yapmanıza izin verilenler bakımından farklıdırlar. (Paralel-veya bu fenomenin basit bir örneğidir, çünkü LC ve TM'ler arasında bir fark gösterir.) Ayrıca, farklı fonksiyonlar arasındaki çelişki, daha fazla etkileyici güç anlamına geldiğinden, farklı modeller arasında bile katı bir katılım yoktur. bir siparişte, bir siparişte daha yüksek ifade gücü anlamına gelir.


12

Bildiğim kadarıyla, lambda matematiği bu amaç için uygun değildir, çünkü zaman / mekan karmaşıklığı kavramını lambda matematiğinde formüle etmek zordur.

1 birim zaman karmaşıklığı nedir? Bir beta azaltma? Uzay karmaşıklığı birimleri ne olacak? İpin uzunluğu?

Lambda hesabı, algoritmaların soyut manipülasyonu için daha uygundur, çünkü Turing makinelerinden çok daha kolay bir şekilde oluşturulabilir.


7

Ayrıca lambda-kalkülüsün meta-seviyeli ikamesini bir dizi açık azaltma adımına bölen açık ikamelerin hesaplarını da arayabilirsiniz. Bu, Charles’ın, zaman karmaşıklığı göz önüne alındığında, tüm ikamelerin aynı şekilde düşünülmemesi gerektiğine işaret ediyor.


7

Agda'da kütüphane olarak uygulanan Tamamen İşlevsel Veri Yapıları İçin Hafif Yarı Üniform Zamanlı Karmaşıklık Analizi , Nils Anders Danielsson'a bakınız . Makalede verilen alıntılar da umut verici görünüyor.

Benim için anahtar paketlerden biri, basitçe yazılan lambda hesabındaki algoritmaların zaman karmaşıklığını, özellikle de bu algoritmalar içinde kolayca ifade edilebiliyorsa (yani tamamen işlevsel) ve özellikle de eğer bu algoritmalar varsa elde etmenin uygun / kullanışlı / makul / yarı otomatikleştirilebilir olmasıdır. algoritmalar, örneğin isme göre arama anlambiliminin temelini kullanır. Bununla birlikte, sadece “lambda hesabında” değil, belirli bir değerlendirme stratejisi altında lambda hesabında karmaşıklığı hesaplayamadığı açık bir noktadır.

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.