Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 Magistrale - Primo Anno
 Intelligenza Artificiale
 Progetto

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
mkel Inserito il - 13/07/2010 : 17:43:32
Scusatemi ragazzi ma purtroppo non ho frequentato il laboratorio di intelligenza e adesso sto incontrando difficoltà nel capire come fare a sviluppare questo progetto. Avrei un paio di domande da porvi:
Quali strumenti devo utilizzare?
Come li devo settare?
Ho visto che c'è la possibilità di utilizzare java con swi-prolog ma non ho capito come fare a farli interagire tra di loro e soprattutto, dopo aver fatto la base ed il motore inferenziale, come faccio se va bene?
16   U L T I M E    R I S P O S T E    (in alto le più recenti)
mkel Inserito il - 16/09/2010 : 10:37:53
E' scritto sopra.
gig Inserito il - 15/09/2010 : 12:14:27
Salve, c'è qualcuno di buona volontà che potrebbe spiegarmi sia come si fa a far partire il programma per la diagnosi di malattie da ittero che si trova sulle slide del prof sia il suo funzionamento? Sto avendo delle difficoltà nel capire il codice del motore inferenziale...grazie mille
wiklex Inserito il - 15/09/2010 : 01:59:16
Citazione:
Messaggio inserito da gym83s

ragazzi scusate la domanda per molti stupida, ma che differenza c'è tra yap prolog e swi-prolog e quale è opportuna usare?? Grazie a chiunque mi voglia dare spiegazioni...ciauu



swi-prolog è più intuitivo, quindi consigliato per cominciare. comunque non differisce tantissimo da yap.
Comunque sia il professore vuole il progetto in yap.
gym83s Inserito il - 14/09/2010 : 19:58:24
ragazzi scusate la domanda per molti stupida, ma che differenza c'è tra yap prolog e swi-prolog e quale è opportuna usare?? Grazie a chiunque mi voglia dare spiegazioni...ciauu
mkel Inserito il - 13/09/2010 : 17:05:46
Nessun aiuto?
Ivan86 Inserito il - 10/09/2010 : 13:14:33
Qualcuno ha consegnato il 9? quando sarà l'orale? magari vengo a vedere come è l'interrogazione
mkel Inserito il - 10/09/2010 : 12:02:46
Scusatemi, ho trovato questo sistema esperto sulla rete:


% Native - a simple shell for use with Prolog
% knowledge bases.  It includes expanations.

:-op(900,xfy, :).

main :-
	greeting,
	repeat,
	write('> '),
	read(X),
	do(X),
	X == quit.

greeting :-
	write('This is the native Prolog shell.'), nl,
	native_help.

do(help) :- native_help, !.
do(load) :- load_kb, !.
do(solve) :- solve, !.
do(how(Goal)) :- how(Goal), !.
do(whynot(Goal)) :- whynot(Goal), !.
do(quit).
do(X) :-
	write(X),
	write(' is not a legal command.'), nl,
	fail.

native_help :-
	write('Type help. load. solve. how(Goal). whynot(Goal). or quit.'),nl,
	write('at the prompt.'), nl.

load_kb :-
	write('Enter file name in single quotes (ex. ''birds.nkb''.): '),
	read(F),
	reconsult(F).

solve :-
	abolish(known,3),
	prove(top_goal(X),[]),
	write('The answer is '),write(X),nl.
solve :-
	write('No answer found.'),nl.
	
ask(Attribute,Value,_) :-
	known(yes,Attribute,Value),     % succeed if we know its true
	!.                              % and dont look any further
ask(Attribute,Value,_) :-
	known(_,Attribute,Value),       % fail if we know its false
	!, fail.

ask(Attribute,_,_) :-
	not multivalued(Attribute),
	known(yes,Attribute,_),         % fail if its some other value.
	!, fail.                        % the cut in clause #1 ensures
					% this is the wrong value
ask(A,V,Hist) :-
	write(A :V),                     % if we get here, we need to ask.
	write('? (yes or no) '),
	get_user(Y,Hist),                      % get the answer
	asserta(known(Y,A,V)),          % remember it so we dont ask again.
	Y = yes.                        % succeed or fail based on answer.

% "menuask" is like ask, only it gives the user a menu to to choose
% from rather than a yes on no answer.  In this case there is no
% need to check for a negative since "menuask" ensures there will
% be some positive answer.

menuask(Attribute,Value,_,_) :-
	known(yes,Attribute,Value),     % succeed if we know
	!.
menuask(Attribute,_,_,_) :-
	known(yes,Attribute,_),         % fail if its some other value
	!, fail.

menuask(Attribute,AskValue,Menu,Hist) :-
	nl,write('What is the value for '),write(Attribute),write('?'),nl,
	display_menu(Menu),
	write('Enter the number of choice> '),
	get_user(Num,Hist),nl,
	pick_menu(Num,AnswerValue,Menu),
	asserta(known(yes,Attribute,AnswerValue)),
	AskValue = AnswerValue.         % succeed or fail based on answer

display_menu(Menu) :-
	disp_menu(1,Menu), !.             % make sure we fail on backtracking

disp_menu(_,[]).
disp_menu(N,[Item | Rest]) :-            % recursively write the head of
	write(N),write('  : '),write(Item),nl, % the list and disp_menu the tail
	NN is N + 1,
	disp_menu(NN,Rest).

pick_menu(N,Val,Menu) :-
	integer(N),                     % make sure they gave a number
	pic_menu(1,N,Val,Menu), !.      % start at one
pick_menu(Val,Val,_).             % if they didn't enter a number, use
	                                % what they entered as the value

pic_menu(_,_,none_of_the_above,[]).  % if we've exhausted the list
pic_menu(N,N, Item, [Item|_]).       % the counter matches the number
pic_menu(Ctr,N, Val, [_|Rest]) :-
	NextCtr is Ctr + 1,                % try the next one
	pic_menu(NextCtr, N, Val, Rest).

get_user(X,Hist) :-
	repeat,
	write('> '),
	read(X),
	process_ans(X,Hist), !.

process_ans(why,Hist) :-
	write_list(4,Hist), !, fail.
process_ans(X,_).	

% Prolog in Prolog for explanations.
% It is a bit confusing because of the ambiguous use of the comma, both
% to separate arguments and as an infix operator between the goals of
% a clause.

prove(true,_) :- !.
prove((Goal,Rest),Hist) :-
	prov(Goal,[Goal|Hist]),
	prove(Rest,Hist).
prove(Goal,Hist) :-
	prov(Goal,[Goal|Hist]).

prov(true,_) :- !.
prov(menuask(X,Y,Z),Hist) :- menuask(X,Y,Z,Hist), !.
prov(ask(X,Y),Hist) :- ask(X,Y,Hist), !.
prov(Goal,Hist) :-
	clause(Goal,Body),
	prove(Body,Hist).

% Explanations

how(Goal) :-
	clause(Goal,Body),
	prove(Body,[]),
	write_body(4,Body).

whynot(Goal) :-
	clause(Goal,Body),
	write_line([Goal,'fails because: ']),
	explain(Body).
whynot(_).

explain(true).
explain((Head,Body)) :-
	check(Head),
	explain(Body).

check(H) :- prove(H,[]), write_line([H,succeeds]), !.
check(H) :- write_line([H,fails]), fail.

write_list(N,[]).
write_list(N,[H|T]) :-
	tab(N),write(H),nl,
	write_list(N,T).

write_body(N,(First,Rest)) :-
	tab(N),write(First),nl,
	write_body(N,Rest).
write_body(N,Last) :-
	tab(N),write(Last),nl.

write_line(L) :-
	flatten(L,LF),
	write_lin(LF).
	
write_lin([]) :- nl.
write_lin([H|T]) :-
	write(H), tab(1),
	write_lin(T).

flatten([],[]) :- !.
flatten([[]|T],T2) :-
	flatten(T,T2), !.
flatten([[X|Y]|T], L) :-
	flatten([X|[Y|T]],L), !.
flatten([H|T],[H|T2]) :-
	flatten(T,T2).


