La legislazione NP è completa?


64

Vorrei sapere se c'è stato qualche lavoro relativo alla complessità del codice legale. In particolare, supponiamo di avere il problema decisionale "Dato questo libro di legge e questo particolare insieme di circostanze, l'imputato è colpevole?" A quale classe di complessità appartiene?

Ci sono risultati che hanno dimostrato che il gioco di carte Magic: the Gathering è sia NP che Turing-complete quindi non dovrebbero esistere risultati simili per il codice legale?


18
La tua affermazione su MtG non può essere corretta, dal momento che ci sono problemi decidibili che non sono in NP . Quindi suppongo tu voglia dire che una parte del gioco è NP -completa e un'altra parte è Turing completa.
David Richerby,

8
Un mio professore ha pubblicato alcuni lavori sull'analisi formale della legislazione, come questo , questo e questo . Non credo sia proprio quello che stai chiedendo, ma nel caso lo trovi pertinente.
jdehesa,

1
La classe di complessità chiamata "gli avvocati sono capaci di infinita complessità". ;) Se sei interessato all'analisi formale di una struttura astratta definita arbitrariamente progettata per approssimare i codici di legge in alcuni modi specifici, tale analisi formale potrebbe essere possibile. Tuttavia, è importante riconoscere che non si collegherà in alcun modo significativo ai casi giudiziari effettivi e al sistema giudiziario reale , anche in un mondo idealizzato. Questioni intenti, e una gran parte di casi giudiziari è stabilendo quali siano le circostanze sono , in primo luogo.
Carattere jolly

9
Dipende interamente dal fatto che il tempo di calcolo sia fatturabile o meno.
Matt Timmermans,

1
Un rapido riferimento sulla complessità del MtG potrebbe essere Chatterjee e Ibsen-Jensen, 1998 . Sicuramente ci sono altri documenti sull'argomento.
Dmitri Chubarov,

Risposte:


33

Le leggi possono includere un linguaggio arbitrario e il linguaggio arbitrario è in grado di esprimere la logica NP-completa. Quindi, in teoria, sarebbe possibile creare una legge NP-completa o addirittura indecidibile. Tuttavia, in pratica la stragrande maggioranza delle leggi penali sono semplici alberi decisionali.

Prendiamo, ad esempio, la sezione 187 (a) del codice penale della California ("omicidio di primo grado").

(a) L'omicidio è l'uccisione illegale di un essere umano, o di un feto, con malizia premeditata.

(b) La presente sezione non si applica alle persone che commettono un atto che provoca la morte di un feto se si verifica una delle seguenti condizioni:

(1) L'atto rispettava la legge sull'aborto terapeutico, l'articolo 2 (a partire dalla sezione 123400) del capitolo 2 della parte 2 della divisione 106 del codice di salute e sicurezza.

(2) L'atto è stato commesso da un titolare del certificato di un medico e di un chirurgo, come definito nel Codice delle professioni e delle professioni, nel caso in cui, per una certezza medica, il risultato del parto sarebbe la morte della madre del feto o dove la sua morte per parto, sebbene non sicura dal punto di vista medico, sarebbe sostanzialmente certa o più probabile che no.

(3) L'atto è stato sollecitato, aiutato, incoraggiato o acconsentito dalla madre del feto.

(c) La suddivisione (b) non deve essere interpretata come un divieto di perseguire qualsiasi persona ai sensi di qualsiasi altra disposizione di legge.

Questo può essere espresso come un semplice insieme di logica booleana.

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)

Ora ovviamente c'è molto che banalizzo qui, come "cosa è stata pensata la malizia", ​​"cos'è un aborto terapeutico" e "come si determina la possibilità di sopravvivenza di una gravidanza". Ma questi possono anche essere espressi come alberi decisionali booleani simili.

Da un punto di vista dell'ingegneria del software, il sistema legale può essere visto come una forma di Business Rule Engine con la legge come suo insieme di regole.

