Download presentation

Presentation is loading. Please wait.

Published byJulianna Chalker Modified about 1 year ago

1
Fuzzy Template for Scheme Language Modeling & Simulation Lab. Sungkyunkwan Univ.

2
Fuzzy Rule-Based System Fuzzy Matching Inference Combining Fuzzy Conclusions Defuzzification

3
Standard Additive Model IF x is A i And y is B i THEN z is C i (1 ≤ i ≤ n) a i = the area of C i g i = the centroid of C i

4
Standard Additive Model R1:IFQuantity is Small AND ;; IF Quantity 1 =Small AND Softness is Soft ;; Softness 1 = Soft THENCycle 1 is Light ;; THEN Cycle 1 = Light R2:IFQuantity is Medium AND Softness is Soft THENCycle 2 is Light a 1 =a 2 =>the area of Cycle =Light g 1 =g 2 =the centroid of Light x=quantity (input) y=softness (input) z=cycle (output)

5
Standard Additive Model SmallNormal Small 0.63 x0x0 y0y0 gigi μ Small (x 0 )×μ Normal (y 0 )×a i μ Small (x 0 ) = 0.9 μ Normal (y 0 ) = 0.7

6
Automatic Washing Machine Laundry Quantity Laundry Softness Automated Selection Washing Cycle Washing Time

7
Membership Functions SmallMediumLarge SoftNormalHard Laundry QuantityLaundry Softness

8
Membership Functions LightNormalStrong ShortNormalLong Washing CycleWashing Time

9
Fuzzy Rules InputsOutputs QuantitySoftnessCycleTime 1SmallSoftLightShort 2MediumSoftLightNormal 3LargeSoftNormal 4SmallNormalLightNormal 5MediumNormal 6LargeNormalStrongNormal 7SmallHardNormal 8MediumHardStrongNormal 9LargeHardStrongLong

10
Linguistic Variables Small trapezoid(x: 0.0, 0.0, 0.25, 0.5) (define quantity-small '( )) Medium triangle(x: 0.25, 0.5, 0.75) (define quantity-medium '( ))

