FSA는 계산할 수 있습니까?


11

이것은 어리석은 질문 일 수 있습니다. FSA는 유한하기 때문에 입력 문자열의 기호 수를 상태 수에 의해 제한되는 수까지만 계산할 수 있습니다. 그러나 이제 FSA에 출력 (예 : 인쇄) 기능이 있다고 가정합니다. 그러면 읽는 각 심볼마다 하나의 심볼을 인쇄 할 수있는 기계를 구성하는 것이 매우 쉽습니다. 그 계산으로 계산됩니까? 그렇지 않다면 왜 안됩니까?

대신 FST로 표현하려면 임의 길이의 문자열을 길이의 이진 표현 (즉, 밑이 2 숫자 시스템의 숫자)에 매핑 할 수있는 FST를 구성 할 수 없다고 생각합니다. 그러나 임의 길이의 문자열을 같은 길이의 0 또는 1의 문자열로 매핑 할 수있는 FST를 구성하는 것은 당연한 일입니다. 그러나 그것은 계산으로 계산 될 수 있고, FST가하는 일이 입력 길이를 나타내는 것이므로 계산할 수는 없습니다. 다소 이상한 표현이지만 여전히 표현입니까?


1
그래서 당신은 정말로 "무엇을 세고 있습니까?"라는 질문을하고 있습니다. 그것은 컴퓨터 과학처럼 들리지 않습니다. 당신의 질문이 "이 계산의 정의를 위해 FSA를 계산할 수 있습니까?"라면 컴퓨터 과학 일 것입니다.
Sasho Nikolov

답변:


8

이 질문은 약간 모호하므로 여기에 모호한 답변이 있습니다. 단항을 단항으로 변환하는 것은 기계가 실제로 입력의 크기가 "종료"인 것을 "알지"않기 때문에 정확하게 계산되지 않습니다.

물론 이것을 알고 있기 때문에 그것이 실제로 계산되고 있다는 사실에 의문을 갖는 이유입니다.

그러나 단항에서 이진으로의 변환은 계산뿐만 아니라 산술도 포함하기 때문에 훨씬 고급 작업처럼 보입니다.

따라서 계산하는 대신보다 정확한 개념은 비교하는 것 입니다. 즉, 두 개의 숫자 (단항) 과 주어 지면 인지 확인하십시오 .1 m N = m11미디엄=미디엄

이 비교 기능은 유명한 비정규 언어 시킵니다. 그리고 NFA가 셀 수 없다는 것은이 언어를 규칙적이지 않게 만드는 것입니다.{:0}

흥미롭게도이 언어는 CFL입니다. 실제로, 해당 오토마타 모델 (PDA)은 제한된 비교를 수행 할 수 있습니다.

비교에 대해 이야기 할 때 트랜스 듀서는 더 이상 추가 전력을 제공하지 않으므로 문제는 그런 의미에서 해결됩니다.

추가 참고 사항 : 완전히 비공식적으로 두 숫자를 비교하는 기능은 종종 TM과 동등한 2 카운터 기계 Minsky Machine 을 시뮬레이션하는 데 사용될 수 있습니다 .


4

유한 상태 오토마타는 포함되지 않습니다. 그들은 겉 모습처럼 보이지만 계산할 수는 없습니다. 심지어 이진 숫자 를 3 으로 나눌 수 있는지 여부를 결정하는 것과 같이 작은 (하드 와이어드) 계산을 수행 할 수도 있지만 계산에 포함되지 않습니다.

작은 이야기. 당신은 유명한 도시의 큰 사각형 광장에 있습니다. 지역 주민들은 사각형이 실제로 사각형이라고 말합니다. 계산할 수 있으면 사각형의 측면을 따라 타일을 계산하여 타일의 가로 및 세로 수가 일치하는지 확인하십시오. 셀 수없는 경우에도 청구를 확인할 수 있습니다. 코너에서 시작하여 대각선으로 걷습니다. 정확히 반대쪽 모서리에 도달하면 사각형이 있습니다.

예제에서 fsa는 이 숫자를 두 개의 다른 출력 테이프 로 계산하여 문자열의 b 수가 같은지 여부를 테스트합니다 . 다른 장치는 문자 ab 를 쌍 으로 처리하고 하나를 다른 문자 와 비교하여 트릭하지 않는 한 최종 비교를 수행해야합니다 . 광장 에서처럼.

