%% Capita Selecta AI: Markov Models (opgave 2.) %% %% auteurs: Roel Rymenants, Ewoud Nuyts %%------------------------------------ %% Declarations: % leer target (hier niet gebruikt) target(weather,1). % mogelijke waarden van de toestanden (gemodelleerd als switches) % over deze waarden geldt de kansverdeling values(init, [rain, sun]). % initiƫle kansverdeling values(out(_),[umbrella, no_umbrella]). % observatiefunctie values(tr(_),[rain, sun]). % overgangsfunctie %%------------------------------------ %% Modeling part: % overgenomen uit de HMM voorbeelden geleverd bij Prism: weather(L):- % To observe a string L: str_length(N), % Get the string length as N msw(init,S), % Choose an initial state randomly weather(1,N,S,L). % Start stochastic transition (loop) weather(T,N,_,[]):- T>N,!. % Stop the loop weather(T,N,S,[Ob|Y]) :- % Loop: current state is S, current time is T msw(out(S),Ob), % Output Ob at the state S msw(tr(S),Next), % Transit from S to Next. T1 is T+1, % Count up time weather(T1,N,Next,Y). % Go next (recursion) str_length(10). % het aantal iteraties %%------------------------------------ %% Utility part: % de precieze verdelingen van de switches set_params:- set_sw(init, [0.5,0.5]), set_sw(tr(rain), [0.7,0.3]), set_sw(tr(sun), [0.6,0.4]), set_sw(out(rain),[0.8,0.2]), set_sw(out(sun),[0.1,0.9]).