Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Bilimler bazası hám ekspert sistemaları

.pdf
Скачиваний:
0
Добавлен:
22.10.2024
Размер:
390.73 Кб
Скачать

Bilimler bazası hám ekspert sistemaları

Jobası:

Kirisiw

Bilimlerdi ajıratıp alıw usılları

Bilimlerdi usınıw modelleri

Anıq emes bilim modelleri

Ekspert sistemaları

Ámeliy qollanıw

1. Kirisiw

Bilimler bazası - bul qanday da bir taraw boyınsha bilimlerdi sistemalı túrde saqlawǵa hám qayta islewge múmkinshilik beretuǵın maǵlıwmatlar bazasınıń bir túri. Bilimler bazası ekspert sistemaların jaratıwdıń tiykarǵı elementi bolıp tabıladı.

2. Bilimlerdi ajıratıp alıw usılları

Bilimlerdi ajıratıp alıw - bul ekspertlerdiń bilimlerin formallaw hám strukturalaw procesi. Tiykarǵı usılları:

2.1.Tekstlik dereklerde analiz júrgiziw

Kitaplar, maqalalar, dokumentler

Ilimiy izertlewler nátiyjeleri

Texnikalıq hújjetler

2.2.Ekspertler menen jumıs

Soraw-juwap

Bayqaw

Anketa tolıtırıw

Intervyu alıw

2.3.Másele sheshiw processin analiz qılıw

Case-study

Protocol-analiz

Sheshimler teregi

3. Bilimlerdi usınıw modelleri

3.1. Freym modeli

Freym - bul obyekttiń yamasa situaciyanıń strukturalıq kórinisin beriwshi data strukturası.

Freymniń strukturası:

Freym atı

Slotlar (qásiyetler)

Slotlar mánisleri

Demon proceduraları

Slottı tolıtırıw qaǵıydaları

3.2.Produkciyalıq model

Produkciyalıq model "eger-onda" túrindegi qaǵıydalar sistemasına tiykarlanǵan.

Strukturası:

Copy

EGER <shárt>

ONDA <háreket/juwmaq>

Artıqmashılıqları:

Ápiwayı hám túsinikli

Modullik

Parallel qayta islew múmkinshiligi

3.3.Logikalıq model

Predikatlıq logika tiykarında bilimlerdi usınıw.

Tiykarǵı elementleri:

Faktler

Qaǵıydalar

Logikalıq operatorlar

Predikatlıq formulalar

3.4.Semantikalıq model

Semantikalıq tor arqalı bilimlerdi usınıw.

Komponentleri:

Túyinler (koncept/obyektler)

Baylanıslar (qatnaslar)

Qásiyetler

4.Anıq emes bilim modelleri

4.1.Anıq emes logika tiykarları

Anıq emes kóplikler

Lingvistikalıq ózgeriwshiler

Aǵzalıq funkciyası

4.2.Anıq emes qaǵıydalar

EGER x anıq emes A

ONDA y anıq emes B

4.3.Qollanıw tarawları

Basqarıw sistemaları

Sheshim qabıl qılıw

Pattern tanıw

5. Ekspert sistemaları

5.1. Tiykarǵı túsinikler

Ekspert sisteması - bul qanday da bir taraw boyınsha ekspertlik bilimlerdi qollanıp, qıyın máseleledi sheshiwge járdem beretuǵın programmalıq támiynlew.

5.2.Ekspert sistemasınıń strukturası

1.Bilimler bazası

2.Juwmaq shıǵarıw mashini

3.Maǵlıwmatlar bazası

4.Túsindiriw moduli

5.Bilimlerdi ajıratıp alıw moduli

6.Paydalanıwshı interfeysi

5.3.Ekspert sistemalarınıń tipleri

Diagnostikalıq

Proǵnozlawshı

Jobalawshı

Monitoringli

Oqıtıwshı

5.4.Qollanıw tarawları

Medicinalıq diagnostika

Finans analizi

Texnikalıq qollaw

Ilimiy izertlewler

Biznes konsalting

6.Ámeliy qollanıw

6.1.Ekspert sistemasın jaratıw basqıshları

1.Másele qoyıw

2.Bilimlerdi jıynaw

3.Formallaw

4.Prototip jaratıw

5.Testlew

6.Óndiriske endiriw

6.2.Zamanagóy qurallar

CLIPS

Prolog

Python frameworkleri

Jaqın AI sistemaları

Juwmaq

Bilimler bazası hám ekspert sistemaları - jasalma intellekttiń áhmiyetli bólimi bolıp, kóp tarmalarda qollanıladı. Házirgi waqıtta bul sistemaları machine learning (mashinalıq oqıtıw) hám neural networks (neyron tarmaqlar) penen integraciyalaw aktiv rawajlanbaqta.

Áhmiyetli terminler

Freym

Produkciya

Semantikalıq tor

Anıq emes logika

Ekspert sistema

Bilimlerdi usınıw

Juwmaq shıǵarıw mashinı

ÁMELIY MÍSAL:

# 1. Freym modeli mısalı class Freym:

def __init__(self, atı): self.atı = atı self.slotlar = {}

def slot_qosıw(self, slot_atı, mánis): self.slotlar[slot_atı] = mánis

def slot_alıw(self, slot_atı):

return self.slotlar.get(slot_atı)

def kórsetiw(self): print(f"\nFreym: {self.atı}")

for slot, mánis in self.slotlar.items(): print(f"{slot}: {mánis}")

#Freym mısalın qollanıw def freym_mısal():

print("\n1. Freym modeli mısalı:") student = Freym("Student") student.slot_qosıw("atı", "Arıwxan") student.slot_qosıw("jası", 20) student.slot_qosıw("kurs", 3) student.kórsetiw()

#2. Produkciyalıq model mısalı

class Qaǵıyda:

def __init__(self, shárt_func, nátiyzhe): self.shárt = shárt_func self.nátiyzhe = nátiyzhe

class ProdukciyaSistema: def __init__(self):

self.qaǵıydalar = [] self.faktler = {}

def qaǵıyda_qosıw(self, qaǵıyda): self.qaǵıydalar.append(qaǵıyda)

def fakt_qosıw(self, atı, mánis): self.faktler[atı] = mánis

def juwmaq_shıǵarıw(self): juwmaqlar = []

for qaǵıyda in self.qaǵıydalar:

if qaǵıyda.shárt(self.faktler): juwmaqlar.append(qaǵıyda.nátiyzhe)

return juwmaqlar

# Produkciya mısalın qollanıw def produkciya_mısal():

print("\n2. Produkciyalıq model mısalı:") sistema = ProdukciyaSistema()

# Qaǵıydalar qosıw

def temperatura_joqarı(faktler):

return faktler.get('temperatura', 0) > 38

def qan_basımı_joqarı(faktler):

return faktler.get('qan_basımı', 0) > 140

sistema.qaǵıyda_qosıw(Qaǵıyda(temperatura_joqarı, "Temperatura joqarı")) sistema.qaǵıyda_qosıw(Qaǵıyda(qan_basımı_joqarı, "Qan basımı joqarı"))

# Faktler qosıw

sistema.fakt_qosıw('temperatura', 39) sistema.fakt_qosıw('qan_basımı', 150)

# Juwmaq shıǵarıw

juwmaqlar = sistema.juwmaq_shıǵarıw() print("Juwmaqlar:", juwmaqlar)

# 3. Anıq emes logika mısalı class AnıqEmesLogika:

def __init__(self): self.aǵzalıq_funkc = {}

def aǵzalıq_qosıw(self, atı, min_mánis, max_mánis): def aǵzalıq_funksiyası(x):

if x < min_mánis or x > max_mánis: return 0

if min_mánis <= x <= max_mánis:

return 1 - abs((2 * x - (max_mánis + min_mánis)) / (max_mánis -

min_mánis))

return 0

self.aǵzalıq_funkc[atı] = aǵzalıq_funksiyası

def bahalaw(self, atı, mánis):

return self.aǵzalıq_funkc[atı](mánis)

# Anıq emes logika mısalın qollanıw def anıq_emes_mısal():

print("\n3. Anıq emes logika mısalı:") sistema = AnıqEmesLogika()

#Temperatura ushın anıq emes kóplikler sistema.aǵzalıq_qosıw("temperatura_joqarı", 37.5, 40)

#Test mánisler

temperaturalar = [37.0, 38.0, 39.0, 40.0] print("Temperatura joqarı bolıw dárejesi:") for temp in temperaturalar:

dáreje = sistema.bahalaw("temperatura_joqarı", temp) print(f"Temperatura {temp}°C: {dáreje:.2f}")

# 4. Ekspert sisteması mısalı class EkspertSistema:

def __init__(self): self.bilimler = {} self.qaǵıydalar = []

def bilim_qosıw(self, atı, mánis): self.bilimler[atı] = mánis

def qaǵıyda_qosıw(self, shárt_func, nátiyzhe): self.qaǵıydalar.append((shárt_func, nátiyzhe))

def diagnoz_qoyıw(self, simptomlar): natiyjeler = []

for qaǵıyda in self.qaǵıydalar: if qaǵıyda[0](simptomlar):

natiyjeler.append(qaǵıyda[1])

return natiyjeler

# Ekspert sisteması mısalın qollanıw def ekspert_sistema_mısal():

print("\n4. Ekspert sisteması mısalı:") sistema = EkspertSistema()