Non ho capito bene cosa bisogna passare ad "ask" e cosa fa "how(Goal)". Il primo è strettamente correlato al secondo? Ed il secondo mi serve per capire come ho fatto ad arrivare al goal?
mkel Inserito il - 23/08/2010 : 09:48:17
Grazie mille per le delucidazioni.
piantadelte Inserito il - 23/08/2010 : 09:26:25
Citazione:
Messaggio inserito da mkel

Scusate la mia ignoranza ma come si fa a far partire il sistema esperto implementato dal prof a pag. 24 di "3.4 - ExpSyst.pdf".



Devi usare YAP e non SWI-PROLOG
digitare il comando consult('c:applian.pl'). per caricare il sistema
e poi per farlo partire devi digitare diagnosis(X).
nel path devi mettere il doppio contro-slash "\" che nel messaggio non viene visualizzato.
mkel Inserito il - 19/08/2010 : 16:58:26
Scusate la mia ignoranza ma come si fa a far partire il sistema esperto implementato dal prof a pag. 24 di "3.4 - ExpSyst.pdf".
mkel Inserito il - 23/07/2010 : 17:51:11
Citazione:
Messaggio inserito da piantadelte

Citazione:
Messaggio inserito da mkel

Grazie mille per il suggerimento. Ho installato swi-prolog e navigando per la rete ho trovato questo sito:

http://digilander.libero.it/Frank03/SistEspert/sistespert.htm

All'interno della pagina è presente un sistema esperto. Come faccio a farlo partire? Ho provato a fare Consult e mi da una sfilza di warning senza la possibilità di interagire.



il sistema parte digitando "esperto.", poi ti chiede di fargli una domanda del tipo "corpo è una stella, corpo è una nebulosa.." e successivamente per poterti rispondere il sistema ti fa una serie di domande specifiche a cui tu dovresti rispondere con "si." oppure "no.", puoi anche chiedere "perchè." quella domanda e infine il sistema ti chiede se vuoi sapere come è arrivato alla conclusione. Comunque se leggi il file .txt allegato al file zip c'è scritto come utilizzare il sistema.



Grazie mille per le delucidazioni.
piantadelte Inserito il - 23/07/2010 : 16:16:32
Citazione:
Messaggio inserito da mkel

Grazie mille per il suggerimento. Ho installato swi-prolog e navigando per la rete ho trovato questo sito:

http://digilander.libero.it/Frank03/SistEspert/sistespert.htm

All'interno della pagina è presente un sistema esperto. Come faccio a farlo partire? Ho provato a fare Consult e mi da una sfilza di warning senza la possibilità di interagire.



il sistema parte digitando "esperto.", poi ti chiede di fargli una domanda del tipo "corpo è una stella, corpo è una nebulosa.." e successivamente per poterti rispondere il sistema ti fa una serie di domande specifiche a cui tu dovresti rispondere con "si." oppure "no.", puoi anche chiedere "perchè." quella domanda e infine il sistema ti chiede se vuoi sapere come è arrivato alla conclusione. Comunque se leggi il file .txt allegato al file zip c'è scritto come utilizzare il sistema.
zoffcabrinigentile Inserito il - 22/07/2010 : 19:28:03
l'esame dipendee da come si sveglia l'esposito... puoi passare dal 30 al 18 in relazione in relazione alla quantità di zucchero che ha messo nel caffè....
mkel Inserito il - 22/07/2010 : 18:26:41
Grazie mille per il suggerimento. Ho installato swi-prolog e navigando per la rete ho trovato questo sito:

http://digilander.libero.it/Frank03/SistEspert/sistespert.htm

All'interno della pagina è presente un sistema esperto. Come faccio a farlo partire? Ho provato a fare Consult e mi da una sfilza di warning senza la possibilità di interagire.
Leonefragile Inserito il - 14/07/2010 : 12:06:45
Citazione:
Messaggio inserito da mkel

Nessuno sa aiutarmi?



Fidati di me, vai dal professore e ti chiarirà ogni dubbio.

Saluti.
mkel Inserito il - 14/07/2010 : 10:45:00
Nessuno sa aiutarmi?

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,09 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000