법률 코드와 복잡성이 관련된 작업이 있는지 알고 싶습니다. 특히, "이 법률 서와 특정 상황을 감안할 때 피고인이 유죄입니까?"라는 결정 문제가 있다고 가정합니다. 어떤 복잡한 클래스에 속합니까?
카드 게임 Magic : The Gathering이 NP와 Turing-complete 인 것으로 입증 된 결과가 있으므로 법적인 코드에 대해 유사한 결과가 없어야합니까?
법률 코드와 복잡성이 관련된 작업이 있는지 알고 싶습니다. 특히, "이 법률 서와 특정 상황을 감안할 때 피고인이 유죄입니까?"라는 결정 문제가 있다고 가정합니다. 어떤 복잡한 클래스에 속합니까?
카드 게임 Magic : The Gathering이 NP와 Turing-complete 인 것으로 입증 된 결과가 있으므로 법적인 코드에 대해 유사한 결과가 없어야합니까?
답변:
법은 임의의 언어를 포함 할 수 있으며, 임의의 언어는 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에 대한 결과가 존재하고 흥미로운 이유는 그것이 변하고, 끔찍하게 현지화되고 끝없이 모호한 법과 달리 (대부분) 명확한 규칙의 단일 고정 세트를 가지고 있기 때문입니다.
이것은 매우 흥미로운 질문입니다.
법은 일상의 언어가 자의적이고 끊임없이 변화하며 종종 부드러운 규칙을 가진 언어와 매우 구체적이고 정의 된 규칙을 가진 프로그래밍 언어 사이의 어딘가에 있습니다.
Legalese는 실제로 그 용어를 정의 하므로 법에 사용 된 많은 단어 (모두는 아닙니다!)는 실제로 정확한 의미를 갖습니다.
그러나 해석 은 논리 시스템에 사례를 제시하고 결과를 얻는 방법이 실패하는 곳입니다. 법은 특정 사건에 맞게 수정해야하는 일반적인 정의입니다. 종종 이것은 사소하고 간단한 과정이지만 경계를 정의하는 것이 사소하지 않은 방법이라는 보장은 없습니다.
좋은 예는 자기 방어입니다. 대부분의 법률 시스템에서는 자기 방어 활동을하는 한 다른 사람을 합법적으로 해칠 수 있습니다. 그러나 문구는 명시 적으로 상황에 따라 다릅니다. 예를 들어, 영국 형법은 다음과 같이 씁니다.
범죄 예방 상황에서 합리적인 힘을 사용할 수있는 사람 [...]
판례법 은 특정 경우에 "합리적인"것을 정의 하지만, 책에 대한 일반적인 정의는 없습니다. "범죄 예방"이 정확히 의미하는 바를 정리하는 판례법도 있습니다. 정의상 범죄가 아직 발생하지 않았기 때문에 법원은 소송이 실제로 범죄라고 판단한 경우가 훨씬 적으며, 이 경우에는 합리적인 신념 만으로도 충분하지만 실제로는 법률로 작성되지는 않습니다!
법에 대한 디지털 의사 결정자를 만들려면 법 자체뿐만 아니라 모든 판례법, 자연 언어 이해 및 모든 지식 을 적용 하는 방법에 대한 규칙을 제공 해야 합니다. 때로는 판례법이 견고하고 때로는 구부릴 수 있습니다 (특히 해석이 시간이 지남에 따라 변하기 때문에 구법 인 경우).
그리고 마지막으로, 법은 책뿐만 아니라 해석에서도 변하고 적응합니다. 자신의 20 살짜리 결정을 무시하는 고등 법원의 유명한 예가 많이 있습니다. 판사들이 기존의 법률에 위배하기로 결정하고 자신이지지하지 않는 결정을 내리는 것보다 상급 법정에서 기각 될 위험이 있기 때문에, 이전 판례법에 대한 그러한 도전은 종종 발생합니다. NP-complete 시스템에서이 기능을 어떻게 모델링 할 수 있을지 궁금합니다.
시스템의 복잡성을 계산하려면 입력과 출력을 이해해야합니다. 그러나 법은 개방형 시스템입니다. 말 그대로 환경의 어떤 것이 든, 특히 사회와 문화의 변화에 영향을 줄 수 있습니다. 대부분의 국가는 사회가 변화했기 때문에 더 이상 거의 적용되지 않는 법에 관한 법률을 가지고 있지만 법 제정 과정은 뒤쳐져 있습니다. 동성애에 대한 법이 현재의 예입니다. 또는 대부분의 국가에서 사형 선고는 법률 서에서 제거되기 전에 수십 년 동안 실제로 적용되지 않았다. 적용 할 수있는 사례가 없었기 때문에가 아니라 심사 위원이 선택에도 불구하고 적용하지 않았기 때문입니다.
이러한 환경 적 요인으로 인해 모든 양자점을 사용하지 않는 한 유한 목록에 열거 할 수 없기 때문에 복잡성 추정이 거의 불가능합니다 (예 : "모든 종류의 ..."또는 "모든 ...")
다른 복잡성 클래스와 마찬가지로 NP 완성도는 다양한 크기의 입력을 취하는 문제와 관련이 있으며 크기는 n으로 표시됩니다 . 특히:
제안 된 솔루션이 실제로 n에 런타임 다항식을 갖는 솔루션인지 판별 할 수 있으면 문제는 NP 입니다.
문제가 NP 인 경우 문제는 NP- 완전 상태이며, n 에서 런타임 다항식을 사용하여 감소 과정을 통해 모든 NP 문제를 문제로 줄일 수 있습니다 .
당신이 제안하는 문제에서, 즉
이 법률 책과 특정 상황이 주어지면 피고인은 유죄입니까?
n 이 무엇인지 확실하지 않습니다 . 여기에 입력 된 내용은 "상황 세트"와 피고인의 이름 인 것 같습니다. 전자의 길이는 다양 할 수 있지만 "환경 집합"이란 무엇을 의미 하는가? "피고가 보라색 양말을 소유하고있다", "심판이 오늘 점심 샌드위치를 먹었다"와 같은 임의의 수의 임의의 사실을 먹이는가? 더욱이 이러한 상황에 제약이 있습니까, 아니면 "세비야 이발사는 스스로 면도하지 않는 이발사를 면도합니다"와 같은 "상황"을 먹일 수 있습니까?
나는이 질문이 잘 제기 된 것이라고 생각하지 않으며, 그것을 제기 할 명확한 방법을 보지 못합니다.
어떤 대답은 그것이 결정 불가능하다고 말하지만, 법이 시행 할 수 없기 때문에 그것이 법이 아니라고 생각합니다.
항상 결정 가능한 방식으로 제한되는 경우 실제 복잡성에 대해 이야기하는 것은 의미가 없습니다. 함수로서의 법의 입력은 일반적으로 카드 게임에서와 같이 법의 사건의 정의가 아니라 사건의 합법적 인 증거이기 때문입니다.
단일 사건에 대해 임의로 많은 증거가있을 수 있습니다. 이벤트의 경우 복잡성을 정의 할 수 있도록 객관적인 입력 길이가 없습니다. 그리고 주어진 증거 세트에 대해, 입력 길이가있는 동안, 법은 보통 누군가가 확실한 결론을 가져야한다고 명시하지 않습니다. 그들은 이론적으로 대답이 논리적으로 어려운 방식으로 추론 될 수 있더라도 더 많은 증거를 수집하려고 시도 할 수있다. 그리고 용의자는 증거없이 작업해야하는 경우 복잡성을 인위적으로 향상시키기 위해 수수께끼의 방법으로 무언가를 인정할 수 있습니다.
암호화가 관련되면 더 많은 문제가 발생합니다. 이론적으로는 매우 오랫동안 계산할 수 있으면 강력한 암호화 알고리즘을 되돌릴 수 있지만 동시에 서명으로 사용할 수 없도록 서명 알고리즘의 신뢰를 잃을 수 있습니다.
배심원 단은 궁극적으로 판사들이 배심원에게 준 적용 가능한 법률과 배심원 지시 사항의 요소를 사용하여 배심원이 결정한 사실에 근거하여 평결을 내립니다. 특히 증인의 신뢰는 누구를 믿어야 하는가. 알고리즘으로 환원 할 수 없습니다.