praktikum 3 sistem pakar

Upload: damayantielisabethsibarani

Post on 06-Apr-2018

245 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/2/2019 Praktikum 3 Sistem pakar

    1/48

    PRAKTIKUM 3 SISTEM PAKAR

    Wildcard Pattern

    Rule dengan probability (Certainty Factor)

    Asisten Praktikum Sistem pakarDepartemen Ilmu KomputerFakultas MIPAIPB

  • 8/2/2019 Praktikum 3 Sistem pakar

    2/48

    PREVIOUSLY @ PRAKTIKUM 2

    (deftemplate mahasiswa

    (slot nama)

    (slot nrp)

    (slot nilai))

    (deftemplate mutu

    (slot nilai-mutu))

    (deffacts ilkom (mahasiswa (nama aa)

    (nrp g61)

    (nilai 10))

    (mahasiswa (nama bb)

    (nrp g62)

    (nilai 9))

    (mahasiswa (nama cc)

    (nrp g63) (nilai 8))

    (mahasiswa (nama df)

    (nrp g64)

    (nilai 7))

    (mahasiswa (nama ee)

    (nrp g65)

    (nilai 6))

    (mahasiswa (nama fd)

    (nrp g66)

    (nilai 5)))

    (defrule n1 (mahasiswa (nilai 10))

    =>

    (assert (mutu

    (nilai-mutu A))))

    (defrule n2

    (mahasiswa (nilai 9))

    => (assert (mutu

    (nilai-mutu A))))

    (defrule n3

    (mahasiswa (nilai 8))

    =>

    (assert (mutu

    (nilai-mutu B))))

    (defrule n4

    (mahasiswa (nilai 7))

    =>

    (assert (mutu

    (nilai-mutu B))))

    (defrule n5

    (mahasiswa (nilai 6))

    =>

    (assert (mutu

    (nilai-mutu C))))

    (defrule n6

    (mahasiswa (nilai 5))

    =>

    (assert (mutu (nilai-mutu C))))

    Masih ingatkahini???

  • 8/2/2019 Praktikum 3 Sistem pakar

    3/48

    PREVIOUSLY @ PRAKTIKUM 2

    Hasilnya???

  • 8/2/2019 Praktikum 3 Sistem pakar

    4/48

  • 8/2/2019 Praktikum 3 Sistem pakar

    5/48

    SUPAYA LEBIH ELEGAN

    (deftemplate mahasiswa

    (slot nama)

    (slot nrp)

    (slot nilai))

    (deftemplate mutu

    (slot nrp)

    (slot nilai-mutu))

    (deffacts ilkom

    (mahasiswa (nama aa)

    (nrp g61)

    (nilai 10))

    (mahasiswa (nama bb)

    (nrp g62)

    (nilai 9))

    (mahasiswa (nama cc)

    (nrp g63) (nilai 8))

    (mahasiswa (nama df)

    (nrp g64)

    (nilai 7))

    (mahasiswa (nama ee)

    (nrp g65)

    (nilai 6))

    (mahasiswa (nama fd)

    (nrp g66)

    (nilai 5)))

    (defrule n1

    (mahasiswa (nrp ?x)(nilai 10))

    =>

    (assert (mutu

    (nrp ?x)(nilai-mutu A))))

    (defrule n2

    (mahasiswa (nrp ?x)(nilai 9))

    =>

    (assert (mutu (nrp ?x)(nilai-mutu A))))

    (defrule n3

    (mahasiswa (nrp ?x)(nilai 8))

    =>

    (assert (mutu

    (nrp ?x)(nilai-mutu B))))

    (defrule n4

    (mahasiswa (nrp ?x)(nilai 7))

    =>

    (assert (mutu

    (nrp ?x)(nilai-mutu B))))

    (defrule n5

    (mahasiswa (nrp ?x)(nilai 6))

    =>

    (assert (mutu

    (nrp ?x)(nilai-mutu C))))

    (defrule n6

    (mahasiswa (nrp ?x)(nilai 5))

    =>

    (assert (mutu

    (nrp ?x)(nilai-mutu C))))

  • 8/2/2019 Praktikum 3 Sistem pakar

    6/48

    SUPAYA LEBIH ELEGAN

    Hasilnya???

  • 8/2/2019 Praktikum 3 Sistem pakar

    7/48

    WILDCARD PATTERN

    Wildcard Patternmerupakan cara yangdigunakan untuk menggantikan suatu simbolyang terdapat di bagian antesenden suatu

    aturan (LHS)

  • 8/2/2019 Praktikum 3 Sistem pakar

    8/48

    WILDCARD PATTERN

    Terdapat dua jenis wildcard pattern yang seringdigunakan:

    ?x : mengambil satu simbol yang sesuai

    $? : boleh tidak mengambil ataumengambil lebih dari satu simbol(biasanya digunakan pada multislot

  • 8/2/2019 Praktikum 3 Sistem pakar

    9/48

    CONTOH 1

    (deftemplate member_bands

    (multislot member-of))

    (deffacts nama_band(member_bands (member-of beatles john_lennon

    paul_mccartney george_harrison ringo_starr))

    (member_bands (member-of smash roger_daltrey

    pete_townsend keith_moon))

    (member_bands (member-of kangen_band tracey_thorn

    ben_watt)))

    (defrule bands

    (member_bands (member-of ?band $?))

    =>

    (printout t "there is a band called " ?band crlf))

    Contoh 1 (band.clp)

  • 8/2/2019 Praktikum 3 Sistem pakar

    10/48

    CONTOH 2

    (deftemplate member_bands(multislot member-of))

    (deffacts nama_band

    (member_bands (member-of beatles john_lennonpaul_mccartney george_harrison ringo_starr))

    (member_bands (member-of smash roger_daltrey pete_townsend

    keith_moon))(member_bands (member-of kangen_band tracey_thorn

    ben_watt)))(defrule band-members

    (member_bands (member-of ?band ?member $?))=>

    (printout t ?member " is a member of " ?band crlf))

    Contoh 2 (akses_single_member.clp)

  • 8/2/2019 Praktikum 3 Sistem pakar

    11/48

    CONTOH 3

    (deftemplate member_bands

    (multislot member-of))

    (deffacts nama_band(member_bands (member-of beatles john_lennon

    paul_mccartney george_harrison ringo_starr))

    (member_bands (member-of smash roger_daltrey pete_townsend

    keith_moon))

    (member_bands (member-of kangen_band tracey_thorn

    ben_watt)))

    (defrule band-members

    (member_bands (member-of ?band $?members))

    =>

    (printout t "The members of " ?band " are " $?members

    crlf))

    Contoh 3 (akses_multi_member.clp)

  • 8/2/2019 Praktikum 3 Sistem pakar

    12/48

    VARIABEL

  • 8/2/2019 Praktikum 3 Sistem pakar

    13/48

    VARIABEL.CLP

    (deftemplate variabel

    (slot number))

    (deftemplate jumlah

    (slot total))

    (deffacts nilai

    (variabel (number 4))

    (variabel (number 6)))

    (defrule addup

    (variabel (number ?x))

    (variabel (number ?y))

    =>

    (bind ?total (+ ?x ?y))

    (printout t ?x " + " ?y " = " ?total crlf)

    (assert (jumlah (total ?total))))

  • 8/2/2019 Praktikum 3 Sistem pakar

    14/48

    DEFGLOBAL.CLP

    (defglobal?*var1* = 17?*oranges* = "seven")

    (deftemplate variabel(slot number))

    (deftemplate jumlah(slot total))

    (deffacts nilai(variabel (number 24)))

    (defrule addup

    (variabel (number ?x))=>

    (bind ?total (- ?x ?*var1*))(printout t ?x " + " ?*var1* " = " ?total "(" ?*oranges* ")" crlf)(assert (jumlah (total ?total))))

  • 8/2/2019 Praktikum 3 Sistem pakar

    15/48

    Function

    Templates and Conditions

  • 8/2/2019 Praktikum 3 Sistem pakar

    16/48

    BIRTHDAY.CLP

    (defrule birthday_is

    ?ulang_tahun

  • 8/2/2019 Praktikum 3 Sistem pakar

    17/48

    TES_WEIGHT.CLP

    (deftemplate personal-data(slot name) (slot age) (slot weight) (slot height)(multislot blood-pressure))

    (deffacts people

    (personal-data (name Andrew) (age 20) (weight 180) (height 188)(blood-pressure 130 80))(personal-data (name Cyril) (age 63) (weight 70) (height 1678)

    (blood-pressure 180 90)))

    (defrule lardy-bugger

    (personal-data (name ?name) (weight ?weight))(test (> ?weight 100))

    =>(printout t ?name " weighs " ?weight " kg - the fat sod." crlf))

  • 8/2/2019 Praktikum 3 Sistem pakar

    18/48

    PRINT_AGE.CLP

    (deftemplate personal-data(slot name) (slot age) (slot weight) (slot height) (multislot blood-pressure))

    (deffacts people(personal-data (name Andrew) (age 120) (weight 80) (height 188) (blood-

    pressure 130 80))

    (personal-data (name Cyril) (age 63) (weight 70) (height 1678) (blood-pressure 180 90)))

    (defrule print-ages(and

    (personal-data (name ?name) (age ?age))

    (personal-data (name ?name) (weight ?weight)))=>

    (printout t ?name " weighs " ?weight " at " ?age " years old." crlf))

  • 8/2/2019 Praktikum 3 Sistem pakar

    19/48

    UMBRELLA.CLP

    (deftemplate umbrella(slot weather))

    (deffacts cuaca(umbrella (weather raining))

    (umbrella (weather snowing))(umbrella (weather sunny)))

    (defrule take-an-umbrella(or

    (umbrella (weather raining))(umbrella (weather snowing)))=>

    (printout t "Take an umbrella" crlf))

  • 8/2/2019 Praktikum 3 Sistem pakar

    20/48

    NOT_BIRTHDAY.CLP

    (deftemplate personal-data(slot name) (slot age) (slot weight) (slot height) (multislot blood-pressure))

    (deftemplate ultah(slot birthday))

    (deffacts is_ultah(ultah (birthday Andrew)))

    (deffacts people(personal-data (name Andrew) (age 120) (weight 80) (height 188) (blood-

    pressure 130 80))

    (personal-data (name Cyril) (age 63) (weight 70) (height 1678) (blood-pressure180 90)))

    (defrule not-birthday(personal-data (name ?name) (weight ?weight))(not (ultah (birthday ?name)))

    =>(printout t "It's not " ?name "'s birthday" crlf))

  • 8/2/2019 Praktikum 3 Sistem pakar

    21/48

    POINTLESS.CLP

    (defrule pointless

    (test (> 6 5))

    =>(printout t "Six is indeed greater than five"crlf))

  • 8/2/2019 Praktikum 3 Sistem pakar

    22/48

    EXIST_FORALL.CLP

    (deftemplate personal-data(slot name) (slot age) (slot weight) (slot height) (multislot blood-

    pressure))

    (deffacts people

    (personal-data (name Andrew) (age 20) (weight 80) (height 188)(blood-pressure 130 80))(personal-data (name Cyril) (age 63) (weight 70) (height 1678)

    (blood-pressure 180 90)))

    (defrule person-exists

    (personal-data (name ?name))=>

    (printout t "Rule person exists reports there is a person called "?name crlf))

  • 8/2/2019 Praktikum 3 Sistem pakar

    23/48

    LANJUTAN......

    (defrule are-there-people(exists (personal-data (name ?name)))

    =>(printout t "Rule are-there-people reports there is at least one

    person" crlf))

    (defrule check-each-person(forall

    (personal-data (name ?name) (age ?umur))(personal-data (name ?name) (weight ?berat)))=>

    (printout t "Rule check-each-person reports that all personshave a name" crlf))

  • 8/2/2019 Praktikum 3 Sistem pakar

    24/48

    CERTAINTY FACTOR

  • 8/2/2019 Praktikum 3 Sistem pakar

    25/48

    Uncertanity

    There is a uncertainty in the mind

    Of experts when make a decision

    accordance their expertise

  • 8/2/2019 Praktikum 3 Sistem pakar

    26/48

    Causes of Uncertainty

    Not completely and uncertainty information

    Unknown data

    Unify the different of view point of experts

    Imprecise language(always,often,seldom,some times)

  • 8/2/2019 Praktikum 3 Sistem pakar

    27/48

    Certainty Theory

    Certainty factor (cf ), value to measure degree ofbelief from expert.

    Maximum value of cf is +1.0 (definitely true) and

    minimum -1.0 (definitely false).

    Two aspects:

    Certainty in the EvidenceThe evidence can have a certainty factor

    attached

    Certainty in Rule

  • 8/2/2019 Praktikum 3 Sistem pakar

    28/48

    1. Model Net Belief (Shortliffe dan Buchanan)

    CF (Rule)=MB(H,E)-MD(H,E)

    MB(H,E) =

    M D(H,E) =

    Computation of Certainty Factors

    1 ; if P(H)=1

    max[P(H|E),P(H)]-P(H)/1-P(H) ; Otherwise

    1 ; if P(H)=0

    min[P(H|E),P(H)]-P(H)/1-P(H) ; Otherwise

  • 8/2/2019 Praktikum 3 Sistem pakar

    29/48

    Certainty Factors

    Uncertain Term Certainty Factor

    Definitely not -1.0

    Almost certainly not -0.8

    Probably not -0.6

    Maybe not -0.4

    Unknown -0.2 to +0.2

    Maybe +0.4

    Probably +0.6

    Almost certainly +0.8

    Definitely +1.0

    2. Direct Interview with Expert

  • 8/2/2019 Praktikum 3 Sistem pakar

    30/48

    Example :

    Expert :If headache and have a cold and fever,

    then most possibility is influenza

    Rule : IF evidence 1= headache AND evidence2= have a cold AND evidence 3= fever

    THEN seek=influenza

    (cf = 0.8)

  • 8/2/2019 Praktikum 3 Sistem pakar

    31/48

    Expert System With CF

    In Expert System with CF, knowledge basecomposed of set of rules with syntax:

    IF THEN {cf }

    CF refers to degree of belief for hypothesis Hwhen evidence E occured.

  • 8/2/2019 Praktikum 3 Sistem pakar

    32/48

    Degree of belief for hypothesis H whenevidence E occured.cf (H,E) = cf (E) * cf(Rule)

    e.g:IF sky is clearTHEN the forecast is sunny {cf 0.8}

    With cf of sky is clear is 0.5cf (H,E) = 0.5 * 0.8 = 0.4

    Example

  • 8/2/2019 Praktikum 3 Sistem pakar

    33/48

    Multiple Antecedents

    How the CF if we have two evidence?

    With conjunction (i.e. and)

    Use minimum cfof evidence

    With disjunction(i.e. or)

    Use maximum cf ofevidence

  • 8/2/2019 Praktikum 3 Sistem pakar

    34/48

    Conjunctive Antecedents - Example

    Conjunctive Rules:

    cf(H, E1 and E2and Ei) = min{cf(E1 , E2 ,Ei )} *cf(Rule)

    IF there are dark clouds E1

    AND the wind is stronger E2

    THEN it will rain {cf 0.8}

    If cf(E1) = 0.5 and cf(E2) = 0.9, then

    cf(H, E) = min{0.5, 0.9} * 0.8 = 0.4

  • 8/2/2019 Praktikum 3 Sistem pakar

    35/48

    Disjunctive Antecedents - Example

    Disjunctive Rules:

    cf(H, E1 or E2or Ei) = max{cf(E1 , E2, Ei )}*cf(Rule)

    IF there are dark clouds E1

    OR the wind is stronger E2

    THEN it will rain {cf 0.8}

    If cf(E1) = 0.5 and cf(E2) = 0.9, then

    cf(H, E) = max{0.5, 0.9} * 0.8 = 0.72

  • 8/2/2019 Praktikum 3 Sistem pakar

    36/48

    How to determine CF if two rules have similarconclusion?

    Similarly Concluded Rules

    Rule 1:

    IF weatherperson predicts rain (E1)

    THEN it will rain

    {cf1 0.7}

    Rule 2:

    IF farmer predicts rain (E2)

    THEN it will rain

    {cf2 0.9}

  • 8/2/2019 Praktikum 3 Sistem pakar

    37/48

    Similarly Concluded Rules

    Formula :

  • 8/2/2019 Praktikum 3 Sistem pakar

    38/48

    Similarly Concluded Rules

    New CF value from facts above above can beformulated:

    cf (cf1,cf2) = cf1+cf2*(1-cf1)

    = 0.7+0.9(1-0.7)

    = 0.97

  • 8/2/2019 Praktikum 3 Sistem pakar

    39/48

    EXERCISE

    Determine New Value of CF from some facts inbelow :

    1. IF fever

    THEN typhus {cf-0.39}2. IF amount of thrombosis is low

    THEN typhus {cf-0.51}

    3. IF the body is weak

    THEN typhus {cf0.87}

    4. IF diarhea/constipation

    THEN typhus {cf0.63}

  • 8/2/2019 Praktikum 3 Sistem pakar

    40/48

    Combining CF with CLIPS

  • 8/2/2019 Praktikum 3 Sistem pakar

    41/48

    Combining CF with CLIPS

  • 8/2/2019 Praktikum 3 Sistem pakar

    42/48

    Combining CF with CLIPS

  • 8/2/2019 Praktikum 3 Sistem pakar

    43/48

    Combining CF with CLIPS

  • 8/2/2019 Praktikum 3 Sistem pakar

    44/48

    Combining CF with CLIPS

  • 8/2/2019 Praktikum 3 Sistem pakar

    45/48

    Lakukan Beberapa Langkah

    - Load -> Reset -> (agenda)

    - Perhatikan urutan rule yang dijalankan

    Rule dengan Salience yang lebih besar akandieksekusi terlebih dahulu

  • 8/2/2019 Praktikum 3 Sistem pakar

    46/48

    Modifikasi Salience dari Rule

    (defrule both-positif

    (declare (salience 6)) ....

    ....

    ....

    (defrule both-negatif

    (declare (salience 10))

    ....

    ....

    ....

  • 8/2/2019 Praktikum 3 Sistem pakar

    47/48

    Lakukan langkah yang sama : Load -> Reset -> Agenda

    Lihat pada Agenda:

    Akan terlihat bahwa ruledengan salience tinggi, akan dijalankan terlebih dahulu

  • 8/2/2019 Praktikum 3 Sistem pakar

    48/48

    Combining CF with CLIPS

    Cf = 0.8390766