Halaman

Rabu, 12 Januari 2011

Final Project - O2 PC MASTER

ABSTRACT
O2 PC Master running a troubleshooting Expert System computer along with an explanation of some features of computers that are still poorly understood by users. This program is using Prolog.

WHAT IS EXPERT SYSTEM?
An expert system is software that uses a knowledge base of human expertise for problem solving, or clarify uncertainties where normally one or more human experts would need to be consulted. Expert systems are most common in a specific problem domain, and are a traditional application and/or subfield of artificial intelligence (AI). A wide variety of methods can be used to simulate the performance of the expert; however, common to most or all are:
1) the creation of a knowledge base which uses some knowledge representation structure to capture the knowledge of the Subject Matter Expert (SME)
2) a process of gathering that knowledge from the SME and codifying it according to the structure, which is called knowledge engineering; and
3) once the system is developed, it is placed in the same real world problem solving situation as the human SME, typically as an aid to human workers or as a supplement to some information system. Expert systems may or may not have learning components.

BACKGROUND
Sometimes many people have a lot of problem in order using or operate their personal computer (PC). And also most of them are being confused how to solve the problem with it. They need a thing witch useful to handle and of course solve the problems too.

PROBLEMS
Here are few problems example that mostly happen in daily life.
1.PC unable to connect to the wireless internet connection.
2.PC performance are going to slower than before.
3.Some Documents and files are missing.
4.PC take to long times when it is booting.
5.And many more.

IDEA
According to the problems shown above, we think that we need something to help us to find the solution with our PC. Then we are going to make a kind of troubleshooting program. It must be user friendly, attractive, and the point is useful in order solving problem.

APPLICATION WORK
Problems Categories:
1. Appearance
2. Photos & imaging
3. Online
4. System Tuning
5. Multimedia
6. Office & News
7. Browser and Plugins
8. Firewalls and Security
9. Messaging and chat


Work step :
- This category will classify each problem by providing many options.
- Asks the user to choose to be more specific subcategories
- Solve problems with knowledge of computer science


Selasa, 26 Oktober 2010

An Introduction To Prolog : Rules and Fact

Prolog alias bahasa pemrograman logika atau bisa disebut juga bahasa non-procedural. Bahasa pemrograman ini diluncurkan pada tahun 1972 oleh Alain Colmerauer dan Robert Kowalski dalam rangka menciptakan logika sebagai rangkaian perintah untuk dijalankan oleh komputer. Nama PROLOG sendiri berasal dari bahasa Perancis, Programmation en logique (pemrograman logika). Dalam perkembangannya, Prolog sudah dikombinasikan dalam berbagai bahasa pemrograman, terutama fungsional programing.

Ciri-ciri bahasa prolog :
- Bahasa pemrograman yang non sequential
- Bahasa pemrograman yang deklaratif
- Simbolik
- Berdasarkan first order logic

Kesederhanaan Prolog dibanding bahasa lain adalah :
- Sintaksnya sangat sedikit sekali
- Secara teoritis tidak ada tipe data, tetapi bilangan bulat terpisah.
- Semantik sangat jelas dan terdefinisi secara matematis.

Suatu program prolog tidak memiliki struktur seperti deklarasi, dan lain-lainnya. Seluruh atom ditangani secara sama, yang ada hanyalah clause.

Ada berbagai macam aplikasi untuk menjalankan bahasa prolog. Dalam perkuliahan kami, kami menggunakan SWI Prolog. SWI-Prolog menawarkan Software Gratis komprehensif lingkungan Prolog, berlisensi di bawah GNU Lesser Public License. Bersama dengan XPCE toolkit grafis, pengembangan dimulai pada tahun 1987 dan telah didorong oleh kebutuhan untuk aplikasi dunia nyata. Akhir-akhir ini SWI-Prolog secara luas digunakan dalam penelitian dan pendidikan serta untuk aplikasi komersial.

Cara menginstal SWI prolog yakni :
- Klik 2 kali pada installer.
- Akan muncul license agreement seperti berikut. Pilih "I Agree" saja.

- Lalu muncul jendela untuk memilih komponen yang ingin diinstall seperti berikut. Klik next saja.
- Pilih folder untuk menyimpan aplikasi ini lalu klik next.
- pilih install.
- Instalasi diproses.

- Setelah instalasi selesai, akan muncul jendela seperti berikut. Kemudian klik finish.

Prolog menyelesaikan permasalahan secara deduktif atau menurunkan kesimpulan sebagai jawaban berdasarkan fakta (fact) dan aturan (rule) dengan pencarian dari atas ke bawah.





Fakta, Aturan dan Pertanyaan


Simbol

Ekspresi  Prolog terdiri dari simbol-simbol kebenaran-fungsional berikut, yang memiliki interpretasi yang sama seperti dalam predikat kalkulus.
Bahasa InggrisKalkulus PredikatPROLOG
dan^,
atauv;
jika->: -
tidak~tidak

Variabel dan Nama

Variabel dimulai dengan huruf besar. Nama predikat, nama fungsi, dan nama-nama untuk benda harus dimulai dengan huruf kecil. Aturan untuk membentuk nama-nama adalah sama seperti untuk kalkulus predikat.



Fakta
Fakta adalah ekspresi predikat yang membuat pernyataan deklaratif tentang masalah domain. Setiap kali variabel terjadi dalam ekspresi Prolog, itu dianggap universal dikuantifikasi. Perhatikan bahwa semua kalimat Prolog harus diakhiri dengan periode.

Aturan

