|
|
pl:miw:2009:piw09_clp [2009/06/07 18:57] piw09 |
pl:miw:2009:piw09_clp [2017/07/17 10:08] |
====== Opis ====== | |
Joanna Jaworek, [[jaworek.joanna@gmail.com]] \\ | |
**Temat: Programowanie z wykorzystaniem ograniczeń CLP. Sekwencjonowanie DNA- projekt z wykorzystaniem biblioteki JPL swi-prolog.** | |
| |
====== Wstęp ====== | |
Niniejsza praca składa się z sześciu rozdziałów: programowanie logiczne, programowanie logiczne z ograniczeniami, CHR, problemy NP-trudne, sekwencjonowanie DNA oraz podsumowanie. Celem pierwszych dwóch rozdziałów jest przedstawienie koncepcji programowania w prologu oraz zaprezentowanie kilku zaimplementowanych przykładów. Rozdział trzeci przedstawia ciekawe wykorzystanie programowania CLP/CHR do rozwiązywania problemów NP-trudnych, czyli o dużej złożoności czasowej. Tutaj także zaprezentuję aplikację umożliwiającą testowanie programów. Rozdział czwarty odwołuje się do ostatnich nowinek ze świata nauki, które pokładają dużą nadzieję w sekwencjonowanie DNA właśnie w prologu. Rozdział ten także zawiera moją własną implementację prostego sekwencjonowanie DNA. Ostatni rozdział to podsumowanie referatu oraz przedstawienie innych implementacji platform oraz narzędzi opartych na CLP. | |
| |
====== Programowanie logiczne ====== | |
===== Teoria ===== | |
Programowanie logiczne narodziło się na początku lat 70-tych jako rezultat wcześniejszych prac w zakresie automatycznego dowodzenia twierdzeń i sztucznej inteligencji. Jednak dopiero w chwili opracowania języka PROLOG nabrało walorów praktycznej użyteczności. Metoda programowania w języku logiki stała się podstawą opracowanie języka maszynowego oraz języka programowania wiedzy. Podstawową cechą odróżniającą programowanie logiczne od konwencjonalnych technik programowania jest reprezentowanie wiedzy w sposób jawny, niezwiązany ze sposobem jej użycia w celu rozwiązania problemów drogą rozumowania dedukcyjnego. Pojęcie programowania logicznego jest często źle zdefiniowane. Według Roberta Kowalskiego, będącego jednym z głównych twórców teorii programowania logicznego, opiera się ona na dwóch podstawowych założeniach:\\ | |
* Traktowanie logiki jako języka programowania\\ | |
* Oddzielenie logiki programu od sterowania | |
| |
| |
===== Prolog a programowanie w logice ===== | |
====== Constraint logic programming -programowanie z ograniczeniami ====== | |
===== Teoria ===== | |
===== Propagacja ograniczeń ===== | |
===== Dystrybucja i poszukiwanie ===== | |
===== Ograniczenia ===== | |
==== Arytmetyczne ==== | |
==== Logiczne ==== | |
==== Listy i liczby rzeczywiste ==== | |
===== Moduły CLP ===== | |
==== clpfd (Constraint Programming Language over Finite Domains) ==== | |
==== clp_distinct ==== | |
==== CLP(Q,R) Constraint Logic Programming over Rationals or Reals ==== | |
===== Wady CLP ===== | |
====== CHR -Constraint Handling Rules ====== | |
===== Program z przykładami ===== | |
==== Przykłady ==== | |
==== Implementacja ==== | |
====== Sekwencjonowanie DNA ====== | |
===== Teoria ===== | |
===== Implementacja sekwencjonowania DNA w PROLOGu ===== | |
==== Wybór środowiska ==== | |
==== Interfejs użytkownika ==== | |
====== Podsumowanie ====== | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |