Hornova klauzule: Porovnání verzí
Bez shrnutí editace |
m {{Autoritní data}}; formát zápisu šablon; kosmetické úpravy |
||
Řádek 6: | Řádek 6: | ||
Jako ''Hornova formule'' se pak označuje [[formule (logika)|formule]] v [[konjunktivní normální forma|konjunktivní normální formě]], která se skládá z Hornových klauzulí. Jako ''duální'' Hornova klauzule se pak označuje klauzule, která obsahuje nejvýše jeden negativní literál (a ostatní pozitivní). |
Jako ''Hornova formule'' se pak označuje [[formule (logika)|formule]] v [[konjunktivní normální forma|konjunktivní normální formě]], která se skládá z Hornových klauzulí. Jako ''duální'' Hornova klauzule se pak označuje klauzule, která obsahuje nejvýše jeden negativní literál (a ostatní pozitivní). |
||
Důležitost Hornových klauzulí spočívá v tom, že při omezení se na Hornovy klauzule místo obecných klauzulí můžeme v různých případech získat významné zrychlení inferenčních algoritmů. Například úlohla rozhodnutí [[ |
Důležitost Hornových klauzulí spočívá v tom, že při omezení se na Hornovy klauzule místo obecných klauzulí můžeme v různých případech získat významné zrychlení inferenčních algoritmů. Například úlohla rozhodnutí [[splnitelnost]]i obecné výrokové [[Konjunktivní normální forma|CNF]] formule je [[NP (třída složitosti)|NP-těžká]], ale splnitelnost konjunkce Hornových klauzulí lze vyřešit v lineárním čase. <ref>{{Citation |
||
| last1 = Dowling | first1 = William F. |
| last1 = Dowling | first1 = William F. |
||
| last2 = Gallier | first2 = Jean H. |
| last2 = Gallier | first2 = Jean H. |
||
Řádek 24: | Řádek 24: | ||
{{Pahýl}} |
{{Pahýl}} |
||
{{Autoritní data}} |
|||
{{Portály|Matematika}} |
{{Portály|Matematika}} |
||
Verze z 6. 8. 2021, 15:00
Ve výrokové logice se jako Hornova klauzule označuje speciální druh klauzule (disjunkce literálů), která obsahuje nejvýše jeden pozitivní literál (ostatní jsou negované):
- .
Hornovu klauzuli tak lze obecně zapsat jako implikaci ve formě:
- .
Jako Hornova formule se pak označuje formule v konjunktivní normální formě, která se skládá z Hornových klauzulí. Jako duální Hornova klauzule se pak označuje klauzule, která obsahuje nejvýše jeden negativní literál (a ostatní pozitivní).
Důležitost Hornových klauzulí spočívá v tom, že při omezení se na Hornovy klauzule místo obecných klauzulí můžeme v různých případech získat významné zrychlení inferenčních algoritmů. Například úlohla rozhodnutí splnitelnosti obecné výrokové CNF formule je NP-těžká, ale splnitelnost konjunkce Hornových klauzulí lze vyřešit v lineárním čase. [1]
Logické programování
Hornovy klauzule mají stěžejní roli v logickém programování (např. v jazyce Prolog) a jsou důležité pro konstruktivní logiku.
Hornova klauzule obsahující právě jeden pozitivní literál a několik (nejméně jeden) negativních, vyjadřuje implikaci. Někdy se označuje jako určitá klauzule, v jazyce Prolog odpovídá pravidlu (A :- B1, B2, ..., Bn.
). Klauzule obsahující pouze jeden pozitivní literál a žádné negativní odpovídá prostému tvrzení. Někdy se označuje jako cílová klauzule, v jazyce Prolog odpovídá faktu (A :- true.
, případně prostě A.
). Klauzule neobsahující žádný pozitivní literál a obsahující několik negativních odpovídá v jazyce Prolog dotazu (?- B1, B2, ..., Bn.
).
- ↑ DOWLING, William F.; GALLIER, Jean H. Linear-time algorithms for testing the satisfiability of propositional Horn formulae. Journal of Logic Programming. 1984, s. 267–284. DOI 10.1016/0743-1066(84)90014-1.