Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Звіт
до лабораторної роботи №2
з дисципліни: «Теорія інтелектуальних систем»
на тему: «Моделювання простих форм цілеспрямованої поведінки. Дослідження роботи цілеспрямованих автоматів (Learning Automata) у стаціонарному випадковому середовищі»
Мета: Змоделювати та дослідити роботу цілеспрямованого автомату у стаціонарному випадковому середовищі.
Порядок виконання роботи
1. Реалізувати модель простої форми цілеспрямованої поведінки у вигляді взаємодії агента з стаціонарним випадковим середовищем на основі обраної згідно варіанту моделі оптимальної поведінки (цільової функції) агента та кількості доступних йому дій.
2. Реалізувати алгоритм роботи цілеспрямованого автомату заданої конструкції.
3. Реалізувати програму обчислювального експерименту по дослідженню моделі взаємодії агента з середовищем.
4. Провести обчислювальний експеримент
1) по дослідженню взаємодії "випадкового" агента з середовищем E;
2) по дослідженню взаємодії "ідеального" агента з середовищем E;
3) по дослідженню взаємодії цілеспрямованого автомату заданої конструкції з середовищем E.
5. Порівняти отримані залежності та зробити висновки.
Варіант
W2 -> Середній виграш
AL -> Автомат з лінійною тактикою (автомат М.Л.Цетліна)
N
Модель оптимальної поведінки
Конструкція ЦА
Кількість доступних агенту дій
6
W2
AL
4
Текст програми обчислювального експерименту
void saveParameters(void)
{
int i, j;
if ((par_file = fopen(par_file_name, "w")) == NULL) {
fprintf(stderr, "Cannot open file <%s> for parameters of experiment.\n", par_file_name);
}
fprintf(par_file, "T = %d\n", T);
fprintf(par_file, "n = %d\n", n);
fprintf(par_file, "env = %d\n", env);
fprintf(par_file, "nA = %d\n", nA);
if (env) fprintf(par_file, "nS = %d\n", nS);
fprintf(par_file, "LA type = %d\n", LATYPE);
fprintf(par_file, "LA memory size = %d\n", memSize);
fprintf(par_file, "====================\n");
switch (env)
{
case 0: // se (stationary environment)
for (i = 0; i < nA; i++)
fprintf(par_file, "p(a%d) = %f\n", i, sePa[i]);
break;
case 1: // ce (commutative environment)
// probabilities of rewards
for (i = 0; i < nS; i++)
{
for (j = 0; j < nA; j++)
fprintf(par_file, "p(s%d,a%d) = %f\n", i, j, cePa[i][j]);
if (i < nS - 1) fprintf(par_file, "--------------------\n");
}
fprintf(par_file, "\n====================\n");
// probabilities of state transition
for (i = 0; i < nS; i++)
{
for (j = 0; j < nS; j++)
fprintf(par_file, "p(s%d,s%d) = %f\n", i, j, cePs[i][j]);
fprintf(par_file, "--------------------\n");
}
break;
default: printf("lab2 error: wrong env model code specified\n");
}
fclose(par_file);
}
// ----------------------------------------------------------------------------
// save results of random agent
void saveResultsRA(void)
{
int i;
if ((RA_res_file = fopen(RA_res_file_name, "w")) == NULL)
fprintf(stderr, "Cannot open file <%s> for experimental results.\n", RA_res_file_name);
for (i = 0; i < T; i++)
fprintf(RA_res_file, "%f \t %f\n", avrRm[i], avrRv[i]);
fclose(RA_res_file);
}
// ----------------------------------------------------------------------------
// save results of perfect agent
void saveResultsPA(void)
{
int i;
if ((PA_res_file = fopen(PA_res_file_name, "w")) == NULL)
fprintf(stderr, "Cannot open file <%s> for experimental results.\n", PA_res_file_name);
for (i = 0; i < T; i++)
fprintf(PA_res_file, "%f \t %f\n", avrRm[i], avrRv[i]);
fclose(PA_res_file);
}
// ----------------------------------------------------------------------------
// save results of learning automaton
void saveResultsLA(void)
{
int i;
if ((LA_res_file = fopen(LA_res_file_name, "w")) == NULL)
fprintf(stderr, "Cannot open file <%s> for experimental results.\n", LA_res_file_name);
for (i = 0; i < T; i++)
fprintf(LA_res_file, "%f \t %f\n", avrRm[i], avrRv[i]);
fclose(LA_res_file);
}
Графічні залежності отриманих результатів
/
/
/
Результати обчислення ймовірностей:
p(a0) = 0.564959
p(a1) = 0.475906
p(a2) = 0.806452
p(a3) = 0.438734
Висновок: на цій лабораторній роботі було змодельовано та досліджено роботу цілеспрямованого автомату у стаціонарному випадковому середовищі.