Gostaria de saber se houve algum trabalho relacionado ao código legal da complexidade. Em particular, suponha que tenhamos o problema de decisão "Dado este livro de leis e esse conjunto específico de circunstâncias, o réu é culpado?" A que classe de complexidade pertence?
Há resultados que provaram que o jogo de cartas Magic: the Gathering é NP e Turing-completo, portanto não deveriam existir resultados semelhantes para o código legal?
complexity-theory
np-complete
decision-problem
Björn Lindqvist
fonte
fonte
Respostas:
As leis podem incluir linguagem arbitrária e a linguagem arbitrária é capaz de expressar uma lógica NP-completa. Portanto, em teoria, seria possível criar uma lei NP-completa ou mesmo indecidível. No entanto, na prática, a grande maioria das leis criminais são simples árvores de decisão.
Vamos considerar, por exemplo, a seção 187 (a) do código penal da Califórnia ("assassinato em primeiro grau").
Isso pode ser expresso como um conjunto simples de lógica booleana.
Agora, é claro, há muita coisa que eu trivializo aqui, como "o que é malícia predita", "o que é um aborto terapêutico" e "como você determina a chance de sobrevivência de uma gravidez". Mas eles também podem ser expressos como árvores de decisão booleanas semelhantes.
Do ponto de vista da engenharia de software, o sistema jurídico pode ser visto como uma forma do Business Rule Engine, sendo a lei o seu conjunto de regras.
Isso significa que a maioria das leis tem uma complexidade computacional de
c
. Se você também levar em consideração o processo de exame de evidência necessário para determinar os valores de todas essas variáveis booleanas, a complexidade se tornarán
onden
está a quantidade de evidência que precisa ser avaliada.No entanto, às vezes as leis incluem linguagem que não é decidível e requer um oráculo externo. Por exemplo, quando menciona conceitos como "dúvida razoável". O que é "razoável"? Isso é para um tribunal decidir.
fonte
victim.survivalChance == 0 OR victim.mom.survivalChance < 0.5
não é uma interpretação correta da lei; está dizendo a leivictim.mom.survivalChance == 0 OR victim.mom.survivalChance > 0 AND victim.mom.survivalChance < 0.5
, que pode ser simplificada para apenasvictim.mom.survivalChance < 0.5
.x AND y AND z
masx OR y OR z
.É indecidível, porque um livro de direito pode incluir lógica arbitrária. Um exemplo bobo da lei de censura seria "é ilegal divulgar qualquer programa de computador que não pare".
A razão pela qual os resultados do MTG existem e são interessantes é porque ele tem um único conjunto fixo de regras (principalmente) inequívocas, ao contrário da lei que está sempre mudando, terrivelmente localizada e infinitamente ambígua.
fonte
Esta é uma questão muito interessante.
A lei está em algum lugar entre a linguagem cotidiana, com suas regras arbitrárias, em constante mudança e com frequência moderadas, e a linguagem de programação com suas regras definidas e muito específicas.
O legalês realmente define seus termos e, portanto, muitas palavras (mas não todas!) Usadas na lei realmente têm significados precisos.
No entanto, é na interpretação que sua abordagem de apresentar um caso a um sistema lógico e obter um resultado falhará. A lei é uma definição genérica que precisa ser adaptada ao caso específico em questão. Muitas vezes, esse é um processo simples e trivial, mas não há garantia de que seja e não existe uma maneira não trivial de definir o limite.
Um bom exemplo é a autodefesa. Na maioria dos sistemas jurídicos, você pode ferir legalmente outra pessoa, desde que esteja agindo em legítima defesa. No entanto, o texto é explicitamente sensível ao contexto. Por exemplo, a lei criminal britânica escreve:
A jurisprudência define o que é "razoável" em casos específicos , mas nenhuma definição geral está nos livros. Há também jurisprudência esclarecendo o que exatamente "prevenção do crime" significa. Como, por definição, um crime ainda não ocorreu, muito menos um tribunal que decidiu que a ação era, de fato, um crime, uma crença razoável é suficiente neste caso em particular, mas isso não está realmente escrito na lei!
Para criar um tomador de decisão digital sobre a lei, você teria que alimentá-la não apenas a lei em si, mas também toda a jurisprudência, muita compreensão da linguagem natural e muitas regras sobre como aplicar todo esse conhecimento, porque às vezes a jurisprudência é sólida, às vezes você pode entendê-la (especialmente se for antiga, pois as interpretações mudam com o tempo).
E, finalmente, a lei muda e se adapta, não apenas no livro, mas também em suas interpretações. Existem muitos exemplos famosos de tribunais superiores que anulam sua própria decisão de 20 anos. Muitas vezes, esses desafios à jurisprudência anterior acontecem exatamente porque um juiz decidiu contrariar essas leis estabelecidas e ele prefere correr o risco de ser anulado no tribunal superior do que proferir uma decisão que ele não defende. Gostaria de saber como você modelaria essa capacidade em um sistema NP-completo?
Para calcular a complexidade de um sistema, precisamos entender as entradas e saídas. A lei, no entanto, é um sistema aberto. Literalmente, qualquer coisa em seu ambiente pode influenciá-lo, especialmente mudanças na sociedade e na cultura. A maioria dos países possui leis que raramente são aplicadas porque a sociedade mudou, mas o processo legislativo fica para trás. Leis contra a homossexualidade são um exemplo atual. Ou a sentença de morte, que na maioria dos países não era aplicada há anos ou décadas antes de ser removida dos livros de direito. E não porque não houvesse casos em que pudesse ter sido aplicado, mas simplesmente porque os juízes não o aplicaram, apesar de ter a opção.
Esses fatores ambientais tornam quase impossível uma estimativa de complexidade, porque não podemos enumerá-los em uma lista finita, a menos que utilizemos todos os quantores (por exemplo, "todo tipo de ..." ou "todo o ...")
fonte
A completude de NP, como em outras classes de complexidade, tem a ver com problemas que recebem uma entrada de tamanho variável, cujo tamanho denotamos por n . Em particular:
Um problema é NP se for possível determinar se alguma solução proposta é realmente uma solução com polinômio de tempo de execução em n .
Um problema é NP-completo se for NP e, além disso, todo problema de NP pode ser reduzido a ele por um processo de redução com o polinômio de tempo de execução em n .
No problema que você propõe, a saber
Não tenho certeza do que n deve ser. Parece que as informações aqui são o "conjunto de circunstâncias" e o nome do réu. Somente o primeiro poderia ter uma duração variável, mas o que queremos dizer com "conjunto de circunstâncias"? Nós apenas alimentamos um número arbitrário de fatos arbitrários como "o réu possui meias roxas" e "o juiz comeu um sanduíche no almoço hoje" ou o quê? Além disso, existem restrições a essas circunstâncias, ou podemos alimentar uma "circunstância" como "o barbeiro de Sevilha faz a barba precisamente aqueles barbeiros que não fazem a barba"?
Não acho que essa pergunta seja bem colocada, nem vejo uma maneira óbvia de fazê-la.
fonte
Acho que o que falta nas excelentes respostas até agora é que a teoria da computação assume dados de entrada conhecidos, certos, enquanto a legislação está operando em um campo em que os fatos são geralmente incertos e confusos. O direito penal, por exemplo, se preocupa com a "intenção" ou "estado de espírito" de um réu, que nunca pode ser conhecido com certeza. Os tribunais de divórcio precisam decidir se um casamento "se deteriorou irremediavelmente". Nunca pode haver um algoritmo para decidir essa pergunta.
fonte
Embora algumas respostas digam que é indecidível, suponho que não sejam para que servem as leis, pois elas não são aplicáveis.
Se ele é restrito de algumas maneiras que o torna sempre decidível, provavelmente não faz muito sentido falar sobre a complexidade real. Isso ocorre porque as entradas de leis como funções geralmente não são as definições de eventos na lei, como em um jogo de cartas, mas evidências de eventos sendo legais ou não.
Poderia haver arbitrariamente muitas evidências sobre um único evento. Para um evento, não há um comprimento de entrada objetivo para permitir definir a complexidade. E para um determinado conjunto de evidências, embora exista um comprimento de entrada, as leis geralmente não especificam que alguém deve ter uma conclusão definitiva. Eles poderiam, e geralmente preferem tentar coletar mais evidências, mesmo que a resposta possa ser deduzida teoricamente de uma maneira difícil. E um suspeito poderia admitir algo de uma maneira intrigante para aumentar artificialmente a complexidade, se alguém tiver que trabalhar sem evidências.
Haveria mais problemas se a criptografia estivesse envolvida. Teoricamente, eles poderiam reverter um forte algoritmo de criptografia se pudessem calcular por muito tempo, mas podem quebrar a confiança de um algoritmo de assinatura para torná-lo não utilizável como evidência ao mesmo tempo.
fonte
Os membros do júri, em última instância, emitem vereditos com base na lei aplicável dada pelos juízes ao júri a seguir e nos fatos, conforme determinados pelo júri, usando os fatores nas instruções do júri. Especialmente credibilidade de testemunhas ... em quem acreditar. Não redutível a um algoritmo.
fonte