Charakterystyka i przykłady programowania logicznego

Charakterystyka i przykłady programowania logicznego

Programowanie logiczne Jest to paradygmat programowania, który wykorzystuje obwody logiczne zamiast tylko funkcji matematycznych do kontrolowania sposobu określania faktów i reguł.

Zamiast starannie ustrukturyzowanego przepływu kontroli, który decyduje, kiedy wykonać i jak ocenić wywołania funkcji lub innych instrukcji, logiczne reguły programu są zapisywane jako klauzule lub predykaty logiczne.

Przykłady logicznego programowania w prologii. Źródło: autor: Kuldeepsheoran1 - zrzut ekranu, CC przez -sa 3.0, Wikimedia Commons

Takie podejście, które jest często stosowane w programowaniu genetycznym i ewolucyjnym, ogólnie mówi modelowi, jaki cel należy osiągnąć, zamiast tego, jak to osiągnąć.

Każda reguła zawiera nagłówek i ciało z sformalizowaną logiką, zamiast wykonywalnej funkcji matematycznej. Na przykład „i jest to prawda (głowa): jeśli C1, C2 i C3 są prawdziwe (ciało)”. Fakty lub wyniki są wyrażane bez ciała, takiego jak „i jest prawdziwe”.

Jednak z niektórymi językami programowania, takimi jak Prolog. Na przykład „Aby rozwiązać i dodać C1, C2 i C3”.

[TOC]

Charakterystyka programowania logicznego

Programowanie logiczne różni się zasadniczo od innych istniejących strategii programowania. Zamiast instrukcji komputera z programem ustanawiane są relacje między obiektami. W ten sposób komputer może rozumować te relacje, a tym samym osiągnąć logiczne rozwiązania.

W programie logicznym istnieją dwa główne zestawy kodu: fakty i reguły. Zasady mają zastosowanie do faktów w celu uzyskania wiedzy na temat środowiska.

Prawda i logiczne dedukcja

Programy logiczne można rozszyfrować za pomocą dwóch ważnych pojęć: prawdy i logicznych dedukcji. Prawda przychodzi, jeśli obliczenia w programie jest prawdziwe, czy nie, w ramach implementacji symboli programu. Odliczenie logiczne określa, czy klauzula logiczna jest konsekwencją programu.

Może Ci służyć: rodzaje oprogramowania aplikacyjnego

Instrukcje te zawsze będą interpretowane jako logiczne zdania i klauzule, a jego wynikiem jest logiczna konsekwencja obliczeń zawierających.

Logika pierwszego rzędu

Jest to gałąź logiki zdań. Zastanów się, czy obiekty są prawdziwe czy fałszywe z częściowej perspektywy świata, zwane domeną. Programowanie logiczne opiera się na uogólnianiu logiki pierwszego zamówienia.

Ta logika składa się z składni i semantyki. Składnia to formalny język używany do wyrażania pojęć. Z drugiej strony semantyka pierwszych formuł logicznych Zamów wskazuje, jak określić prawdziwą wartość dowolnego formuły.

Ta logika oparta jest na alfabecie i języku pierwszego zamówienia, oprócz zestawu aksjomatów i reguł wnioskowania.

Forma klauzalna

Jest to podzbiór logiki pierwszego zamówienia. Ma znormalizowaną formę, w której zdanie jest zdefiniowane przez uniwersalny prefiks lub łańcuch uniwersalnych kwantyfikatorów oraz wolny zestaw kwantyfikatorów klauzuli.

Żądając konsultacji z programu, organ klauzuli, której nagłówek może się zbiegać. To jest to samo, co zastosowanie zasady wnioskowania w logice.

Jako fragment wnioskowania wybierane są dwie klauzule, które mają jako właściwość, którą jeden zawiera dylemat X (pozytywny literał), a drugi zawiera dylemat (negatywny literał). Te dylemat są znane jako komplementarne.

Na podstawie tych dwóch początkowych klauzul konstruowana jest nowa klauzula rezolucyjna przy użyciu wszystkich literałów, z wyjątkiem uzupełniających się.

Sztuczna inteligencja

Programowanie logiczne jest metodologią, która służy do poszukiwania komputerów do wywnioskowania, ponieważ warto reprezentować wiedzę. Logika służy do reprezentowania wiedzy i wnioskowania, aby sobie z tym poradzić.

Może ci służyć: nticx

