法的コードを複雑性に関連付ける作業があったかどうかを知りたい。特に、「この法律の本とこの特定の状況を考えると、被告は有罪ですか?」という決定問題があると仮定します。どの複雑度クラスに属しますか?
カードゲームMagic:the GatheringはNPとチューリング完全の両方であることが証明された結果があります。同様の結果が法的なコードに存在すべきではないでしょうか。
法的コードを複雑性に関連付ける作業があったかどうかを知りたい。特に、「この法律の本とこの特定の状況を考えると、被告は有罪ですか?」という決定問題があると仮定します。どの複雑度クラスに属しますか?
カードゲームMagic:the GatheringはNPとチューリング完全の両方であることが証明された結果があります。同様の結果が法的なコードに存在すべきではないでしょうか。
回答:
法律には任意の言語を含めることができ、任意の言語はNP完全なロジックを表現できます。したがって、理論的には、NP完全法または決定不可能な法さえも作成することが可能です。ただし、実際には、刑法の大半は単純な決定木です。
たとえば、カリフォルニア州刑法のセクション187(a)( "First Degree Murder")を見てみましょう。
(a)殺人とは、前もって悪意を持った人間または胎児を違法に殺すことです。
(b)このセクションは、以下のいずれかが当てはまる場合、胎児の死に至る行為を行う人には適用されません。
(1)治療中絶法、健康および安全法第106部第2部第2章第2条(第123400項から始まる)に準拠した行為。
(2)この行為は、医学的確実性のために出産の結果が胎児の母親の死または出産による彼女の死は、医学的に確実ではないが、実質的に確実であるか、そうでない可能性が高い。
(3)この行為は、胎児の母親によって要請、援助、告発、または同意された。
(c)下位区分(b)は、他の法律の規定に基づく人の訴追を禁止すると解釈されないものとします。
これは、ブールロジックの単純なセットとして表現できます。
IF !victim.isAlive
AND victim.species == HUMAN
AND defendant.hasKilled( victim )
AND defendant.hadMaliceForethought
AND !( victim.age < 0
AND wasTherapeuticAbortion
AND defendant.profession == DOCTOR
AND ( victim.survivalChance == 0 OR victim.mom.survivalChance < 0.5 )
AND victim.mom.wantedAbortion )
THEN defendant.moveTo(PRISON)
現在、「悪意とは何か」、「治療中絶とは何か」、「妊娠の生存可能性をどのように判断するのか」など、私はここで些細なことを言うのです。ただし、これらは同様のブール決定ツリーとして表現することもできます。
ソフトウェアエンジニアリングの観点から見ると、法制度はビジネスルールエンジンの一種と見なすことができます。
これは、ほとんどの法則の計算の複雑さがであることを意味しc
ます。これらすべてのブール変数の値を決定するために必要な証拠検査のプロセスも考慮すると、複雑さはn
どこn
で評価する必要がある証拠の量になります。
ただし、法律にはまったく決定できない言語が含まれており、外部の神託が必要な場合があります。たとえば、「合理的な疑い」などの概念に言及している場合。「合理的」とは何ですか?それは裁判所が決定するためです。
victim.survivalChance == 0 OR victim.mom.survivalChance < 0.5
に、法律の正しい解釈ではありません。法律は言ってvictim.mom.survivalChance == 0 OR victim.mom.survivalChance > 0 AND victim.mom.survivalChance < 0.5
いますが、それは単純に簡略化できますvictim.mom.survivalChance < 0.5
。
x AND y AND z
けどx OR y OR z
。
法律の本には任意のロジックを含めることができるため、決定できません。愚かな検閲法の例は、「停止しないコンピュータープログラムを公表することは違法です」です。
MTGの結果が存在し、興味深いのは、常に変化し、恐ろしくローカライズされ、際限なく曖昧な法律とは異なり、(ほとんど)明確なルールの単一の固定セットがあるためです。
これは非常に興味深い質問です。
法律は、arbitrary意的で、絶えず変化し、しばしばソフトな規則を持つ日常言語と、非常に具体的で定義された規則を持つプログラミング言語との間のどこかにあります。
法律用語は実際に用語を定義しているため、法律で使用されている多くの単語(すべてではありません!)には正確な意味があります。
ただし、論理システムにケースを提示して結果を取得するアプローチが失敗するのは、解釈です。法律は、問題の特定のケースに適合させる必要がある一般的な定義です。多くの場合、これは簡単な、簡単なプロセスですが、それを保証するものではなく、境界を定義する非自明な方法もありません。
良い例は、自己防衛です。ほとんどの法律システムでは、自衛で行動している場合、他の人を合法的に傷つけることができます。ただし、文言は明示的にコンテキスト依存です。たとえば、英国の刑法は次のように書いています。
人は犯罪防止の状況において合理的であるような力を使用するかもしれません[...]
判例法は、特定のケースで「合理的」であるものを定義していますが、本には一般的な定義はありません。正確に「犯罪の防止」が意味することを明確にする判例法もあります。定義上、犯罪はまだ発生していないので、実際には犯罪であると判断した裁判所はそれほど多くないため、この特定のケースでは合理的な信念で十分ですが、実際には法律に書かれていません!
法律に関するデジタル意思決定者を作成するには、法律自体だけでなく、すべての判例法、多くの自然言語理解、およびそのすべての知識を適用する方法に関する多くの規則をフィードする必要があります。判例法が堅実である場合もあれば、それを曲げることもできる場合があります(特に古い場合は、解釈が時間とともに変化するため)。
そして最後に、法律は本の中でだけでなく、その解釈においても変化し、適応します。20年前の判決を覆す最高裁判所の多くの有名な例があります。非常に多くの場合、以前の判例法に対するそのような挑戦は、裁判官がこれらの確立された法律に違反することを決定したために起こります。NP完全システムでこの能力をどのようにモデル化するのでしょうか。
システムの複雑さを計算するには、入力と出力を理解する必要があります。ただし、法律はオープンシステムです。文字通り、その環境の何でも、特に社会と文化の変化に影響を与えます。大部分の国は、社会が変化したために適用されることはめったにありませんが、法律制定のプロセスは遅れています。同性愛に対する法律は現在の例です。または、死刑判決。ほとんどの国では、法律の本から削除されるまで、実際には何年も何十年も適用されていませんでした。そして、それが適用される可能性のあるケースがなかったからではなく、単に裁判官が選択肢があるにもかかわらずそれを適用しなかったからです。
これらの環境要因は、複雑な推定をほとんど不可能にします。なぜなら、すべての量を使用しない限り、有限のリストにそれらを列挙できないからです(たとえば、「あらゆる種類の...」または「すべての...」)
NP完全性は、他の複雑度クラスと同様に、サイズがnで示されるさまざまなサイズの入力を受け取る問題に関係しています。特に:
問題は、提案された解が実際にnの実行時多項式を持つ解であるかどうかを判断できる場合、NPです。
問題がNPである場合、NP完全であり、さらに、nの実行時多項式を使用した削減プロセスによって、すべてのNP問題を削減できます。
あなたが提案する問題では、すなわち
この法律書とこの特定の状況を考えると、被告は有罪ですか?
nの意味がわかりません。ここでの入力は「状況のセット」と被告の名前のようです。前者だけが長さを変えることができますが、「状況のセット」とはどういう意味でしょうか。「被告人は紫色の靴下を所有している」、「裁判官は今日の昼食にサンドイッチを持っていた」など、arbitrary意的な事実を任意の数だけ与えますか?さらに、これらの状況に制約はありますか、または「セビリアの理髪師は、自分自身を剃らない理髪師を正確に剃ります」のような「状況」を養うことができますか?
この質問が適切だとは思いませんし、適切な質問にするための明らかな方法も見当たりません。
いくつかの答えはそれが決定不能だと言いますが、法は強制力がないので、法律の目的ではないと思います。
何らかの方法で常に決定可能に制限されている場合、実際の複雑さについて話すのはあまり意味がありません。これは、関数としての法則の入力が、一般にカードゲームのように法則のイベントの定義ではなく、イベントが合法であるかどうかの証拠であるためです。
単一のイベントについて、arbitrarily意的に多くの証拠が存在する可能性があります。イベントの場合、複雑さを定義できるようにする客観的な入力長はありません。そして、与えられた一連の証拠について、入力の長さはありますが、法は通常、誰かが明確な結論を持たなければならないことを指定していません。彼らは、たとえ答えが理論的に難しい方法で論理的に推論されたとしても、より多くの証拠を集めることを試みることができ、そして通常それを好む。そして、容疑者は、証拠なしで仕事をしなければならない場合、人為的に複雑さを高めるために不可解な方法で何かを認めることができます。
暗号化が関係する場合は、さらに問題が発生します。非常に長い間計算できる場合、理論的には強力な暗号化アルゴリズムを逆にすることができますが、署名アルゴリズムの信頼性を損ない、同時に証拠として使用できなくなる可能性があります。
審査員は最終的に、裁判官が従うべき審査員に適用される法律と、審査員の指示の要素を使用して審査員が決定した事実に基づいて評決を下します。特に目撃者の信頼性...誰が信じるべきか。アルゴリズムに還元できません。