Karakteristik dan contoh pemrograman logis

Karakteristik dan contoh pemrograman logis

Itu Pemrograman logis Ini adalah paradigma pemrograman yang menggunakan sirkuit logis, bukan hanya fungsi matematika untuk mengontrol bagaimana fakta dan aturan dinyatakan.

Alih -alih aliran kontrol yang terstruktur dengan cermat yang menentukan kapan harus dieksekusi dan bagaimana mengevaluasi panggilan ke fungsi atau instruksi lainnya, aturan logis program ditulis sebagai klausa logika atau predikat.

Contoh pemrograman logis dalam prolog. Sumber: Oleh Kuldeepsheoran1 - Screenshot, CC oleh -SA 3.0, Wikimedia Commons

Pendekatan ini, yang sering digunakan dalam pemrograman genetik dan evolusi, umumnya memberi tahu model apa yang harus dicapai, alih -alih cara mencapainya.

Setiap aturan berisi header dan badan dengan logika formal, bukan fungsi matematika yang dapat dieksekusi. Misalnya, "dan itu benar (berkepala): jika C1, C2 dan C3 benar (tubuh)". Fakta atau hasilnya diekspresikan tanpa tubuh, seperti "dan benar".

Namun, dengan beberapa bahasa pemrograman seperti prolog. Misalnya, "untuk menyelesaikan dan menambahkan C1, C2 dan C3".

[TOC]

Karakteristik pemrograman logis

Pemrograman logis secara substansial berbeda dari strategi pemrograman lainnya yang ada. Alih -alih instruksi ke komputer dengan program, hubungan antar objek dibuat. Dengan cara ini komputer dapat alasan hubungan ini dan dengan demikian mencapai solusi logis.

Dalam program logis ada dua set kode utama: fakta dan aturan. Aturan berlaku untuk fakta untuk mendapatkan pengetahuan tentang lingkungan.

Kebenaran dan Pengurangan Logis

Program logis dapat diuraikan melalui dua konsep penting: kebenaran dan pengurangan logis. Kebenaran datang jika perhitungan dalam program itu benar atau tidak, di bawah implementasi simbol program. Pengurangan logis menentukan apakah klausa logis adalah konsekuensi dari program.

Dapat melayani Anda: jenis perangkat lunak aplikasi

Instruksi ini akan selalu diartikan sebagai kalimat dan klausa logis, hasil pelaksanaannya menjadi konsekuensi logis dari perhitungan yang mengandung.

Logika urutan pertama

Itu adalah cabang logika proposisional. Pertimbangkan jika objek benar atau salah dari perspektif parsial dunia, yang disebut domain. Pemrograman logis didasarkan pada generalisasi logika urutan pertama.

Logika ini terdiri dari sintaks dan semantik. Sintaks adalah bahasa formal yang digunakan untuk mengekspresikan konsep. Di sisi lain, semantik rumus logika urutan pertama menunjukkan bagaimana menentukan nilai sebenarnya dari rumus apa pun.

Logika ini didasarkan pada alfabet dan bahasa orde pertama, di samping seperangkat aksioma dan aturan inferensi.

Bentuk klausa

Ini adalah subset dari logika urutan pertama. Ini memiliki bentuk yang dinormalisasi di mana suatu kalimat ditentukan oleh awalan universal atau rantai quantifiers universal, dan satu set bebas klausa kuantifikasi.

Saat meminta konsultasi dari program, badan klausa yang tajuknya mungkin bertepatan. Ini sama dengan menerapkan aturan inferensi dalam logika.

Sebagai bagian dari inferensi, dua klausa dipilih yang memiliki properti yang satu mengandung dilema X (literal positif) dan yang lainnya mengandung dilema ¬x (literal negatif). Dilema ini dikenal sebagai pelengkap.

Dari dua klausa awal ini, klausa resolutif baru dibangun menggunakan semua literal, kecuali yang saling melengkapi.

Kecerdasan buatan

Pemrograman logis adalah metodologi yang digunakan untuk mencari komputer untuk disimpulkan, karena berguna untuk mewakili pengetahuan. Logika digunakan untuk mewakili pengetahuan dan inferensi untuk menanganinya.

Dapat melayani Anda: nticx

Logika yang digunakan untuk mewakili pengetahuan adalah bentuk klausa. Ini digunakan karena logika urutan pertama dipahami dengan baik dan mampu mewakili semua masalah komputasi.