이제 더 공식적인 모델과 비교하십시오. Chomsky–Schützenberger 정리 에 따르면 모든 문맥이없는 언어 은 두 쌍의 괄호 L = T - 1 ( D 2 ) 에 대한 Dyck 언어 D 2 의 유한 상태 변환 T 의 역수 입니다. wikipedia,하지만 당신은 나를 믿어야합니다). 이제 유한 상태 변환기 ( T) 는 다음과 같이 문맥없는 언어 ( L) 를 "수락"할 수 있다 (각 언어마다 고유 한 변환기). 입력 T 에서 문자열을 (추측 된) 팝의 일련의 팝 및 푸시로 변환합니다.2=1(2) 이면 결과가 푸시 다운 동작인지, 즉 결과가 D 2 의 문자열인지 테스트합니다. (기술적 인 세부 사항은 생략되었지만, 이것은 Ch-Sch 정리에 의해 주장 된 바와 같습니다 : 하나는 w T - 1 ( D 2 ) iff T ( w ) D 2가 있습니다 )21(2)()2

여기서 요점은 트랜스 듀서에 의해 일부 "계산"이 수행되지만 테스트에서 많은 전력이 숨겨져 있다는 것입니다 . 마찬가지로 두 글자가 두 개의 테이프에 정렬되는 예입니다. 2


그 카운트 사이의 DFA를 구성 할 수 있습니다 2 N ! (고정 대 N )에 또는 N . 그것은 인간이나 실제 컴퓨터가 관리하는 것 이상입니다. 계산이라고 부르시겠습니까? 02!
Raphael

@ 라파엘. 확실한. 그리고 그것보다 쉽게 ​​큰 숫자입니다. 문맥 자유 언어 일반 언어보다 더 강력한 것을 정지 가르침 : (적어도 최대 길이의 문자열을들은이 같은 ). 농담이야. 이와 같은 실제 컴퓨터 언어를 언급하면 ​​유한 한 상태가 아닌가? 유한 상태 오토마타는 계산하지 않습니다! 그 숫자는 매우 클 수 있지만 유한 한 수의 상태 만 구분합니다. 2!
Hendrik Jan

그러나 FSA가 일반적으로 제시되는 방식에서는 "예"(허용됨) 또는 "아니오"(허용되지 않음) 만 "허용"됩니다. 이를 감안할 때 아무도 계산하는 FSA를 구성 할 수 없습니다. 종료 할 때의 상태 수를보고 (예 : 인쇄) 할 수 있도록 허용하면 상태 수에 의해 지정된 범위까지만 계산할 수 있습니다. 그러나 DO로 인쇄를 허용하면 입력 문자열에서 기호를 읽을 때마다 1을 인쇄하여 집계 집계에 카운트를보고하는 단일 상태 FSA를 구성하는 것이 간단합니다. 이 아이디어에 어떤 문제가 있습니까?
Torbjörn

보고 / 인쇄를 잊어 버리고 대신 내부 표현의 관점에서 생각하면 FSA는 임의의 긴 문자가 아닌 문자열의 기호를 계산할 수 있습니다. 단일 상태 FSA는 물론 계산할 수 없습니다.
Torbjörn

헨드릭 (Hendrik), 우리는 의미론의 문제를 "토론"하고 있다고 생각한다. 나를 위해, "계산"은 FA가 수있는 "1에서 10까지"일 수있다 . 예를 들어, Büchi-automata를 교차시킬 때, 우리는 몇 개의 ( , fixed) 오토마타가 최종 상태에 도달 한 반면 다른 것들은 계속 진행합니다. 따라서, 나는 "계산할 수 없다"는 말이 너무 강하다고 생각합니다. 참된 진술은 "상수보다 더 세 어질 수 없다"는 것이다. 케이
Raphael

1

@Shaull : 답변 주셔서 감사합니다! 저는 StackExchange를 처음 사용하고 답변에 대한 의견을 제시하는 방법을 모르므로 용서 받기를 희망하면서 대신 답변을 작성하기로 선택했습니다.

흠, 나에게 보이는 양 한 마리당 종이에 표를 써서 양을 세거나, 벽에 자국을 써서 감옥에 갇힌 날을 세는 죄수는 세고있는 것 같습니다. 종이 표지 나 벽면에 n 마크가 왜 숫자 n을 나타내지 않습니까? 이것이 탈리 표현이라고하는 것이 아닙니까? AFAICS 더 많은 공간을 사용한다는 점을 제외하고는 이진 표현보다 열등하지 않습니다.

나는 당신을 위해 "알다"는 것이 결국 카운트의 내부 표현을 가지고 있다고 가정합니다. 물론, FST의 FSA는 임의의 문자열의 길이를 계산할 수 없음이 명백합니다. 그러나 그러한 의미에서 지식이 필요하지 않지만 FSA 또는 FST가 결과를 외부 관찰자에게 말할 수 있어야한다고 요구하면 집계 형식으로 카운트를 제시하는 것이 좋습니다.

또한 FSA에 증분 입력 및 출력이 모두 장착 된 경우 원칙적으로 외부 환경을 읽기 / 쓰기 메모리로 사용할 수 있으므로 Turing 머신만큼 강력해야합니다. 권리?

비교 사례를 제기 해 주셔서 감사합니다. 이제 우리는 내부 표현의 요구 사항을 높이고 기계가 외부 관찰자에게 결과를 제시 할 수 있어야하는 경우, 일종의 FSM을 쉽게 만들 수있는 경우 인 것처럼 보입니다. 결과의 그래픽 표현. FSM이 "aaaaaabbbbbb"를 읽었을 때

000000
000000

그런 다음 막대의 길이가 같으므로 FSM은 "aaaaaabbbbbb"문자열을 허용합니다. 같은 길이의 두 막대는 "예"를 의미하고 다른 길이는 "아니오"를 의미합니다.

나는 규칙을 구부리고 있다고 생각하지만, 수학 언어 분야에서 만들어지는 다소 암시적인 가정에 관심이 있기 때문에 이것이 내가 원하는 것입니다.


에프에스영형{| 프라임 }

나는 당신이주는 예제와 FST 출력의 차이점은 셰퍼드는 줄을 쓴 후에 줄을 읽을 수 있지만 FSM은 줄을 읽을 수 없다는 것입니다. 비교도 마찬가지입니다.
Shaull

게시물 아래의 "댓글 추가"링크를 클릭하여 댓글을 달 수 있습니다.
Raphael

무리를 계산하도록 구성된 FSA는 해당 무리를 계산할 수 있습니다. 구성된 FSA는 무리를 계산할 수 없습니다. 기본적인 질문은 목자가 자신의 무리를 적어도 세는 데 충분한 거리를 세는 법만 아는지, 또는 모든 자연수를 사용할 수 있는지 여부입니다. 내 경험상, 인간은 수학 교육의 어느 시점에서 두 기능 사이를 명시 적으로 전환해야합니다.
reinierpost

1

FSM 은 상태 전이로 표시되는 유한 범위 / 단계 수 내에서 "계산"할 수 있습니다. 그러나 유한 단계 수를 초과하여 셀 수는 없습니다.

FSA와 같은 기계가 셀 수 있다는 의미가 있습니다. 밀접하게 관련된 기계를 유한 상태 변환기 라고합니다 . 트랜스 듀서는 실제로 "파이프 된"입력 및 출력의 의미로 계산할 수 있습니다. 단일 변환기는 입력 시퀀스 (예 : 이진)를 가져 와서 증가 된 출력 시퀀스로 "변환"할 수 있습니다. 그런 다음 하나는 (동일한) 카운트 단위 변환기를 "사슬로 묶습니다". 각 변환기는 입력을 1 씩 증가시키고 출력합니다. 그것도 기초적인 "스트리밍 알고리즘"과 같습니다 .


더 자세히 : 트랜스 듀서는 EE full adder 와 유사한 로직을 사용하여 "lsb"에서 "msb"순서, 즉 "최소 시그 비트"에서 "가장 시그 비트"로 작업을 증가시킬 수 있습니다 .
vzn

유한 상태 변환기는 전체적으로 연구되지 않은 것으로 보입니다. 반복을 계산하는 기계를 만들 때 collatz 추측 에 대한 또 다른 흥미로운 응용이 있습니다. 추가 이론 / 토론에 관심이있는 사람은 채팅 또는 내 블로그 에서 저에게 연락하십시오 .
vzn April
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.