Logika używana do reprezentowania wiedzy jest formą klauzuli. Jest używany, ponieważ logika pierwszej kolejności jest dobrze zrozumiana i jest w stanie przedstawić wszystkie problemy obliczeniowe.

Prolog to język programowania oparty na logicznych pomysłach programowania. Chodzi o to, aby logika wydawała się językiem programowania.

Przykłady programowania logicznego

Przykład 1

- Fakt: Rubí jest kotem.

- Zasada: wszystkie koty mają zęby.

- Konsultacje: Rubí ma zęby?

- Wniosek: Tak.

Zasada „Wszystkie koty mają zęby” można zastosować do Rubí, ponieważ istnieje fakt, że „Rubí jest kotem”. Ten przykład nie jest napisany żadną składnią prawdziwego języka programowania.

Przykład 2

Ten przykład można napisać w Prologii, ponieważ jest jednym z najbardziej znanych logicznych języków programowania:

- Kobieta (Alissa).

- mężczyzna (Bobby).

- mężczyzna (Carlos).

- Kobieta (Doris).

- Son_ (Doris, Carlos).

- Son_ (Carlos, Bobby).

- Son_ (Doris, Alissa).

- Ojciec (f, p):- mężczyzna (f), syn_ (p, f).

Ten program jest trudny do odczytania, ponieważ Prolog jest niezwykle różny od innych języków. Każdy składnik kodu, który przypomina „Kobieta (Alissa)." to jest fakt.

Reguła to „ojciec (f, p):- mężczyzna (f), syn_ (p, f)”. Symbol „:-„ Można odczytać jako „To prawda, jeśli”. Listy kapitałowe oznaczają, że zmienne można zastosować do dowolnego obiektu, więc F może oznaczać Carlosa, Doris, Alissa lub Bobby. Ten kod można przetłumaczyć jako:

- Alissa to kobieta.

- Bobby jest mężczyzną.

- Carlos jest mężczyzną.

- Doris to kobieta.

Może Ci służyć: urządzenia wyjściowe: Charakterystyka, jakie są zastosowanie, typy, przykłady

- Doris jest córką Carlosa.

- Carlos jest synem Bobby'ego.

- Doris jest córką Alissy.

- „F jest ojcem p” jest prawdą, jeśli f jest człowiekiem, a jeśli p jest synem f.

Konsultacja

Załóżmy, że chcesz zapoznać się z programem, aby uzyskać więcej informacji. Możesz starać się zapytać, żebyś był od ojca Bobby'ego: ?- Ojciec (Bobby, x). System wskazuje następującą odpowiedź: x = Carlos.

W tym przypadku dzieje się związek, w którym jedna z jego wartości jest zmienną. To, co zrobił, zastosowano różne obiekty do tego związku.

Jedynym ojcem Carlosa jest Bobby, a Bobby jest mężczyzną. To spełniło zasadę.". Kiedy x jest równe „Carlos”, logika jest solidna.

Inne konsultacje

Inne bardziej ogólne konsultacje można dokonać prologu, które sprawiają, że system generuje wiele wyników:

- ?- Ojciec (ojciec, dziecko).

- Ojciec = Bobby

- Dziecko = Carlos

- Ojciec = Carlos

- Dziecko = Doris

Jak można się zaobserwować, logiczne programowanie nie wymaga informacji, że Alissa lub Bobby są ludźmi, aby uzyskać wiedzę na ich temat. W rzeczywistości nie jest konieczne wskazanie, że istnieje koncepcja zwana osobami.

W większości nielogowych języków programowania te pojęcia należy najpierw zdefiniować przed napisaniem programów, które przetwarzają informacje o ludziach.

Bibliografia

  1. Deep AI (2020). Programowanie logiczne. Zaczerpnięte z: deepai.org.
  2. Wikiversity (2020). Teoria języków programowania/programowania logicznego. Zaczerpnięte z: w.Rzeczowość Wiki.org.
  3. Imperial College London (2006). Programowanie logiczne. Zaczerpnięte z: doc.Ic.AC.Wielka Brytania.
  4. Jia-huai ty (2020). WPROWADZENIE DO LOGIC Programmmmmmmm. University of Alberta. Zaczerpnięte z: eng.Ucy.AC.Cy.
  5. C2 Wiki (2020). Programowanie logiczne. Zaczerpnięte z: wiki.C2.com.