Značilnosti in primeri logičnega programiranja

Značilnosti in primeri logičnega programiranja

The Logično programiranje To je programska paradigma, ki uporablja logična vezja namesto samo matematičnih funkcij za nadzor, kako so navedena dejstva in pravila.

Namesto skrbno strukturiranega krmilnega toka, ki narekuje, kdaj izvesti, in kako oceniti klice na funkcije ali druga navodila, so logična pravila programa zapisana kot logične klavzule ali predikate.

Primeri logičnega programiranja v prologu. Vir: avtor Kuldeepsheoran1 - posnetek zaslona, ​​CC by -sa 3.0, Wikimedia Commons

Ta pristop, ki se pogosto uporablja v genetskem in evolucijskem programiranju, na splošno pove modelu, kakšen cilj je doseči, namesto kako ga doseči.

Vsako pravilo vsebuje glavo in telo s formalizirano logiko, namesto izvedljive matematične funkcije. Na primer: "In res je (glava): če so C1, C2 in C3 resnični (telo)". Dejstva ali rezultati se izražajo brez telesa, na primer "in je resničen".

Vendar z nekaterimi programskimi jeziki, kot je prolog. Na primer, "rešiti in dodati C1, C2 in C3".

[TOC]

Značilnosti logičnega programiranja

Logično programiranje se bistveno razlikuje od drugih obstoječih strategij programiranja. Namesto navodil za računalnik s programom se vzpostavijo odnosi med predmeti. Na ta način lahko računalnik razloži te odnose in tako doseže logične rešitve.

Znotraj logičnega programa sta dva glavna niza kode: dejstva in pravila. Pravila veljajo za dejstva, da bi pridobili znanje o okolju.

Resnica in logični odbitek

Logične programe je mogoče razvozlati skozi dva pomembna koncepta: resnica in logični odbitek. Resnica pride, če je izračun v programu resničen ali ne, pod izvajanjem programa. Logični odbitek določa, ali je logična klavzula posledica programa.

Vam lahko služi: vrste aplikacijske programske opreme

Ta navodila bodo vedno razlagana kot logični stavki in klavzule, rezultat njegove izvedbe pa je logična posledica izračunov, ki vsebujejo.

Logika prvega reda

Je veja predloge logike. Razmislite, ali so predmeti resnični ali napačni z delne perspektive sveta, imenovanega domena. Logično programiranje temelji na posploševanju logike prve naročila.

Ta logika je sestavljena iz skladnje in semantike. Sintaksa je formalni jezik, ki se uporablja za izražanje konceptov. Po drugi strani semantika logičnih formul prve rede kaže, kako določiti resnično vrednost katere koli formule.

Ta logika temelji na abecedi in jeziku prvega reda, poleg nabora aksiomov in pravil sklepanja.

Clavsalna oblika

Je podskupina logike prve naročila. Ima normalizirano obliko, pri kateri stavek določi univerzalna predpona ali veriga univerzalnih kvantifikatorjev, in prosti nabor klavzule kvantifikatorje.

Ko zahtevate posvetovanje s programa, bo organ klavzule, katere naslov lahko sovpada. To je isto kot uporaba pravila sklepanja v logiki.

Kot odlomek sklepa sta izbrana dva klavzula, ki imata kot lastnost, ki vsebuje dilemo X (pozitivno dobesedno), druga. Ta dilema so znana kot komplementarna.

Iz teh dveh začetnih klavzul je sestavljena nova odločno klavzula z uporabo vseh literalcev, razen dopolnilnih.

Umetna inteligenca

Logično programiranje je metodologija, ki se uporablja za iskanje računalnikov za sklepanje, saj je koristno predstavljati znanje. Logika se uporablja za predstavljanje znanja in sklepanja za to.

Vam lahko služi: nticx

Logika, ki se uporablja za predstavljanje znanja. Uporablja se, ker je logika prvega reda dobro razumljena in je sposobna predstavljati vse računske težave.

Prolog je programski jezik, ki temelji na idejah logičnega programiranja. Ideja prologa je, da se logika zdi programski jezik.

Primeri logičnega programiranja

Primer 1

- Dejstvo: Rubí je mačka.

- Pravilo: Vse mačke imajo zobe.

- Posvetovanje: Rubí ima zobe?

- Zaključek: Da.

Pravilo "Vse mačke imajo zobe", je mogoče uporabiti za Rubí, ker obstaja dejstvo, ki pravi, da je "Rubí mačka". Ta primer ni napisan z nobeno skladnjo pravega programskega jezika.

Primer 2

Ta primer je mogoče zapisati v Prolog, ker je eden najbolj znanih logičnih programskih jezikov:

- ženska (alissa).

- moški (Bobby).

- moški (Carlos).

- ženska (Doris).

- Son_ (Doris, Carlos).

- Son_ (Carlos, Bobby).

- Son_ (Doris, Alissa).

- Oče_ (f, p):- moški (f), sin_ (p, f).

Ta program je težko brati, ker se prolog izjemno razlikuje od drugih jezikov. Katero koli komponento kode, ki spominja na "ženske (alissa)."To je dejstvo.

Pravilo je "oče_ (f, p):- moški (f), sin_ (p, f)". Simbol ":-" lahko beremo kot "res je, če". Kapitalske črke pomenijo, da je mogoče spremenljivke uporabiti za kateri koli predmet, zato bi lahko F lahko pomenili Carlos, Doris, Alissa ali Bobby. To kodo lahko prevedemo kot:

- Alissa je ženska.

- Bobby je človek.

- Carlos je moški.

- Doris je ženska.

Lahko vam služi: izhodne naprave: značilnosti, kakšne so uporaba, vrste, primeri

- Doris je Carlosova hči.

- Carlos je sin Bobbyja.

- Doris je Alissina hči.

- "F je oče P" je res, če je F človek in če je P sin F.

Posvetovanje

Recimo, da se želite posvetovati s programom za več informacij. Lahko želite vprašati, da ste od tega, kdo je oče Bobby: ?- Oče_ (Bobby, x). Sistem bo navedel naslednji odgovor: x = carlos.

V tem primeru se odnos dogaja tam, kjer je ena od njenih vrednosti spremenljivka. Kar je storil.

Carlosov edini oče je Bobby, Bobby. To je izpolnilo pravilo.". Ko je x enak "Carlosu", je logika trdna.

Druga posvetovanja

Druga splošnejša posvetovanja je mogoče izvesti za prolog, zaradi česar sistem ustvari več rezultatov:

- ?- Oče_ (oče, otrok).

- Oče = Bobby

- Otrok = carlos

- Oče = Carlos

- Otrok = Doris

Kot je mogoče opaziti, logično programiranje ne zahteva informacij, da sta Alissa ali Bobby ljudje, ki pridobijo znanje o njih. Pravzaprav ni treba navesti, da obstaja koncept, imenovan oseba.

V večini neloško programskih jezikov je treba te koncepte najprej opredeliti pred pisanjem programov, ki obdelujejo informacije o ljudeh.

Reference

  1. Globoko AI (2020). Logično programiranje. Vzeto od: Deepai.org.
  2. Wikiversity (2020). Teorija programiranja jezikov/logičnega programiranja. Vzeto od: v.Wikiversity.org.
  3. Imperial College London (2006). Logično programiranje. Vzet od: doc.Ic.AC.Združeno kraljestvo.
  4. Jia-huai ti (2020). Uvod v logični programmmmm. Univerza v Alberti. Vzet od: eng.Ucy.AC.Cy.
  5. C2 wiki (2020). Logično programiranje. Vzet od: wiki.C2.com.