Definition
En Horn-klausul er en disjunktion af literaler, hvor højst én af literalerne er positiv. Med andre ord må en Horn-klausul indeholde nul eller ét positivt atom, mens resten (hvis nogen) er negationer af atomære formler. Navnet stammer fra Alfred Horn, som beskrev denne form i 1951.
Formelt er en literal enten et atom A eller dennes negation ¬A. En Horn-klausul kan derfor skrives som
bestemt sætning: ¬ p ∨ ¬ q ∨ ⋯ ∨ ∨ ¬ t ∨ u {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t\vee u}
Typer af Horn-klausuler
- Bestemt klausul (definite clause): én positiv literal og nul eller flere negative literaler. Ofte skrevet som implication (p ∧ q ∧ … ∧ t) → u.
- Faktum: en bestemt klausul uden negative literaler, altså blot et positivt atom (u i eksemplet nedenfor).
- Målklausul (goal clause eller clause mål): en Horn-klausul uden positiv literal; dvs. kun negative literaler. Sådanne bruges ofte som forespørgsler eller mål i bevisprocedurer.
faktum: u {\displaystyle u}
målsætningsklausul: ¬ p ∨ ¬ q ∨ ∨ ⋯ ∨ ¬ t {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t}
Førsteordens Horn-klausuler og kvantificering
I førsteordenslogik er variabler i en klausul typisk implicit universelt kvantificerede over hele klausulen. For eksempel kan en førsteordens Horn-klausul skrives som:
¬ menneske ( X ) ∨ dødelig ( X ) {\displaystyle \neg {\text{human}}(X)\lor {\text{mortal}}(X)}
Dette står for
∀ X ( ¬ menneske ( X ) ∨ dødelig ( X ) ) {\displaystyle \forall X(\neg {\text{human}}(X)\lor {\text{mortal}}(X))}
hvilket logisk svarer til implikationen
∀ X ( menneske ( X ) → dødelig ( X ) ) . {\displaystyle \forall X({\text{human}}(X)\rightarrow {\text{mortal}}(X)). }
Horn-klausulers rolle i logik og automatiseret bevisførelse
Horn-klausuler er centrale i konstruktiv logik og beregningslogik. En væsentlig effektivitetsegenskab er, at resolventen af to Horn-klausuler igen er en Horn-klausul. Desuden er resolventen af en målklausul og en bestemt klausul en målklausul. Disse bevarelsesegenskaber er grundlaget for effektive bevisprocedurer, fordi de tillader specialiserede opløsningsalgoritmer (f.eks. SLD-opløsning) som undgår eksplosionen i kompleksitet, der kan opstå i fuld førsteordensopløsning.
Horn-klausuler i logisk programmering
Horn-klausuler udgør det syntaktiske grundlag for logisk programmering, og særligt for sproget Prolog. En bestemt klausul skrives ofte i implicationsform:
( p ∧ q ∧ ⋯ ⋯ ∧ t ) → u {\displaystyle (p\wedge q\wedge \cdots \wedge t)\rightarrow u}
Fra et implementeringssynspunkt fungerer en bestemt klausul som en målreduktionsprocedure: for at bevise u skal man bevise p, q, …, t. Denne bagudrettede søgning (backward chaining) er netop hvad SLD-opløsning gør — opløsning af en målklausul med en bestemt klausul producerer en ny målklausul, og processen fortsættes, indtil målet er opfyldt eller ingen flere opløsninger er mulige.
I logisk programmering skriver man ofte klausuler i bagudvendt form:
u ← ( p ∧ q ∧ q ∧ ⋯ ∧ t ) {\displaystyle u\leftarrow (p\land q\land \cdots \land t)}
I Prolog skrives dette som:
u :- p, q, ..., t.
Bemærk at Prolog-notationen i praksis er tvetydig med hensyn til kvantificering: i førsteordenslogik er variabler i en klausul universelt kvantificerede, mens en forespørgsel (et mål) typisk behandles som at der søges efter eksistentielle bindingsmuligheder (variable som skal instansieres for at opfylde målet).
Semantik: minimale modeller og Herbrand-model
Van Emden og Kowalski (1976) viste vigtige modelteoretiske egenskaber for sæt af definitive (bestemte) klausuler. Hvert sæt D af definitive klausuler har en entydig minimal model M (den mindst mulig model i forståelsen af sættets sande atomformler). En atom A er logisk impliceret af D netop når A er sand i denne minimale model M. For logisk programmering svarer denne model ofte til den mindste Herbrand-model.
Dette betyder også, at et problem P, repræsenteret som en eksistentielt kvantificeret konjunktion af positive literaler, er logisk impliceret af D netop når P er sand i M. Den minimale modelsemantik for Horn-klausuler er desuden grundlag for videre semantiske tilgange (f.eks. stable model semantics og well-founded semantics), som håndterer negation og ikke-monotone aspekter i logiske programmer.
Kompleksitet og beslutbarhed
Propositionelle Horn-klausuler har gunstige kompleksitetsegenskaber: satisfiability-problemet for propositionelle Horn-formler (ofte kaldet HORNSAT) er i P og kan løses i lineær tid (f.eks. ved en baglæns kædetrækning eller ved unit propagation). Faktisk er HORNSAT P-komplet, hvilket betyder, at det er et typisk problem i klassen P med hensyn til (parallel) kompleksitet.
Til sammenligning er det generelle Booleske tilfredsstillelsesproblem SAT NP-komplet. Tilfredsstillelse for Horn-klausuler i første ordens logik er generelt ikke afgørlig (uudsigeligt), fordi førsteordenslogik i almindelighed fører til uafgørlighed.
Praktiske konsekvenser og anvendelser
- Effektiv automatiseret bevisførelse: Horn-fragmentets bevarelsesegenskaber gør det muligt at bygge hurtige og målrettede opløsningsprocedurer (SLD), som anvendes i Prolog-implementeringer.
- Logisk programmering: mange programmer og videnbaser skrives naturligt som sæt af Horn-klausuler (regler og facts), hvilket gør udtrækning af fakta og forespørgsler effektiv.
- Databasesystemer: visse databaseforespørgsler (f.eks. Datalog) kan udtrykkes ved Horn-klausuler, og evalueres effektivt ved fixpunktberegning.
Eksempel på brug i Prolog
Givet klausulen
at vise u {\displaystyle u} , vise p {\displaystyle p}
og vise q {\displaystyle q}
og ⋯ {\displaystyle \cdots }
og show t {\displaystyle t}
kan Prolog-syntaksen u :- p, q, ..., t. bruges til at angive reglen, og en forespørgsel ?- u. vil forsøge at reducere målet til underordnede mål p, q, …, t ved SLD-opløsning.
Afsluttende bemærkninger
Horn-klausuler udgør et fleksibelt og beregningsvenligt fragment af logikken, med stærke forbindelser til praktiske systemer som Prolog, Datalog og enkelte databaseoptimeringsmetoder. Deres formelle egenskaber — bevarelsen ved opløsning, eksistensen af en unik minimal model for definitive programmer og effektiviteten af HORNSAT — forklarer den udbredte anvendelse i både teori og praksis.