Ciò significa che la maggior parte delle leggi ha una complessità computazionale di c. Se si prende in considerazione anche il processo di esame delle prove richiesto per determinare i valori di tutte queste variabili booleane, la complessità diventa ndove si ntrova la quantità di prove che devono essere valutate.

Tuttavia, a volte le leggi includono un linguaggio che non è affatto decifrabile e richiede un oracolo esterno. Ad esempio, quando menziona concetti come "ragionevole dubbio". Cosa è "ragionevole"? È una decisione del tribunale.


4
Questo è buono. Per il tuo esempio, penso che alcuni degli AND correlati all'aborto dovrebbero essere OR - "uno dei seguenti". Inoltre non vedo la possibilità di sopravvivenza della vittima menzionata qui.
Giosia,

1
+1, ma come allude a Giosia, victim.survivalChance == 0 OR victim.mom.survivalChance < 0.5non è una corretta interpretazione della legge; dice la legge victim.mom.survivalChance == 0 OR victim.mom.survivalChance > 0 AND victim.mom.survivalChance < 0.5, che può essere semplificata al giusto victim.mom.survivalChance < 0.5.
Ruakh

4
Solo un pignolo: se si applica una delle seguenti condizioni non si traduce in x AND y AND zma x OR y OR z.
Tomáš Zato,

3
Se fosse così semplice, perché abbiamo giudici? Perché ci interessa così tanto chi sono? Perché abbiamo la giurisprudenza? Perché ci sono così tanti casi giudiziari controversi? Chiaramente, la legge non è così semplice come si immagina. Il ragionevole dubbio è un buon esempio di una parte problematica (che si verifica abbastanza frequentemente), un altro sarebbe costruire una narrazione da una serie arbitraria di prove o addirittura decidere la durata di una pena detentiva.
11684

1
È anche peggio. Non solo il linguaggio legale può includere un linguaggio arbitrario. Inoltre, non può includere ipotesi implicite. Quindi in teoria può essere infinitamente complesso. Anche il linguaggio umano è così complesso e implicito, che puoi chiedere la definizione di qualsiasi parola in qualsiasi frase, spingendo qualcuno a spiegarlo. Questo può anche andare avanti per sempre. In altre parole, la comunicazione e tutto ciò che è espresso nella comunicazione, non è nemmeno garantito per avere un senso, essere ben definito o mai terminare, quando eseguito.
Speriamo utile

95

È indecidibile perché un libro di legge può includere una logica arbitraria. Una sciocca legge di censura di esempio sarebbe "è illegale pubblicizzare qualsiasi programma per computer che non si ferma".

La ragione per cui i risultati per MTG esistono e sono interessanti è perché ha un unico insieme fisso di regole (per lo più) non ambigue, a differenza della legge che è in continua evoluzione, orribilmente localizzata e infinitamente ambigua.


1
I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
DW

Avviso del moderatore (di nuovo): i commenti non sono per una discussione estesa. Se desideri discutere questa risposta, usa la chat room . Qualsiasi commento pubblicato una volta che esiste una chat room può essere sommariamente eliminato.
Gilles 'SO- smetti di essere malvagio' il

3
Potrebbe essere anche peggio di indecidibile, il che significa che non è definito correttamente o contraddittorio. Ricorda l' Indiana Pi Bill
Hendrik del

10

Questa è una domanda molto interessante

La legge è a metà strada tra il linguaggio quotidiano con le sue regole arbitrarie, in costante cambiamento e spesso morbide, e il linguaggio di programmazione con le sue regole molto specifiche e definite.

Il legalese in realtà definisce i suoi termini e quindi molte parole (ma non tutte!) Utilizzate nella legge hanno in realtà significati precisi.

Tuttavia, l' interpretazione è il punto in cui l'approccio di presentare un caso a un sistema logico e ottenere un risultato fallirà. La legge è una definizione generica che deve essere adattata al caso specifico in questione. Spesso si tratta di un processo banale e diretto, ma non esiste alcuna garanzia che lo sia e non esiste un modo non banale per definire il confine.

