U5 Flashcards

1
Q

Jakie są operatory porównania w języku prolog

A

OPERATORY :
operand - duza literka X,Y,Z przekazywana w predykacie
operand lewostronny - operand po lewej stronnie,
vice versa dla operanda prawostronnego

X is Y - X M U S I byc operandem ,operand prawostronny może być
czymś innym, np wyrażeniem arytematycznym

X =:= Y - wartosci arytmetyczne wyrazen X i Y sa takie same

X == Y - wartosci arytmetyczne wyrazen X i Y sa rozne

X == Y - termy X i Y sa identyczne, maja identyczna strukture i identyczne
argumenty z dokladnoscia do nazwy, np. X==Y jest zawsze nieprawda

X == Y —termy X i Y nie sa identyczne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Za co odpowiada operator =

A

Operator = porównuje operandy. Jeśli obie są termami stałymi, zwraca logiczny wyniki porównania. Jeśli jeden operand lub oba operandy są zmiennymi, wtedy wynik jest zawszę prawdą, z efektem ubocznym przypisania zmiennej stałego operandu. Gdy oba operandy były zmiennymi, to pozostają nimi, ale są zunifikowane, czyli muszą mieć równą wartość w przyszłości.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Czym są reguły w języku Prolog?

A

Reguły w języku Prolog to konstrukcje logiczne, które określają zależności między różnymi faktami i predykatami. Składają się z nagłówka (celu) i ciała, gdzie ciało zawiera warunki, które muszą być spełnione, aby nagłówek był prawdziwy. Reguły są zapisane w postaci klauzul Horn’a, na przykład: nagłówek :- warunek1, warunek2.. Są one podstawą wnioskowania w Prologu, pozwalając na definiowanie bardziej złożonych relacji niż proste fakty. Dzięki regułom, Prolog może wykonywać rekurencyjne zapytania i rozwiązywać problemy poprzez proces dowodzenia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

W jaki sposob Prolog znajduje odpowiedzi na pytania?

A

Prolog szuka odpowiedzi na pytania w bazie danych:

  • Jeżeli pytanie dopasuje się do faktu prostego odpowiedź następuje odrazu.
  • Jeżeli fakt jest regułą to Prolog próbuje dopasować pytanie do lewej strony reguły, jeżeli się uda Prolog wywołuję się rekurencyjnie, aby udowodni fakty po prawej stronie reguły.

Sukces wywołania rekurencyjnego oznacza pozytywną odpowiedź na pytanie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Czym jest język Prolog?

A

Prolog to język programowania logicznego, używany głównie w sztucznej inteligencji i lingwistyce komputerowej. Opiera się na deklaratywnym podejściu, gdzie programista definiuje fakty i reguły, a program sam wnioskuje rozwiązania. Jego składnia i semantyka są oparte na rachunku predykatów pierwszego rzędu. W Prologu, zapytania są zadawane w celu sprawdzenia, czy dane fakty i reguły mogą być spełnione, co czyni go szczególnie użytecznym w problemach związanych z logiką i przeszukiwaniem przestrzeni stanów. Jest ceniony za zdolność do rozwiązywania problemów przez wnioskowanie i rekurencję.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Co to klauzula Horn’a

A

Klauzula Horn’a w kontekście Prologu to specjalna forma klauzuli logicznej, która jest używana do reprezentowania faktów i reguł. Składa się z co najwyżej jednego literału dodatniego (konkluzji) i dowolnej liczby literałów ujemnych (przesłanek). Klauzula Horn’a ma postać:

Fakt: P. (gdzie P jest literałem dodatnim)
Reguła: P :- Q1, Q2, …, Qn. (gdzie P jest literałem dodatnim, a Q1, Q2, …, Qn są literałami, które mogą być zarówno dodatnie, jak i ujemne)
Dzięki tej strukturze, klauzule Horn’a są prostsze do przetwarzania przez algorytmy wnioskowania, co czyni je efektywnym narzędziem w języku Prolog.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Spojniki logiczne w Prolog

A

ALTERNATYWY uzywamy za pomoca “;”

KONIUNKCJI uzywamy za pomoca “,”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jak tworzymy listę w Prologu?

A

Listę w Prologu tworzymy za pomocą nawiasów kwadratowych [ ].
Listę można zapisać za pomocą określenia głowy i reszty w postaci [Head|Rest], podobnie do języka Huskell

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Do czego używa się operatora odciecia?

A

Odciecia uzywa sie do :

  • oznaczenia momentu wyjsciowego z funkcji
  • error handlingu
  • zatrzymania nawracania
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Jak wyglada operator odciecia

A

! przykładowo fakt(a) :- !.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Jakie operacje można wykonać na termach w Prologu?

A

var(term) - sprawdza, czy term jest zmienną.
nonvar(term) - odwrotnie niż var.
atom(term) - sprawdza, czy term jest atomem.
integer(term) - sprawdza, czy term jest liczbą całkowitą.
atomic(term) - sprawdza, czy term jest atomem lub liczbą.
clause - zwraca klauzulę z bazy danych.
functor - zwraca funktor termu.
arg - zwraca argumenty termu.
=.. - zamienia term na listę.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jakie predykaty umożliwiają dynamiczne modyfikowanie bazy danych w Prologu?

A

asserta(term) - dodaje term na początek bazy danych.
assertz(term) - dodaje term na koniec bazy danych.
retract(term) - usuwa term z bazy danych.
Operacje te pozwalają na dynamiczne modyfikowanie bazy wiedzy w Prologu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jakie są podstawowe operacje wejścia/wyjścia w Prologu?

A

Wczytywanie i wypisywanie termów:

read(X) - wczytuje z terminala jeden term zakończony kropką . i podstawia go pod zmienną X.
write(X) - wypisuje na terminalu wartość termu podstawioną pod zmienną X.
see(‘stary’) - otwiera istniejący plik do zapisu.
seen - kończy czytanie z pliku i zamyka plik.

consult(plik1) - ładuje plik z aksjomatami.
reconsult(plik2) - ponownie ładuje plik z aksjomatami.

nl - wypisuje znak nowej linii na terminalu.
Wczytywanie i wypisywanie znaków:

get(X) - czyta znak (w postaci numerycznego kodu znaku).
put(X) - pisze jeden znak, np. put(104) wypisuje znak h.
Operacje na plikach:

tell(‘nowy’) - otwiera nowy plik o nazwie ‘nowy’ i przełącza standardowe wyjście na ten plik.
told - zamyka plik aktualnie otwarty i przełącza standardowe wyjście na terminal.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly