임의의 DFA를 생성하기위한 좋은 알고리즘은 무엇입니까?


9

임의의 DFA를 생성하여 DFA 감소 알고리즘을 테스트하고 있습니다.

다음과 같이 내가 지금 사용하고 있다는 알고리즘은 각 상태에 대한 , 알파벳의 각 심볼에 대해 , 추가 어떤 임의의 상태로. 각 상태는 최종 상태가 될 확률이 동일합니다.δ(,)

이것이 편향되지 않은 DFA를 생성하는 좋은 방법입니까? 또한이 알고리즘은 트림 DFA (더 이상 사용되지 않는 상태의 DFA)를 생성하지 않으므로 임의의 DFA를 생성하여 더 잘 트림 할 수있는 더 좋은 방법이 있는지 궁금합니다.


2
임의의 DFA는 자연스럽게 배포되지 않으므로 사용자에게 달려 있습니다. 무엇을 성취하고 싶습니까?
Yuval Filmus 2016 년

임의의 DFA를 생성하여 DFA 감소 알고리즘을 테스트하고 있습니다.
Duncan

작은 최소 DFA에서 시작하여 폭파하고 싶습니까? 그렇게하면 최소화가 실제로 올바른 결과에 도달한다는 것을 알 수 있습니다.
adrianN

비 최적화 감소 알고리즘을 테스트하고 있습니까 아니면 독창적 인 최소 최적 DFA를 찾고 있습니까?
vzn

2
테스트를 위해 데이터 구조를 생성하는 경우 바이어스되지 않은 것은 중요하지 않습니다. 중요한 것은 흥미로운 행동을 유발할 수있는 좋은 기회를 얻는 것입니다. 유추하기 위해 기하 알고리즘을 테스트 할 때 일부 테스트에 3 개의 점이 정렬되고 임의 분포에서 절대 발생하지 않는 다른 점이 있는지 확인해야합니다.
Gilles 'SO- 악마 그만해'

답변:


6

[1]과 4 절. 랜덤 오토마타 생성에 대한 논의를 확인하십시오. 이 논문은 다양한 DFA 최소화 알고리즘을 벤치마킹합니다. 상태와 기호 로 완전한 DFA의 표준 문자열 표현을 생성하는 균일 한 무작위 생성기가 사용 됩니다. 또한 다른 방법에 대해서도 논의합니다.케이


[1] Almeida, M., Moreira, N. & Reis, R. (2007). 오토마타 최소화 알고리즘의 성능. 알고리즘의 논리와 이론, 3.


"정식 문자열 표현"은 무엇을 의미합니까?
Duncan

@drowse 표준 순서는 의 (총) 순서를 사용하여 발신을 각 노드에서 선택하는 가장 우선적 인 방법으로 오토 마톤을 순회하여 일련의 상태에 대해 정의됩니다 . 논문의 참고 문헌을 확인하십시오. Σ
Juho

4

Cyril Nicaud의 홈페이지를 봐야 합니다. 특히, 다음 참조는 귀하의 질문과 관련이 있습니다.

F. Bassino, J. David 및 C. Nicaud, 불완전한 결정 론적 오토마타의 열거 및 무작위 생성, 순수 수학 및 응용 19 (2-3) (2009) 1-16.

F. Bassino와 C. Nicaud. 액세스 가능한 오토마타의 열거 및 무작위 생성. 이론. Comp. Sc. . 381 (2007) 86-104.


3

순열 http://paranthoen.thomas.free.fr/PAPERS/RandDFAToAppearInTCS.ps.gz 까지 무작위로 DFA를 생성하는 알고리즘이 있습니다 .

그러나 위의 논문에서도 거의 모든 DFA가 이미 최소 수준이라고 언급되어 있습니다. 최소가 아닌 DFA는 소수와 같습니다. 이 알고리즘을 사용하여 최소화 알고리즘을 테스트하는 경우 간단한 난수 생성기를 사용하여 소수에 대한 알고리즘을 테스트하는 것과 같습니다. 최소가 아닌 DFA를 더 많이 확보하려면 싱크 상태를 추가하여 알고리즘을 변경하고 전환의 중요한 비율을이 싱크 상태로 리디렉션 할 수 있습니다.

그러나 내 관점에서 구현의 속도를 테스트하려면 임의의 단어 세트 또는 임의의 REGEX를 사용하여 NFA 또는 DFA를 생성 한 다음 결과 DFA를 최소화하려는 용도와 비교하여 구현하십시오. .


2

하나의 자연 전략은 DFA를 그래프로 간주 한 다음 많은 "자연"및 고도로 연구 된 그래프의 무작위 분포가 있으며, 가장 간단한 것은 아마도 Erdos-Renyi 입니다. 이 경우 DFA의 모든 상태를 그래프의 노드로 취급하고 가능한 모든 에지 (DFA 전환)의 고정 된 백분율을 선택합니다. 보다 최근에 많이 연구 된보다 정교한 분포는 작은 세계 그래프입니다. 당신이 당신의 질문에 언급 한 전략에 대해 분명히 특별한 경우를 선택하고 있습니다=1/ 어디 그래프의 노드 수입니다. 그러나 귀하의 전략이나 Erdos-Renyi는 DFA의 모든 주가 연결되어 있음을 보증하지는 않습니다 [추가해야하는 자연스러운 제약].



DFA를 확인하는 또 다른 방법은 가장자리를 정의하는 3 중 집합입니다. (V1,,V2) 어디 V1 꼭짓점 1입니다. V2 정점 2 은 전환 기호이며 이들 중 일부는 DFA를 결정하기 위해 선택할 수 있습니다.
vzn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.