Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Niste intrebari despre apartamente

Comentarii amuzante pe Youtube

Nu iese laptopul din sleep mode.

Facerea de bine - ce aștepta...
 Probleme drum servitute

Se pot monta placi de gresie de 1...

Card de debit virtual emis de India

Diferenta ATS generator si PV
 La multi ani @Lotusisrael!

Declarație primar

Contestare amenda politia locala

PC se restarteaza cu erori ecran ...
 Mercedes atego 815 oprire motor

Ce contine Creion rani dupa ras?

Filtru sedimente inainte de pompa?

Paște fericit!
 

Implementarea unui rationator logic

- - - - -
  • Please log in to reply
3 replies to this topic

#1
anz

anz

    Member

  • Grup: Members
  • Posts: 592
  • Înscris: 16.02.2013
Salut. Am de facut un proiect pentru facultate cu tema: crearea unui sistem rationator pentru saturarea unei baze logice de cunostinte.
Baza de cunostinte este compusa dintr-un set de fapte, reguli si constrangeri. Ceea ce trebuie sa faca sistemul este sa aplice setul de reguli peste cel fapte pentru a deduce cunostinte implicite, acest proces facandu-se intr-un mod repetat pana cand dupa o iteratie nu se mai produce niciun fapt nou. Astfel se obtine saturatia bazei de cunostinte.
Acest sistem trebuie sa-l implementez intr-un limbaj de programare OO, si am ales Java.
Eu m-am gandit ca sa reprezint formalismele logice (fapt, regula, constrangere) prin intermediul claselor, si anume sa am o clasa Fact, Rule si una Constraint. Clasa Fact are ca atribute un nume si o colectie de valori (ex. Mother(John,Mary)) si contine metode de afisare a faptului in acest format la consola. Clasele Rule si Constraint sunt create dupa aceeasi tehnica.
Baza de cunostinte este constituita din 3 colectii, fiecare continand obiecte ale celor 3 clase de mai sus, iar algoritmul de rationare lucreaza asupra acestor 3 colectii aplicand regulile (obiectele clasei Rule) peste fapte si producand noi fapte.
As dori sa stiu parerea unui specialist, este bine abordarea mea de a gandi aceasta problema? Eu in alt fel chiar nu mai vad cum as mai putea-o rezolva, in special intr-un limbaj de programare OO.
Multumesc celui care stie!

#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Java sau nu, suna ca programarea logica. In facultati se vorbeste probabil despre prolog. As studia teoria de acolo pentru inspiratie.

#3
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,454
  • Înscris: 06.01.2010
E bine sa te duca gandul la Prolog cand e vorba de asa ceva, si mai bine sa te duca mai general, la un demonstrator de teoreme (recomandare pentru asemenea situatii, metoda rezolutiei https://www.doc.ic.a...1/lecture9.html ).
Apropo, despre demonstrarea teoremelor in Prolog: https://www.metaleve.../theoremproving

Singura problema e ca anz nu primeste o 'teorema' pe care trebuie sa o demonstreze (sau sa o infirme), ci trebuie sa genereze teoremele ce rezulta din axiome (toate!!!!??????). O problema mai simpla, pentru ca trebuie sa aplici 'regulile' si 'constrangerile' asupra 'faptelor' fara prea multa bataie de cap.

O metoda bruta e sa generezi noi 'fapte' aplicand 'regulile' asupra tuturor 'faptelor' existente (eliminandu-le pe cele care nu respecta 'constrangerile'), adaugandu-le la baza de 'fapte' (evitand duplicatele), apoi reluand... pana cand nu se mai genereaza fapte noi. Singura problema e ca acest lucru poate sa-ti genereze de la o baza de date uriasa, la una infinita (o 'constrangere' foarte buna aici ar fi limitarea 'dimensiunii').

Exemplu:
Fapt: A = adevarat
Regula "adevarat si adevarat = adevarat"

Generare fapt (nu mai scriu = adevarat, doar acele fapte se pun in baza de date):
A si A

Aplicare inca o data:
A si A (deja exista)
A si A si A
A si A si A si A

Si uite asa, se continua la infinit pentru a obtine o propozitie infinita A si A si A si A si ... si A

PS Daca lucrurile ar fi simple nu s-ar chinui matematicienii cu matematica, pana la urma teorii foarte complicate vin la pachet cu un set destul de restrans de axiome. Ar genera doar din setul de axiome toate teoremele posibile si cand ar fi nevoie, doar ar cauta in baza de date Posted Image
PS2 E bine ca nu ti se cere acelasi lucru si pentru 'reguli' si 'constrangeri', atunci distractia ar fi maxima :P

Edited by parabellum, 14 February 2019 - 12:58.


#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Ai dreptate, eu voiam doar să îi dau material de gândire, să îi creez un "mediu" în care el poate descoperi singur soluții și constrângeri.

Adică să își pună mintea la contribuție.

Prea mulți vin aici în ideea că li se dau soluții cu lingurița și ei nu trebuie să transpire.

Ce cere el e defapt mai apropiat de semantic web, tripleti RDF, în zona asta.

Dacă ar băga pe google

facts rules constraints engine

Ar găsi articole științifice, poate chiar și programe care fac ce are el nevoie.


Dar nu a făcut asta, dacă ar fi făcut, altfel ar fi fost întrebarea lui, deci cu o astfel de persoană discutăm.

Lucrăm cu materialul clientului.

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate