https://gall.dcinside.com/mgallery/board/view/?id=math&no=22410&_rk=Zxh&page=1
https://math.stackexchange.com/questions/96880/need-help-in-formal-grammar-for-the-l-wcw-w-in-a-b-ast/3916848#3916848
사실 원래 요청은 자기가 한 답변을 보고 검증해달라는 거였는데
설명을 추가해도 너무 복잡하고 도저히 이해가 가지 않아서 포기함
뭔가 저게 되는 아이디어가 있을텐데 이런식의 CS문제 솔루션 특징이
글로 설명해서는 죽어도 이해가 안간다는거임 아마 실제로 대면해서 상호작용하면서 문제풀이를 들으면
충분히 이해할 수 있는 뭔가가 있으리라 생각함
그리고 저게 저렇게 답이 복잡해야만 하나? 하는 생각이 들어서 내 풀이를 써봄
(그룹1)
S -> ASA'
S -> BSB'
S -> C
(그룹2)
CA' -> CA
CB' -> CB
(그룹3)
AA' -> A'A
AB' -> B'A
BA' -> A'B
BB' -> B'B
규칙 그룹3을 통해 AAAAA' =>* A'AAAA 형태의 변환이 가능
(그룹4)
A -> a
B -> b
C -> c
규칙 그룹 1을 써서
S =>* AABCB'A'A'
규칙 그룹 2~3 반복적용해서 C이후의 문자열 BAA를 뒤집음
AABCB'A'A' =>* AABCAAB
규칙 그룹 4를 써서
AABCAAB =>* aabcaab
저도 그 생각은 했는데 문맥민감문법으로 하려니까 복잡해진 것 같습니다. 무제한문법을 생성해도 된다면 그렇게 하셔도 될 것 같아요.
문맥민감문법으로 해야 된다는 말은 없지만, 승부욕(?)이 발동해서요 ...
문맥민감문법의 생성규칙은 phi A psi to phi omega psi 꼴이어야 하고 여기서 omega는 empty string이 될 수 없습니다. 그래서 그룹 3번 생성규칙을 못 쓰게 되고, 이것 때문에 쓸데없이 길어져요 ...
여기서 "그렇게 하셔도 될 것 같아요."는 그것도 정답 중 하나라는 뜻이고 '아마도' 정답일 것 같다는 뜻은 아닙니다.
unrestricted grammar가 무제한문법이 아니라 무제약문법이네요.
https://en.wikipedia.org/wiki/Noncontracting_grammar#Transforming_into_context-sensitive_grammar
여기읽어보니까 noncontracting grammar 는 문맥민감문법으로 변환할 수 있다는 내용이나옴
근데 그 변환과정에서 엄청난 문법 개수 blowup 이 발생하는데 "저게 저렇게 답이 복잡해야만 하나?" 라는 의문은 문맥민감문법을 써서하려면 필연이었던걸지도 모르겠음
마치 NFA 를 DFA로 변환할때의 blowup 과 비슷한느낌인데 NFA->DFA가 exponential blowup 이었다면 noncontracting grammar -> context sensitive grammar 는 polynomial blowup 인걸로보임
사실 님도 내가위에올린것과 같은식의 무제약문법을 생각했었는데 그걸 버리고 맨땅에서 문맥민감문법을 찾으려고 한게아니라 무제약문법을 문맥민감문법으로 어떻게든 바꿀방법을 생각한거아님? 아님말고 그냥 저 복잡한문법을 어떻게 생각해냈는지 의문임
어 .. 아닌 것 같아요. CA가 DA로 바뀌면서 성장 준비를 하고, A를 B로 바꿔서 성장 신호를 S에 보내고, S가 성장신호를 받으면 X나 Y로 바뀌고, X는 T로 Y는 F로 D에게 신호를 보내고, D가 T를 받으면 a를 만들고 F를 받으면 b를 만들고 성장 완료가 됐음을 Z로 보내면, X나 Y가 A S로 바뀌면서 A를 Z로 바꾸고 다음 루프를 준비하는 거에요.
저게 한 칸 자랄 때 4번의 과정을 거치는데, 어떻게 된 거냐면, 처음에는 2번 했다가 너무 상태가 적어서 실패하고, 3번 했다가 홀수라서 실패함을 알게 된 다음에, 4번 해봤는데 된 거에요.
그렇군 물론 여전히 이해는안가지만 고생해서 만든건알겠네요
제가 보는 책은 1978에년 발행된 거라서 알려주신 정리가 없네요. Semi-thue 시스템을 Type0 문법으로 바꾸는 건 연습문제로 나와있는데 말이죠. 아무튼 새로운 걸 알려주셔서 감사합니다.
그리고 설명을 쓰다보니까 제가 맞았다는 확신이 드네요. 설명 쓰라고 조언 해주셔서 감사합니다.
또한 제가 올린 질문에 대하여 고민해주신 것에 대하여 감사드립니다. 복 많이 받으시길 바라고 행운이 함께 하시길 바랍니다.