Un buon esempio è l'autodifesa. Nella maggior parte dei sistemi giuridici, è possibile ferire legalmente un'altra persona a condizione che si stia comportando per legittima difesa. Tuttavia, la formulazione è esplicitamente sensibile al contesto. Ad esempio, la legge penale britannica scrive:

Una persona può usare la forza che è ragionevole nelle circostanze nella prevenzione del crimine [...]

La giurisprudenza definisce ciò che è "ragionevole" in casi specifici , ma nessuna definizione generale è sui libri. C'è anche una giurisprudenza che chiarisce cosa significa esattamente "prevenzione del crimine". Dato che per definizione un crimine non è ancora avvenuto, tanto meno un tribunale che ha deciso che l'azione era, in realtà, un crimine, in questo caso particolare è sufficiente una ragionevole convinzione , ma che in realtà non è scritto nella legge!

Per creare un decisore digitale sulla legge, dovresti dargli da mangiare non solo la legge stessa, ma anche tutta la giurisprudenza, molta comprensione del linguaggio naturale e molte regole su come applicare tutta quella conoscenza, perché a volte la giurisprudenza è solida, a volte puoi piegarla (specialmente se è vecchia, poiché le interpretazioni cambiano nel tempo).

E infine, la legge cambia e si adatta, non solo nel libro, ma anche nelle sue interpretazioni. Ci sono molti esempi famosi di tribunali supremi che annullano la loro decisione di 20 anni. Molto spesso, tali sfide alla precedente giurisprudenza si verificano esattamente perché un giudice ha deciso di andare contro quelle leggi stabilite e preferirebbe correre il rischio di essere annullato presso il tribunale superiore piuttosto che emettere una decisione che non regge. Mi chiedo come vorresti modellare questa capacità in un sistema NP completo?

Per calcolare la complessità di un sistema è necessario comprendere gli input e gli output. La legge, tuttavia, è un sistema aperto. Letteralmente qualsiasi cosa nel suo ambiente può influenzarlo, in particolare i cambiamenti nella società e nella cultura. La maggior parte dei paesi ha leggi sui libri che raramente vengono più applicate perché la società è cambiata, ma il processo legislativo è in ritardo. Le leggi contro l'omosessualità sono un esempio attuale. O la condanna a morte, che nella maggior parte dei paesi non era stata effettivamente applicata per anni o decenni prima che fosse rimossa dai libri di legge. E non perché non ci fossero casi in cui avrebbe potuto essere applicato, ma semplicemente perché i giudici non lo applicavano nonostante avesse la scelta.

Questi fattori ambientali rendono quasi impossibile una stima della complessità, perché non possiamo elencarli in un elenco finito a meno che non utilizziamo tutti i quantici (ad esempio "ogni tipo di ..." o "tutto il ...")


8

La completezza NP, come con altre classi di complessità, ha a che fare con problemi che accettano un input di dimensioni variabili, le cui dimensioni denotiamo con n . In particolare:

  • Un problema è NP se è possibile determinare se una soluzione proposta è effettivamente una soluzione con polinomio di runtime in n .

  • Un problema è NP-completo se è NP e inoltre ogni problema NP può essere ridotto ad esso mediante un processo di riduzione con polinomio di runtime in n .

Nel problema che proponi, vale a dire

Dato questo libro di legge e questo particolare insieme di circostanze, l'imputato è colpevole?

Non sono sicuro di cosa n debba essere. Sembra che gli input qui siano il "set di circostanze" e il nome dell'imputato. Solo il primo potrebbe avere una lunghezza variabile, ma allora cosa intendiamo per "insieme di circostanze"? Forniamo semplicemente un numero arbitrario di fatti arbitrari come "l'imputato possiede calzini viola" e "il giudice ha mangiato un panino per pranzo oggi" o cosa? Inoltre, ci sono vincoli su queste circostanze, o possiamo alimentare in una "circostanza" come "il barbiere di Siviglia si rade proprio quei barbieri che non si radono"?