Prolog adalah bahasa pemrograman yang didasarkan pada ide pemrograman logis. Gagasan prolog adalah membuat logika tampak sebagai bahasa pemrograman.

Contoh pemrograman logis

Contoh 1

- Fakta: Rubí adalah kucing.

- Aturan: Semua kucing memiliki gigi.

- Konsultasi: Rubí memiliki gigi?

- Kesimpulan: Ya.

Aturan "Semua kucing memiliki gigi" dapat diterapkan pada Rubí, karena ada fakta yang mengatakan "Rubí adalah kucing". Contoh ini tidak ditulis dengan sintaks dari bahasa pemrograman nyata.

Contoh 2

Contoh ini dapat ditulis dalam Prolog, karena menjadi salah satu bahasa pemrograman logis paling terkenal:

- Wanita (Alissa).

- Pria (Bobby).

- Pria (Carlos).

- Wanita (Doris).

- Son_ (Doris, Carlos).

- Son_ (Carlos, Bobby).

- Son_ (Doris, Alissa).

- Ayah_ (f, p):- pria (f), son_ (p, f).

Program ini sulit dibaca, karena prolog sangat berbeda dari bahasa lain. Komponen kode apa pun yang menyerupai “betina (alissa)." itu adalah fakta.

Aturannya adalah "ayah_ (f, p):- pria (f), son_ (p, f)". Simbol ":-" dapat dibaca sebagai "itu benar jika". Huruf kapital berarti bahwa variabel dapat diterapkan pada objek apa pun, jadi F bisa berarti Carlos, Doris, Alissa atau Bobby. Kode ini dapat diterjemahkan sebagai:

- Alissa adalah seorang wanita.

- Bobby adalah seorang pria.

- Carlos adalah seorang pria.

- Doris adalah seorang wanita.

Itu dapat melayani Anda: perangkat output: karakteristik, apa saja penggunaan, jenis, contoh

- Doris adalah putri Carlos.

- Carlos adalah putra Bobby.

- Doris adalah putri Alissa.

- "F adalah ayah dari P" benar jika f adalah seorang pria dan jika P adalah putra f.

Konsultasi

Misalkan Anda ingin berkonsultasi dengan program ini untuk informasi lebih lanjut. Anda dapat berusaha meminta Anda berasal dari siapa Pastor Bobby dengan: ?- Ayah_ (bobby, x). Sistem akan menunjukkan jawaban berikut: x = Carlos.

Dalam hal ini suatu hubungan terjadi di mana salah satu nilainya adalah variabel. Apa yang dia lakukan adalah menerapkan objek yang berbeda untuk hubungan ini sampai salah satu dari mereka secara logis solid.

Ayah satu -satunya Carlos adalah Bobby, dan Bobby adalah seorang pria. Ini memuaskan aturannya.". Saat x sama dengan "Carlos", logika itu padat.

Konsultasi lainnya

Konsultasi lain yang lebih umum dapat dilakukan untuk Prolog, yang membuat sistem menghasilkan banyak hasil:

- ?- Ayah_ (ayah, anak).

- Ayah = Bobby

- Anak = Carlos

- Ayah = Carlos

- Anak = Doris

Seperti yang dapat diamati, pemrograman logis tidak memerlukan informasi bahwa Alissa atau Bobby adalah orang untuk mendapatkan pengetahuan tentang mereka. Faktanya, tidak perlu menunjukkan bahwa ada konsep yang disebut orang.

Dalam sebagian besar bahasa pemrograman non -logikal, konsep -konsep ini harus terlebih dahulu didefinisikan sebelum menulis program yang memproses informasi tentang orang.

Referensi

  1. Deep AI (2020). Pemrograman Logika. Diambil dari: Deepai.org.
  2. Wikiversity (2020). Teori Bahasa Pemrograman/Pemrograman Logika. Diambil dari: di.Wikiversitas.org.
  3. Imperial College London (2006). Pemrograman Logika. Diambil dari: Dok.Ic.Ac.Inggris.
  4. Jia-Huai You (2020). Pengantar Programmmmmmmmmmm. Universitas Alberta. Diambil dari: Eng.UCY.Ac.Cy.
  5. C2 Wiki (2020). Pemrograman Logika. Diambil dari: wiki.C2.com.