11
Fuzzy Membership Functions SmallMediumLarge Laundry Quantity (define quantity-small '( )) (define quantity-medium '( )) (define quantity-large '( ))

12
Fuzzy Rules (define-structure rule if then) (define r1 (make-rule 'if '(···) 'then '(···)) (define r2 (make-rule 'if '(···) 'then '(···)) ··· (define r9 (make-rule 'if '(···) 'then '(···)) (define rules (list r1 r2 r3 r4 r5 r6 r7 r8 r9))

13
Fuzzy Rules R1:IFLaundry Quantity is Small AND Laundry Softness is Soft THENWashing Cycle is Light AND Washing Time is Short (define r1 (make-rule 'if '((quantity quantity-small) (softness softness-soft)) 'then '((cycle cycle-light) (time time-short))))

14
Fuzzy Rules R2:IFLaundry Quantity is Medium AND Laundry Softness is Soft THENWashing Cycle is Light AND Washing Time is Normal (define r2 (make-rule 'if '((quantity quantity-medium) (softness softness-soft)) 'then '((cycle cycle-light) (time time-normal))))

15
Control Flow inference initialize-outputs execute-rule fuzzy-defuzzification execute-rule fuzzy-matching fuzzy-inference-combining fuzzy-matching matching-degree fuzzy-inference-combining fuzzy-area fuzzy-centroid'cycle 'time c t 'fuzzy-outputs 'quantity 'softness q s 'fuzzy-inputs

16
Execution Example [1] (load "fuzzy.s") OK [2] (set! fuzzy-inputs '((quantity 0.3) (softness 0.6))) ((QUANTITY 0.3) (SOFTNESS 0.6)) [3] (inference) ((CYCLE 0.39) (TIME 0.5)) [4] fuzzy-outputs ((CYCLE 0.39) (TIME 0.5))

17
Main Function (define (inference) (initialize-outputs) (map execute-rule rules) (map fuzzy-defuzzification fuzzy-outputs) fuzzy-outputs)

18
Fuzzy Outputs 'cycle 'time '( numerator denominator ) 'fuzzy-outputs 'cycle 'time ··· 'fuzzy-outputs Defuzzification 'cycle 'time ? ? 'fuzzy-outputs Initialize Outputs

19
Initializing Output Variables (define (initialize-outputs) (set! fuzzy-outputs '()) (map (lambda (x) (set! fuzzy-outputs (cons (list (car x) '( )) fuzzy-outputs))) (rule-then (car rules))) #T) 'cycle 'time '( ) 'fuzzy-outputs

20
Rule Execution (define (execute-rule rule) (set! degree-of-match (apply * (map fuzzy-matching (rule-if rule)))) (map fuzzy-inference-combining (rule-then rule)))

21
Fuzzy Matching (define (fuzzy-matching antecedent) (matching-degree (cadr (assoc (car antecedent) fuzzy-inputs)) (eval (cadr antecedent)))) 'if 'then '( (quantity quantity-small) (softness softness-soft)) '(···) 'r1 'quantity 'softness ··· 'fuzzy-inputs

22
Fuzzy Matching Laundry Quantity = 0.4 Degree of Match = 0.6 Medium

23
Fuzzy Matching Small Laundry Quantity = 0.4 Degree of Match = 0.4

24
Matching Degree (define (matching-degree x membership-function) (case (length membership-function) (3 (matching-degree-triangle x membership-function)) (4 (matching-degree-trapezoid x membership-function))))

25
Matching Degree (Triangle) (define (matching-degree-triangle x membership-function) (let ((a (car membership-function)) (b (cadr membership-function)) (c (caddr membership-function))) (cond ((< x a) 0.0) ((and (<= a x) (<= x b)) (if (<> a b) (/ (- x a) (- b a)) 1.0)) ((and (<= b x) (<= x c)) (if (<> b c) (/ (- c x) (- c b)) 1.0)) ((< c x) 0.0))))

26
Matching Degree (Trapezoid) (define (matching-degree-trapezoid x membership-function) (let ((a (car membership-function)) (b (cadr membership-function)) (c (caddr membership-function)) (d (cadddr membership-function))) (cond ((< x a) 0.0) ((and (<= a x) (<= x b)) (if (<> a b) (/ (- x a) (- b a)) 1.0)) ((and (<= b x) (<= x c)) 1.0) ((and (<= c x) (<= x d)) (if (<> c d) (/ (- d x) (- d c)) 1.0)) ((< d x) 0.0))))

27
Combining Fuzzy Conclusions (define (fuzzy-inference-combining consequent) (let* ((area (fuzzy-area (eval (cadr consequent)))) (centroid (fuzzy-centroid (eval (cadr consequent)))) (conclusion (assoc (car consequent) fuzzy- outputs)) (numerator (car (cadr conclusion))) (denominator (cadr (cadr conclusion)))) (set! fuzzy-outputs (delete! conclusion fuzzy-outputs)) ···

28
Combining Fuzzy Conclusions ··· (set! fuzzy-outputs (cons (list (car conclusion) (list (+ numerator (* degree-of-match area centroid)) (+ denominator (* degree-of-match area)))) fuzzy-outputs)) #T))

29
Area (define (fuzzy-area membership-function) (case (length membership-function) (3 (fuzzy-area-triangle membership-function)) (4 (fuzzy-area-trapezoid membership-function))))

30
Centroid (define (fuzzy-centroid membership-function) (case (length membership-function) (3 (fuzzy-centroid-triangle membership-function)) (4 (fuzzy-centroid-trapezoid membership-function))))

31
Triangle

32
Area (Triangle) (define (fuzzy-area-triangle membership-function) (* 0.5 (- (caddr membership-function) (car membership-function))))

33
Centroid (Triangle) (define (fuzzy-centroid-triangle membership-function) (let* ((base (car membership-function)) (a (- (cadr membership-function) base)) (b (- (caddr membership-function) base))) (+ base (/ (+ a b) 3))))

34
Trapezoid

35
Area (Trapezoid) (define (fuzzy-area-trapezoid membership-function) (let ((a (- (caddr membership-function) (cadr membership-function))) (b (- (cadddr membership-function) (car membership-function)))) (* 0.5 (+ a b))))

36
Centroid (Trapezoid) (define (fuzzy-centroid-trapezoid membership-function) (let* ((base (car membership-function)) (a (- (caddr membership-function) (cadr membership-function))) (b (- (cadddr membership-function) base)) (c (- (cadr membership-function) base))) (+ base (/ (+ (* 2 a c) (* a a) (* c b) (* a b) (* b b)) (* 3 (+ a b))))))

37
Defuzzification (define (fuzzy-defuzzification conclusion) (let ((numerator (car (cadr conclusion))) (denominator (cadr (cadr conclusion)))) (set! fuzzy-outputs (delete! conclusion fuzzy-outputs)) (set! fuzzy-outputs (cons (list (car conclusion) (/ numerator denominator)) fuzzy-outputs)) #T))

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google