# Qaǵıydalar qosıw

def gripp_qaǵıyda(simptomlar):

return ('temperatura' in simptomlar and 'bas awırıwı' in simptomlar and 'buwin awırıwı' in simptomlar)

def suıq_tiygen_qaǵıyda(simptomlar): return ('temperatura' in simptomlar and

'júteliw' in simptomlar)

sistema.qaǵıyda_qosıw(gripp_qaǵıyda, "Gripp bolıwı múmkin") sistema.qaǵıyda_qosıw(suıq_tiygen_qaǵıyda, "Suıq tiyiw bolıwı múmkin")

# Test

pacient_simptomları = {'temperatura', 'bas awırıwı', 'buwin awırıwı', 'júteliw'} diagnoz = sistema.diagnoz_qoyıw(pacient_simptomları)

print("Pacient simptomları:", pacient_simptomları) print("Diagnoz:", diagnoz)

# Barlıq mısallardı orınlaw if __name__ == "__main__":

freym_mısal() produkciya_mısal() anıq_emes_mısal() ekspert_sistema_mısal()

Joqarıdaǵı kodta tómendegi 4 ámeliy mısal implementaciyalanǵan:

1. Freym modeli mısalı:

oStudent haqqında maǵlıwmatlardı freym túrinde saqlap atır

oSlot qosıw hám alıw funkciyaları bar

oFreymdi kórsetiw funkciyası bar

2.Produkciyalıq model mısalı:

oMedicinalıq diagnostika sisteması

o "Eger-onda" qaǵıydaları menen isleydi

oFaktlerdi qaǵıydalar menen salıstırıp juwmaq shıǵaradı

3.Anıq emes logika mısalı:

oTemperatura ushın anıq emes kóplikler

o Aǵzalıq funkciyası arqalı bahalawdı esaplaydı

oHár qıylı temperaturalar ushın anıq emeslik dárejesin kórsetedi

4.Ekspert sisteması mısalı:

oAwırıwdı anıqlaw sisteması

o Bir neshe simptomlar tiykarında diagnoz qoyadı o Qaǵıydalar hám bilimler bazasına iye

Kodtı qollanıw ushın:

1. Kodtı .py faylına saqlan'

2.Fayldı orınlan'

3.Hár bir mısaldıń nátiyjesi konsolta basıp shıǵarıladı

Bul mısallardı keńeytiwge yamasa basqa tarawlarda qollanıwǵa boladı.

Keyingi mısal:

# Tolıq bilimler bazası hám ekspert sistemaları sisteması import time

from typing import Dict, List, Set, Callable, Any, Tuple

class Freym:

"""Freym klassi - obyektlerdi strukturalı túrde saqlawǵa arnalǵan""" def __init__(self, atı: str):

self.atı = atı

self.slotlar: Dict[str, Any] = {} self.demon_proceduralar: Dict[str, Callable] = {}

def slot_qosıw(self, slot_atı: str, mánis: Any) -> None:

"""Freymge jańa slot qosıw""" self.slotlar[slot_atı] = mánis

if slot_atı in self.demon_proceduralar: self.demon_proceduralar[slot_atı](mánis)

def demon_qosıw(self, slot_atı: str, procedura: Callable) -> None:

"""Slotqa demon procedura qosıw""" self.demon_proceduralar[slot_atı] = procedura

def slot_alıw(self, slot_atı: str) -> Any:

"""Slottıń mánisin alıw""" return self.slotlar.get(slot_atı)

def kórsetiw(self) -> None:

"""Freymnıń maǵlıwmatların kórsetiw""" print(f"\nFreym: {self.atı}")

for slot, mánis in self.slotlar.items(): print(f"{slot}: {mánis}")

class Qaǵıyda:

"""Produkciyalıq qaǵıyda klassi"""

def __init__(self, shárt: Callable[[Dict], bool], nátiyzhe: str, salmaǵı: float = 1.0):

self.shárt = shárt self.nátiyzhe = nátiyzhe self.salmaǵı = salmaǵı

def tekser(self, faktler: Dict) -> bool:

"""Qaǵıydanı tekserip kóriw""" return self.shárt(faktler)

class AnıqEmesLogika:

"""Anıq emes logika klassi""" def __init__(self):

self.aǵzalıq_funkc: Dict[str, Callable] = {}

def aǵzalıq_qosıw(self, atı: str, min_mánis: float, max_mánis: float) -> None:

"""Anıq emes kóplik ushın aǵzalıq funkciyasın qosıw""" def aǵzalıq_funksiyası(x: float) -> float:

if x < min_mánis or x > max_mánis: return 0

if min_mánis <= x <= max_mánis:

return 1 - abs((2 * x - (max_mánis + min_mánis)) / (max_mánis -

min_mánis))

return 0

self.aǵzalıq_funkc[atı] = aǵzalıq_funksiyası

def bahalaw(self, atı: str, mánis: float) -> float:

"""Berilgen mánis ushın aǵzalıq dárejesin esaplaw""" return self.aǵzalıq_funkc[atı](mánis)

class EkspertSistema:

"""Ekspert sisteması klassi""" def __init__(self):

self.freymler: Dict[str, Freym] = {} self.qaǵıydalar: List[Qaǵıyda] = [] self.faktler: Dict[str, Any] = {} self.anıq_emes = AnıqEmesLogika()

self.juwmaqlar_tariyxı: List[Tuple[str, float]] = []

def freym_qosıw(self, freym: Freym) -> None:

"""Sistemaga freym qosıw""" self.freymler[freym.atı] = freym

def qaǵıyda_qosıw(self, qaǵıyda: Qaǵıyda) -> None:

"""Sistemaga qaǵıyda qosıw""" self.qaǵıydalar.append(qaǵıyda)

def fakt_qosıw(self, atı: str, mánis: Any) -> None:

"""Sistemaga fakt qosıw""" self.faktler[atı] = mánis

def juwmaq_shıǵarıw(self) -> List[Tuple[str, float]]:

"""Barlıq qaǵıydalar tiykarında juwmaq shıǵarıw""" juwmaqlar: List[Tuple[str, float]] = []

for qaǵıyda in self.qaǵıydalar:

if qaǵıyda.tekser(self.faktler): juwmaqlar.append((qaǵıyda.nátiyzhe, qaǵıyda.salmaǵı))

self.juwmaqlar_tariyxı.extend(juwmaqlar) return juwmaqlar

def tariyxtı_kórsetiw(self) -> None:

"""Juwmaqlar tariyxın kórsetiw""" print("\nJuwmaqlar tariyxı:")

for juwmaq, salmaǵı in self.juwmaqlar_tariyxı: print(f"Juwmaq: {juwmaq}, Iseniw dárejesi: {salmaǵı}")

def medicinaǵa_mısal():

"""Medicinalıq diagnostika sisteması mısalı""" print("\nMedicinalıq diagnostika sisteması:")

# Ekspert sistemasın jaratıw

sistema = EkspertSistema()

# Freymler qosıw

pacient = Freym("Pacient") pacient.slot_qosıw("atı", "Alisher") pacient.slot_qosıw("jası", 25) sistema.freym_qosıw(pacient)

# Anıq emes kóplikler qosıw sistema.anıq_emes.aǵzalıq_qosıw("temperatura_joqarı", 37.5, 40) sistema.anıq_emes.aǵzalıq_qosıw("qan_basımı_joqarı", 140, 180)

# Qaǵıydalar qosıw

def gripp_qaǵıyda(faktler: Dict) -> bool:

temp_dáreje = sistema.anıq_emes.bahalaw("temperatura_joqarı", faktler.get('temperatura', 0))

return (temp_dáreje > 0.5 and

'bas_awırıwı' in faktler and 'buwin_awırıwı' in faktler)

def gipertoniya_qaǵıyda(faktler: Dict) -> bool:

qan_basımı_dáreje = sistema.anıq_emes.bahalaw("qan_basımı_joqarı", faktler.get('qan_basımı', 0))

return qan_basımı_dáreje > 0.7

sistema.qaǵıyda_qosıw(Qaǵıyda(gripp_qaǵıyda, "Gripp bolıwı múmkin", 0.8)) sistema.qaǵıyda_qosıw(Qaǵıyda(gipertoniya_qaǵıyda, "Gipertoniya belgileri bar",

0.9))

# Faktler qosıw sistema.fakt_qosıw('temperatura', 38.5) sistema.fakt_qosıw('qan_basımı', 150) sistema.fakt_qosıw('bas_awırıwı', True) sistema.fakt_qosıw('buwin_awırıwı', True)

#Pacient maǵlıwmatların kórsetiw sistema.freymler["Pacient"].kórsetiw()

#Diagnoz qoyıw

print("\nDiagnoz:")

juwmaqlar = sistema.juwmaq_shıǵarıw() for juwmaq, salmaǵı in juwmaqlar:

print(f"- {juwmaq} (Iseniw dárejesi: {salmaǵı:.2f})")

return sistema

def texnikalıq_support_mısal():

"""Kompyuter mashqalaların anıqlaw sisteması mısalı""" print("\nKompyuter texnikalıq support sisteması:")

sistema = EkspertSistema()

# Freym qosıw

kompyuter = Freym("Kompyuter") kompyuter.slot_qosıw("model", "HP Pavilion") kompyuter.slot_qosıw("os", "Windows 10") sistema.freym_qosıw(kompyuter)