たとえば、文字列形式(Javaの場合)で異なる表現を使用しています:
String expression = "IN G1 AND OUT G1 AND (IN G2 OR OUT G3)
ここで G1 、 G2 、 G3 は領域を表し、キーワードは IN 、 AND 、 OUT 、 OR 、 (, ) のみを使用できます。式が論理的に正しいかどうかを確認する必要があり、これらのタイプの式を単純化したいと考えています。
ここでの表現の意味は、物が G1 にあり、G1 の外側にある必要があり (論理的にはありえない)、G2 にある必要があるか、G4 の外側にある必要があるということです。
ここで、 IN G1 AND OUT G1 (このようなケース)を満たす可能性がないため、式が論理的に正しくないことを検出できるアルゴリズムが必要です。
式は任意のレベルでネストできます。これらのタイプの式の論理的な正しさをどのように検出し、論理的でない場合は式をある程度減らすことができるか教えてください。
これは実装するのが少しトリッキーなアルゴリズムであることは知っていますが、これに対する助けは大歓迎です。前もって感謝します