aturan adalah ekspresi predikat yang menggunakan implikasi logis (:-) untuk menggambarkan hubungan antara fakta. Jadi aturan Prolog mengambil bentuk
left_hand_side: - right_hand_side.
Kalimat ini diartikan sebagai: left_hand_side jika right_hand_side. left_hand_side Hal ini dibatasi untuk satu, positif, literal, yang berarti harus terdiri dari sebuah ekspresi atom positif. Hal ini tidak dapat ditiadakan dan tidak dapat berisi connectives logis.
Notasi ini dikenal sebagai klausa Horn. Dalam logika klausa Horn, sisi kiri klausa adalah kesimpulan, dan harus satu positif literal. Sisi kanan berisi tempat. Kalkulus Tanduk klausa setara dengan kalkulus predikat urutan pertama.
Contoh aturan yang berlaku:
Contoh aturan tidak valid:

Pertanyaan

Penafsir Prolog menanggapi pertanyaan tentang fakta dan aturan terwakili dalam database-nya. Database diasumsikan untuk mewakili apa yang benar tentang domain masalah tertentu. Dalam membuat query Anda meminta Prolog apakah ia dapat membuktikan bahwa permintaan Anda benar. Jika demikian, itu menjawab "ya" dan menampilkan binding variabel apapun yang dibuat dalam datang dengan jawabannya. Jika gagal untuk membuktikan query benar, maka jawaban "Tidak".Setiap kali Anda menjalankan interpreter Prolog, ia akan meminta Anda dengan? -. Misalnya,  fakta-fakta berikut tentang sebuah keluarga fiktif.
Kami mendapatkan hasil berikut ketika kita membuat pertanyaan tentang database ini. (Saya telah menambahkan komentar, tertutup dalam /*..*/, untuk menafsirkan setiap query.)
 universal. Ditutup Juru Prolog mengasumsikan bahwa database adalah dunia tertutup - yaitu, jika tidak dapat membuktikan sesuatu itu benar, itu menganggap bahwa itu adalah palsu. Hal ini juga dikenal sebagai negasi sebagai gagal - yaitu, ada sesuatu yang salah jika PROLOG tidak dapat membuktikan benar mengingat fakta-fakta dan aturan dalam database-nya. Dalam hal ini, di sumur bisa (di dunia nyata), bahwa Paulus adalah ayah dari Maria, tapi karena ini tidak dapat dibuktikan diberikan database keluarga saat ini, Prolog menyimpulkan bahwa itu adalah palsu. Jadi PROLOG mengasumsikan bahwa database-nya berisi pengetahuan lengkap dari domain ini adalah mulai bertanya tentang.

Prosedur pembuktian Prolog

Dalam menanggapi pertanyaan, interpreter Prolog menggunakan pencarian backtracking, serupa dengan yang kita pelajari dalam Bab 3 dari Luger. Untuk melihat bagaimana ini bekerja, mari kita tambahkan aturan berikut ke database kami:
parent_of (X, Y): - father_of (X, Y).  / * Peraturan # 1 * /
    parent_of (X, Y): - mother_of (X, Y).  / * Aturan # 2 * /
Dan mari kita menelusuri bagaimana PROLOG akan proses query. Misalkan fakta dan aturan database ini disusun dalam urutan yang mereka masukan. Jejak ini mengasumsikan Anda tahu bagaimana unifikasibekerja.
? - Parent_of (jane, mary).
parent_of (jane, mary) / * Prolog dimulai di sini dan pencarian
                               untuk pencocokan fakta atau aturan.  * /
     parent_of (X, Y) / * Prolog menyatukan query dengan aturan # 1
                               menggunakan {jane / X, mary / Y}, memberikan
                               parent_of (jane, mary): - father_of (jane, mary) * /
     father_of (jane, mary) / * Prolog menggantikan LHS dengan RHS dan pencarian.  * /
                            / * Ini gagal untuk mencocokkan father_of (joe, paul) dan  
                               dan father_of (joe, mary), jadi ini GAGAL.  * /
                            / * Prolog BACKTRACKS dengan aturan lain # 2 dan
                               menyatukan dengan {jane / X, mary / Y}, sehingga cocok
                               parent_of (jane, mary): - mother_of (jane, mary) * /
     mother_of (jane, mary) / * Prolog menggantikan LHS dengan RHS dan pencarian.  * /
                       
     YES.  / * Prolog menemukan kecocokan dengan literal dan begitu berhasil.
Berikut jejak query ini menggunakan Prolog's jejak predikat:
| -? Jejak, parent_of (jane, mary).
 {Debugger pertama akan merayap - semuanya menunjukkan (trace)}
    1 1 Call: parent_of (jane, mary)?
    2 2 Call: father_of (jane, mary)?
    2 2 Gagal: father_of (jane, mary)?
    2 2 Call: mother_of (jane, mary)?
    2 2 Keluar: mother_of (jane, mary)?
    1 1 Keluar: parent_of (jane, mary)?

 ya
 {Trace}
 |? -

Latihan

  1. Tambah laki-laki () aturan yang mencakup semua ayah sebagai laki-laki.
  2. Tambahkan wanita () aturan yang mencakup semua ibu sebagai perempuan.
  3. Tambahkan aturan berikut ke database keluarga:
    son_of (X, Y)
        daughter_of (X, Y)
        sibling_of (X, Y)
        brother_of (X, Y)
        sister_of (X, Y)
    
  4. Mengingat penambahan aturan sibling_of, dan dengan asumsi urutan di atas untuk fakta dan aturan, menunjukkan PROLOG jejak untuk sibling_of query (paul, mary).