데이터 구조 동형


20

면책 조항 : 저는 CS 이론가가 아닙니다.

나는 추상 대수에서 유래하여 동형에 해당하는 것들을 다루는 데 익숙하지만이 개념을 데이터 구조로 변환하는 데 어려움을 겪고 있습니다. 나는 처음에는 이론적 인 형용사 형태가 충분하다고 생각했지만 벽에 아주 빨리 뛰어 들었습니다. 그것들은 단지 인코딩 일 뿐이며 데이터 구조의 계산 본질을 포착하지 못했습니다.

더 제한적이지만 더 유용한 정의가 있습니까? (또는 그렇지 않은 경우, 왜?) "구성된 데이터 구조"범주에 대한 표준 정의가 있습니까?

답변:


16

정식 카테고리는 없으며, 같은 이유로 정식 카테고리의 계산이 없습니다. 그러나 데이터 구조에는 크고 유용한 대수 구조가 있습니다.

그럼에도 불구하고 여전히 유용한 이러한 일반적인 구조 중 하나는 조합 종의 이론이다. 종은 functor 이며, 여기서 B 는 유한 세트와 그 사이의 형용사 범주입니다. 종을 추상적 인 위치 집합에 의해 색인 된 구조의 패밀리로 생각할 수 있습니다. 이것은 B에 대한 기능을 설명합니다. 이러한 가족은 초록 레이블의 이름을 바꾸는 데 변하지 않아야합니다. 그런 다음, 종의 미적분은 기본적으로 함수 수준에서 함수 메소드 생성을 재생하여 카운트 대신 데이터 구조 세트를 생성합니다.F:BBBB

이 이론을 프로그래밍 언어로 구현 한 것을 보려면 Brent Yorgey의 Haskell Symposium 논문, 종 및 펑터 및 유형을 읽어보십시오 . . 물론 Sage에도 종 패키지가 있다고 생각하지만 물론 프로그래밍보다는 컴퓨터 대수를 지향합니다.


14

실제로, 프로그래밍에 더 유용한 동 형사상과는 다른 개념이 있습니다. 이를 "행동 적 동등성"(때때로 "관측 적 동등성"이라고 함)이라고하며, 데이터 구조 사이에 "사시 관계"를 부여하여 설정합니다. 대 수학자들은 컴퓨터 과학 분야에서 "대수학 데이터 유형"이라는 영역을 설립하여 한 동안 동 형사상과 초기 대수학을 추진했습니다. 결국 컴퓨터 과학자들은 그들이 잘못 인도되고 있다는 것을 깨달았습니다. 이러한 문제에 대해 이야기하는 좋은 논문은 Sannella와 Tarlecki의 "관찰 등가 및 대수 지정" 입니다.

나는 컴퓨터 과학에서 시뮬레이션 관계의 더 일반적인 역사에 대해 이야기하는 논리 관계 및 시뮬레이션 에 대한 cstheory의 또 다른 질문에 대한 답변을 썼습니다 . 당신은 그것을 읽고 거기에 주어진 참고 문헌에 대한 후속 조치를 환영합니다. Reynolds의 "Craft of Programming"5 장은 특히 밝습니다.

Holcombe의 Algebraic Automata Theory 에 대한 교과서 에는 다음과 같은 흥미로운 인용문이 있습니다 (42 페이지).

동질성과 몫에 관한 많은 다른 결과들이 있습니다 ... 그것들은 독립적 인 대수적 관심사이지만, 아직 오토마타와 관련 분야의 연구에 특히 유용하지는 않았습니다. 사실, 기계의 대수 이론은 한 가지 중요한 측면에서 다른 대수 이론에서 취한 방향과는 다릅니다. 그러나 오토마타 이론의 강조는 기계가 어떻게 보이는지가 아니라 "그들이 할 수있는 것"에 있습니다. . 우리는 두 기계가 "동일한 일"을 할 수 있다면 매우 밀접한 관련이있는 것으로 간주하지만 대수적으로 동형이 아닐 수도 있습니다!


Holcombe 인용문을 더 숙고하면서, 나는 기본적으로 전통적인 대수학이 "어떻게 보이는 것", 즉 그들의 구조를 다루지 만 "그들이 할 수있는 것", 즉 그들의 행동을 다루지 못한다고 기본적으로 말하고 있음을 알았습니다. 이것은 컴퓨터 과학과 관련하여 전통적인 대수학의 근본적인 한계를 가리키는 것으로 보입니다. 슬프게도, 카테고리 이론도 같은 캠프에 속해 있다고 생각합니다. 그러나 카테고리 이론은 "거룩한 암소"지위를 가지고 있으며 그 한계에 대해 이야기하는 것은 냉정한 것으로 간주됩니다. 컴퓨터 과학자들이 더 큰 소리로 말할 용기를 모으기를 바랍니다.
Uday Reddy

Uday, 카테고리 이론의 (아 시메트리?)가 어떻게 적합하지 않은지 좀 더 자세히 설명해 주시겠습니까?
Łukasz Lew

@ ŁukaszLew, 범주 이론이 잘 맞으면, 유형 변수 X를 가진 모든 유형화 된 람다 미적분학 유형 표현식이 펑터라고 말할 수 있습니다. 그러나 예를 들어 F (X) = (X-> X)는 펑터가 아닙니다.
Uday Reddy

7

우리가 동 형사상이라는 개념을 어떻게 강화 / 약화시킬 수 있는지를 묻는 것이 아니라, 또 다른 가능성은 다음과 같은 질문 일 것이다.

하나의 큰 구조물 군은 대수입니다. 유한, 무한 다양성의리스트, 트리, 오토마타 (automata)와 같은 구조는 대수로 설명 할 수 있습니다. 그런 다음 대수 사이의 동형 또는 동형을 연구 할 수 있습니다.

그러나 대수학 사이의 동질성조차도 전체 이야기를 말하지는 않습니다. 시뮬레이션, 2 시뮬레이션 및 기타 논리적 관계를 찾는 것이 도움이 될 수 있습니다. 관계형 접근 방식과 달리 대수적 접근 방식을 엄격하게 선호하는 경우 Galois 연결은 하나의 옵션입니다. 여기 몇 가지 시작점이 있습니다.


2

면책 조항 : 귀하의 질문을 이해하지 못했습니다. 두 데이터 구조 또는 두 "데이터 구조 사양"간의 동형에 대해 이야기하고 싶습니까? (이를 추상 데이터 유형이라고도합니다.)

세포 프로브 모델을 고려하면 동형의 개념이 쉽게 발생한다고 생각합니다. 이는 셀 프로브 모델이 의사 결정 트리에 의한 계산을 모델링하기 때문에 동 형사상을 쉽게 정의 할 수 있기 때문입니다. 셀 프로브 모델은 데이터 구조 구현간에 동 형사상을 고려하고 데이터 구조 스펙을 고려할 때 도움이 될 것입니다.

세포 프로브 모델에 대한 정보는 Miltersen 조사를 참조하십시오. ( 세포 프로브 복잡성 : 설문 조사 )

데이터 구조간에 동 형사상을 정의해야하는 이유에 대해 더 자세히 말하면 도움이 더 필요할 수 있습니다. 나에게 메시지를 보내 주시기 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.