4

文字列が特定のパターンに一致するかどうかを確認する必要があるプログラムを作成しています。今のところ、20 を優に超える異なる定義を持つルールに一致するパターン (S) として、これを Prolog に実装しています。

パターン チェック述語を使用して、すべてのバイナリ文字列を特定の長さまで実行することになります。プログラムはかなり遅いです (Prolog はよくあることですが)。非常に多くの異なる定義があるため、理想的には、最も一致するものを順序付けの最初に並べ、Prolog によって最初に一致するように並べ替えたいと考えています。できる限り。

現在、SWI Prolog を使用していますが、SICStus にアクセスできるので、SICStus または無料で入手できる Prolog インタープリターを使用したいと考えています。

4

3 に答える 3

1

SWI-Prolog には、作業に役立つprofile/3show_profile/2があります。

パターン ルールを左に因数分解し、カットを適用すると、パターン間に共通部分がある場合、ランタイムが改善される可能性があります。このような分析は、統計と組み合わせる必要があります。

于 2012-06-14T07:02:40.467 に答える
-2

DCGとカットの使用について考える必要があります。

于 2012-06-13T20:23:31.030 に答える
-3

カットを検討する必要があります。このプロローグ構文は次のとおりです。

!
于 2012-06-13T22:03:47.863 に答える