2012-01-14 4 views
17

정규 표현식을 조작하고 단순화하기 위해 최근에 Kleene algebra을 발견했습니다.Mathematica에서 정규식 단순화

이것이 Mathematica와 같은 컴퓨터 소프트웨어 프로그램에 포함되어 있다면 궁금합니다. 대형 표현식의 결합 및 연결을 수행하고 컴퓨터가이를 간단하게 처리 할 수있는 전산 도구를 갖는 것이 좋습니다.

이 대수가 내장 된 프로그램을 모르는 경우 새로운 대수를 사용하여 엔진을 확장 할 수있는 프로그램을 알고 계십니까? http://www.maplesoft.com/msw/program/MSW04FinalProgram.pdf

+1

Mathematica 문서에는 [문자열 패턴 작업] (http://reference.wolfram.com/mathematica/tutorial/WorkingWithStringPatterns.html)에 대한 자세한 자습서가 있습니다. 시작할 수있는 좋은 장소 일 수 있습니다. – kglr

+2

@kguler : 본 튜토리얼을 포함한 모든 문서에서 기본적인 문자열 일치 및 조작 목적을 위해서만 정규식을 사용할 수 있습니다. –

+4

해결하려는 특정 문제의 예를 추가 할 수 있습니까? 필요한 기능을 설명하기위한 장난감의 예가 될 수 있습니다. –

답변

5

, 그것은 상태 : 유한 오토마타의 이론의 기본 결과

하나는 언어가 유한 자동 장치에 의해 허용한다는 내용의 유명한 Kleene 정리, 인 경우만 일반 표현으로 나타낼 수 있습니다.

정규 표현의 알고리즘 치료의 주요 어려움은 자신의 단순화, 그러나입니다. 정규 표현식과 관련하여 여러 가지 신원이 알려져 있지만 (예 : Kleene 대수학의 규칙) 정규 표현식의 단순화 문제를 해결하는 효과적인 알고리즘은 존재하지 않습니다.

과 상황에서

, 남아있는 유일한 방법은 정규 표현식을 단순화하기위한 휴리스틱 알고리즘을 개발하는 것입니다. aut 패키지의 경우 이 문서에서는 Maple 절차 Rsimplify, Rabsorb 및 Rexpand에 대해 간략히 설명합니다.

Kleene Algebra 알고리즘의 오픈 소스 구현이 있는지 궁금해합니다.

+1

알겠습니다. 그룹을위한 크 누스 - 베 렉츠 (Knuth-Bendix)와 같은 모든 대수를 단순화하기위한 시스템이 있다고 생각했지만 현재는 그렇지 않습니다. 이 질문은 다음과 같습니다 : http://stackoverflow.com/questions/7540227/strategies-for-simplifying-math-expressions 표준 산술을 단순화하기위한 규칙 기반 시스템 및이 백서 : http://alleystoughton.us/forlan/book-and -slides/slides-3.2-twoup.pdf는 시작하기에 좋은 규칙을 많이 제공합니다. 그러나 나는 처음부터 용어 재 작성 시스템을 정말로 작성해야하는지, 또는 내가 꽂을 수있는 시스템이 있는지 궁금해하고있다. 아마 Automated_theorem_prover 's 중 일부는? .. –