Veri Yapısı izomorfizmleri


20

Feragatname: Ben bir CS teorisyeni değilim.

Soyut cebirden gelince, bir izomorfizme eşit olan şeylerle uğraşmaya alışkınım - ama bu kavramı veri yapılarına çevirmekte sorun yaşıyorum. İlk önce düz kuramsal bijektif morfizmlerin yeterli olacağını düşündüm, ama oldukça hızlı bir şekilde bir duvara girdim - bunlar sadece kodlamalar ve veri yapısının hesaplama özünü yakalamıyor.

Daha kısıtlayıcı (ama daha kullanışlı) bir tanım var mı? (Ya da değilse, neden?) "İnşa edilmiş veri yapıları" kategorisinin kanonik bir tanımı var mı?

Yanıtlar:


16

Bu tür bir kanonik kategori yoktur, aynı nedenden dolayı kanonik bir hesaplama kategorisi yoktur. Ancak, veri yapıları üzerinde büyük ve kullanışlı cebirsel yapılar bulunmaktadır.

Yine de faydalı olan daha genel bu yapılardan biri, kombinatoryal türlerin teorisidir. Bir tür , burada B aralarındaki sonlu kümeler ve bijeksiyonlar kategorisidir. Türleri, soyut konum kümeleri tarafından endekslenen yapıların ailesi olarak düşünebilirsiniz. Bu, B üzerindeki işlevselliği açıklar - bu tür ailelerin soyut etiketlerin yeniden adlandırılması konusunda değişmez olması gerekir. Daha sonra, türlerin hesabı temel olarak sayım yerine veri yapıları kümesi oluşturmak için fonksiyonel düzeyde fonksiyon yöntemleri üretmeyi tekrarlar.F:BBBB

Bu teorinin bir programlama dilinde uygulandığını görmek için Brent Yorgey'in Haskell Sempozyumu belgesini, Türler ve functorlar ve türleri okuyabilirsiniz , ah! . Bence Sage'ın da bir tür paketi var, tabii ki programlamadan ziyade bilgisayar cebirine yönelik.


14

Gerçekten de, programlamada daha yararlı olan izomorfizmden farklı bir kavram vardır. Buna "davranışsal eşdeğerlik" denir (bazen "gözlemsel eşdeğerlik" olarak da adlandırılır) ve veri yapıları arasında birleşme yerine bir "simülasyon ilişkisi" verilerek oluşturulur. Cebirciler geldiler ve Bilgisayar Biliminde "cebirsel veri türleri" adlı bir alan kurdular, burada bir süre izomorfizmleri ve ilk cebirleri ittiler. Sonunda Bilgisayar Bilimcileri yanıldıklarını fark ettiler. Bu konular hakkında iyi bir yazı Sannella ve Tarlecki'nin “Gözlemsel eşdeğerlik ve cebirsel şartname hakkında” dır.

Bilgisayar bilimlerinde simülasyon ilişkilerinin daha genel tarihini anlatan mantıksal ilişkiler ve simülasyonlar üzerine bir başka soruya cevap yazdım . Bunu okuyabilir ve orada verilen referansları takip edebilirsiniz. Reynolds'un "Programlama El Sanatları" başlıklı bölümü özellikle aydınlatıcıdır.

Holcombe'un Cebirsel Otomat Teorisi üzerine bir ders kitabı şu ilginç alıntıya sahiptir (s. 42):

Homomorfizmler ve bölümler ile ilgili başka birçok sonuç daha vardır ... Bağımsız cebirsel ilgilere sahip olmalarına rağmen, otomata ve ilgili alanlarda yapılan çalışmalarda henüz yararlı olmamıştır. Aslında, makinelerin cebirsel teorisi önemli bir açıdan diğer cebirsel teorilerde alınan yönden farklıdır ... Ancak, otomata teorisindeki vurgu, hangi makinelerin "neye benzediğini" değil "ne yapabilirler" dir. . Her ikisini de "aynı şeyi" yapabiliyorlarsa, iki makineyi çok yakından ilişkili olarak göreceğiz, ancak bunlar cebirsel olarak izomorfik olmayabilir!


Holcombe'a biraz daha değinerek, temelde geleneksel cebirin şeylerin "neye benzediğini", yani yapılarını ele aldığını, ancak "yapabilecekleri", yani davranışları ile ilgili hiçbir şeyleri olmadığını söylediğini fark ettim. Bu, bilgisayar bilimiyle ilgili olarak geleneksel cebirin temel bir sınırlamasına işaret ediyor gibi görünmektedir. Ne yazık ki Kategori Teorisi'nin de aynı kampa ait olduğunu düşünüyorum. Ancak Kategori Teorisi "kutsal inek" statüsüne sahiptir ve sınırlamaları hakkında konuşmak serin değildir. Umarım, Bilgisayar Bilimcileri bunu daha yüksek sesle söylemek için yeterli cesareti toplarlar.
Uday Reddy

Uday, kategori teorisinin (asimetri?) Nasıl iyi görünmediği hakkında biraz daha ayrıntı verebilir misiniz?
Łukasz Lew

@ AsukaszYeni, Eğer kategori teorisi iyi bir uyum olsaydı, X tipi değişkenli tüm tip lambda hesabı tipi ifadelerin functor olduğunu söyleyebilirdiniz. Ancak bunlar değildir, örneğin, F (X) = (X -> X) bir işlev değildir.
Uday Reddy

7

İzomorfizm kavramını nasıl güçlendirebileceğimizi / zayıflatabileceğimizi sormak yerine, başka bir olasılık sormaktır: Hesaplamalı yapılar arasındaki doğru denklik kavramı nedir ve bu düşüncenin altında yatan matematiksel yapı nedir.

Büyük bir yapı ailesi kömür kömürleridir. Listeler, ağaçlar, otomatlar, hem sonlu hem de sonsuz çeşitlilik gibi yapılar kömürgebras olarak tanımlanabilir. Daha sonra kömürgebralar arasında homomorfizma veya izomorfizm çalışabiliriz.

Ancak kömür kömürleri arasındaki homomorfizmalar bile tüm hikayeyi anlatmaz. Simülasyonları, bisimülasyonları ve diğer mantıksal ilişkileri aramak yararlı olabilir. Kesinlikle bir cebirsel yaklaşımı tercih ediyorsanız (ilişkisel olanın aksine) Galois bağlantıları bir seçenektir. İşte bazı başlangıç ​​noktaları.


2

Feragatname: Sorunuzu anladığımdan emin değilim. İki veri yapısı arasındaki veya iki "veri yapısı özellikleri" arasındaki izomorfizm hakkında konuşmak ister misiniz? (Bunlara bazen Soyut Veri Türleri denir.)

Hücre sondası modelini düşünürseniz, bence bir izomorfizm kavramı kolayca ortaya çıkar. Bunun nedeni, hücre sondası modelinin hesaplamayı bir karar ağacı ile modellediğinden, izomorfizmin tanımlanması kolaydır. Hücre sondası modeli, hem veri yapısı uygulamaları arasında izomorfizmi göz önünde bulundurursanız hem de veri yapısı özelliklerini göz önünde bulundurursanız yardımcı olacağını düşünüyorum.

Hücre sondası modeli hakkında bilgi için bkz. Örneğin Miltersen araştırması. ( Hücre Probu Karmaşıklığı: Bir Araştırma )

Veri yapıları arasında neden izomorfizmi tanımlamanız gerektiğiyle ilgili daha fazla şey söylerseniz, daha fazla yardım sağlamak mümkün olabilir. Bana mesaj atmaktan çekinmeyin.

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.