Haftungsausschluss: Ich bin kein CS-Theoretiker.
Aus der abstrakten Algebra kommend bin ich es gewohnt, mit Dingen umzugehen, die einem Isomorphismus gleichkommen - aber ich habe Probleme, dieses Konzept in Datenstrukturen zu übersetzen. Ich dachte zuerst, dass gerade aufgestellte theoretische bijektive Morphismen ausreichen würden, aber ich bin ziemlich schnell auf eine Wand gestoßen - das sind nur Kodierungen und erfassen nicht die rechnerische Essenz der Datenstruktur.
Gibt es eine restriktivere (aber nützlichere) Definition? (Oder wenn nicht, warum?) Gibt es eine kanonische Definition der Kategorie "konstruierter Datenstrukturen"?
Anstatt zu fragen, wie wir den Begriff des Isomorphismus stärken / schwächen können, besteht eine andere Möglichkeit darin, zu fragen: Was ist der richtige Begriff der Äquivalenz zwischen Rechenstrukturen und welche mathematische Struktur liegt diesem Begriff zugrunde?
Eine große Familie von Strukturen sind Kohlegebren. Strukturen wie Listen, Bäume, Automaten der endlichen und der unendlichen Vielfalt können als Kohlegebren bezeichnet werden. Wir können dann Homomorphismus oder Isomorphismus zwischen Kohlegebren untersuchen.
Aber selbst Homomorphismen zwischen Kohlegebren erzählen nicht die ganze Geschichte. Es kann hilfreich sein, Simulationen, Bisimulationen und andere logische Beziehungen nachzuschlagen. Wenn Sie strikt einen algebraischen Ansatz bevorzugen (im Gegensatz zu einem relationalen), sind Galois-Verbindungen eine Option. Hier sind einige Ansatzpunkte.
quelle
Haftungsausschluss: Ich bin nicht sicher, ob ich Ihre Frage verstanden habe. Möchten Sie über Isomorphismus zwischen zwei Datenstrukturen oder zwischen zwei "Datenstrukturspezifikationen" sprechen? (Diese werden manchmal als abstrakte Datentypen bezeichnet.)
Wenn Sie das Modell der Zellsonde betrachten, entsteht meiner Meinung nach leicht ein Konzept des Isomorphismus. Dies liegt daran, dass das Zellsondenmodell die Berechnung anhand eines Entscheidungsbaums modelliert, sodass der Isomorphismus leicht zu definieren ist. Das Zellsondenmodell würde meiner Meinung nach helfen, sowohl wenn Sie den Isomorphismus zwischen Datenstrukturimplementierungen berücksichtigen, als auch wenn Sie Datenstrukturspezifikationen berücksichtigen.
Informationen zum Zellsondenmodell finden Sie zB in der Übersicht von Miltersen. ( Zellsondenkomplexität: Eine Umfrage )
Wenn Sie mehr darüber sagen, warum Sie Isomorphismus zwischen Datenstrukturen definieren müssen, ist es möglicherweise möglich, weitere Hilfe bereitzustellen. Fühlen Sie sich frei, mir eine Nachricht zu senden.
quelle