Non penso che questa domanda sia ben formulata, né vedo alcun modo ovvio per renderla ben formulata.


Prima del processo, il sistema giudiziario conduce un'indagine preliminare (non sono sicuro che si tratti della parola inglese corretta) in cui vengono raccolte tutte le circostanze rilevanti. Le dimensioni dei documenti che raccolgono queste circostanze dipendono dalla complessità del crimine - per casi semplici solo poche decine di pagine e per quelle complesse (ad esempio Microsoft antitrust), decine di migliaia di pagine o più.
Björn Lindqvist,

5

Penso che ciò che manca nelle eccellenti risposte finora sia che la teoria del calcolo presupponga dati di input noti, certi, mentre la legislazione opera in un campo in cui i fatti sono generalmente incerti e confusi. Il diritto penale, ad esempio, si occupa dell '"intento" o dello "stato d'animo" di un imputato, che non può mai essere conosciuto con certezza. I tribunali di divorzio devono decidere se un matrimonio è "irrimediabilmente fallito". Non può mai esserci un algoritmo per decidere quella domanda.


0

Mentre alcune risposte dicono che è indecidibile, suppongo che non sia ciò a cui le leggi sono rivolte, in quanto non sono applicabili.

Se è limitato in alcuni modi che lo rendono sempre decidibile, probabilmente non ha molto senso parlare della complessità effettiva. È perché gli input delle leggi come funzioni non sono generalmente le definizioni degli eventi nella legge, come in un gioco di carte, ma le prove di eventi legali o no.

Potrebbero esserci arbitrariamente molte prove su un singolo evento. Per un evento, non esiste una lunghezza di input obiettiva che consenta di definire la complessità. E per una data serie di prove, mentre c'è una lunghezza di input, le leggi di solito non specificano che qualcuno deve avere una conclusione definitiva. Potrebbero, e di solito preferiscono provare a raccogliere più prove anche se la risposta potrebbe essere teoricamente dedotta logicamente in modo difficile. E un sospetto potrebbe ammettere qualcosa in modo sconcertante per aumentare artificialmente la complessità se si deve lavorare senza prove.

Ci sarebbero più problemi se fosse coinvolta la crittografia. Potrebbero teoricamente invertire un forte algoritmo di crittografia se fossero in grado di calcolare per molto tempo, ma potrebbero rompere la fiducia di un algoritmo di firma per renderlo non utilizzabile come prova allo stesso tempo.


0

I membri della giuria alla fine emettono verdetti basati sulla legge applicabile emessa dai giudici da seguire e sui fatti determinati dalla giuria utilizzando i fattori nelle istruzioni della giuria. Soprattutto la credibilità dei testimoni ... chi credere. Non riducibile a un algoritmo.


Sembra una risposta piuttosto filosofica, al contrario di una informatica. Ciò non lo rende sbagliato, ma probabilmente non è utile per una domanda posta su questo sito.
Raffaello

Dipende dal fatto che cs consideri la verità di base di un'applicazione e che sia fattibile o meno. Al momento, qualsiasi discussione senza inclusione di punti di contatto AI sembra fuori corso. Ma proviene da una prova di oltre 35 anni e non da un cs guru.
Tom Whitaker Jr

1
Questa risposta è un bel promemoria di quanto sia lontana la teoria della calcolabilità o della decidibilità dalla pratica della legge.
Apass.Jack

@TomWhitakerJr La mia prospettiva, al fine di mantenere lo scopo di questo sito, è che mentre l' applicazione delle tecniche CS dovrebbe essere vincolata da considerazioni etiche / filosofiche, lo studio di tali tecniche non lo è. Sono pienamente consapevole che ci sono lunghe discussioni, ma semplicemente non vedo come possiamo far funzionare questo sito ugualmente bene per questioni tecniche ed etiche / filosofiche. Così, mentre sono pienamente d'accordo che le discussioni ad esempio come deve essere utilizzato AI devono essere tenuti da qualche parte, non credo che questo sito è il posto per esso.
Raffaello
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.