NIM : 1915051027
Kelas : B
QUIZ Pengantar Kecerdasan Buatan Ganjil 2021/2022
import numpy as np
import skfuzzy as fuzz
from skfuzzy import control as ctrl
#Definisikan input (Antecedent)
permintaan=ctrl.Antecedent(np.arange(2000,6001,1),'Permintaan')
persediaan=ctrl.Antecedent(np.arange(100, 801,1),'Persediaan')
produksi=ctrl.Consequent(np.arange(2000,8001,1), 'Produksi')
#permintaan.automf(2)
#permintaan.view()
#Permintaan
permintaan['turun']=fuzz.trimf(permintaan.universe,[2000,2000,6000])
permintaan['naik']=fuzz.trimf(permintaan.universe,[2000,6000,6000])
permintaan.view()
#Persediaan
persediaan['sedikit']=fuzz.trimf(persediaan.universe,[100,100,800])
persediaan['banyak']=fuzz.trimf(persediaan.universe,[100,800,800])
persediaan.view()
#Produksi
produksi['berkurang']=fuzz.trimf(produksi.universe, [2000,2000,8000])
produksi['bertambah']=fuzz.trimf(produksi.universe, [2000,8000,8000])
produksi.view()
#Rule
rule1=ctrl.Rule(permintaan['turun']&persediaan['sedikit'],produksi['berkurang'])
rule2=ctrl.Rule(permintaan['naik']&persediaan['sedikit'],produksi['bertambah'])
rule3=ctrl.Rule(permintaan['turun']&persediaan['banyak'],produksi['berkurang'])
rule4=ctrl.Rule(permintaan['naik']&persediaan['banyak'],produksi['bertambah'])
tipping_ctrl=ctrl.ControlSystem([rule1,rule2,rule3,rule4])
tipping=ctrl.ControlSystemSimulation(tipping_ctrl)
#Ujicoba
nilaiPermintaan=4500
nilaiPersediaan=200
tipping.input['Permintaan'] = nilaiPermintaan
tipping.input['Persediaan'] = nilaiPersediaan
tipping.compute()
print('Persediaan',nilaiPermintaan,' dan Persediaan =',nilaiPersediaan, ' adalah = ', tipping.output['
Produksi'],'%' )
3. Produksi