Климент охридски” факултет по математика и информатика


Реализация на Модул за изпълнение на адаптивна и персонализираща логика посредством извод в Бейсова мрежа



страница5/8
Дата27.03.2017
Размер1.01 Mb.
#17861
ТипАвтореферат
1   2   3   4   5   6   7   8

5. Реализация на Модул за изпълнение на адаптивна и персонализираща логика посредством извод в Бейсова мрежа

Системата Share.TEC


В рамките на проекта Share.TEC се изгражда мултимедийна дигитална библиотека, която да служи за обучение на учители, като дава възможност за обмен на информационни ресурси (учебни материали) и опит между участниците [93, 94 96]. В рамките на проекта Share.TEC е разработена специална онтология, наречена Онтология за обучение на учители – Teacher Education Ontology (ТЕО). Чрез онтологията ТЕО се цели поддържане на педагогически обусловено съдържание; представяне на потребителя и компетенциите му; предлагане на многоезиково, мултикултурно и персонализирано взаимодействие с адаптивни приложения и поддържане на йерархично и динамично търсене.

Всички метаданни в хранилището следват формата на общия модел за метаданни (СММ), който е базиран на формата на стандартния модел за описание на учебни обекти Learning Object Model (LOM) [29]. Елементи от СММ модела се използват в фòрмата за разширено търсене в портала Share.TEC, който дава възможност на потребителите да задават изрично стойности на метаданните при търсене в системата [7, 8]. По този начин търсенето от различни потребители, които имат различни нагласи и представи, е поставено в рамките на споделена семантика.

Системата за препоръчване в Share.TEC предлага множество от функции, подпомагащи потребителят да намери най-подходящите ресурси, съобразно модела му и историята на неговите действия в системата [94]. Системата за препоръчване използва данните от потребителския модел, за да адаптира функционалността и поведението на системата. Търсенето е една от централните функционалности на Share.TEC портала. То играе важна роля в адаптивността на системата. В Share.TEC системата за препоръчване и машината за търсене използват общия модел на метаданни СММ, онтологията за обучение на учители TEO, както и косвено и пряко зададената информация от модела на потребителя [94, 97].

Реализация на Модул за изпълнение на адаптивна и персонализираща логика


Среди за проектиране и разработка

В настоящата работа е избрана средата за графична разработка на модели на решенията и Бейсови мрежи - GeNIe и библиотеката от класове SMILE. Двете са разработени от Decision Systems Laboratory към Университета в Питсбърг и предоставени на широката общественост през 1998 година. GeNIe и SMILE се разпространяват като софтуер с отворен код и нямат ограничения за тяхната употреба. Към момента лиценза на GeNIe и SMILE е закупен от BayesFusion LLC (през 2015г.), които продължават традицията на Университета в Питсбърг и предоставят софтуера безплатно за академични цели [14].

GeNIe служи за графичен потребителски интерфейс към библиотеката SMILE. Предназначен е за създаване на теоретични модели на решението и извършване на диагноза.SMILE (Structural Modeling, Inference, and Learning Engine) е напълно независима от платформата библиотека от С++ класове, която реализира графични вероятностни модели, както и теоретични модели на решението и е подходяща за директно внедряване в интелигентни системи. SMILE е пусната в употреба през 1997 г. и оттогава намира широко приложение.

Основни алгоритми в Модела

Основните алгоритми са: Алгоритъм за съставяне на Бейсова мрежа и Алгоритъм за получаване на данни за атрибути за адаптиране на заявката според избран стереотип на потребител.



Алгоритъм за съставяне на Бейсова мрежа

Описание на алгоритъма

Представеният алгоритъмът се състои от набор от последователни стъпки, чрез които се създава качествената и количествената част от мрежата. В първа стъпка на алгоритъма (концептуализация) се избира множество от подходящи променливи {X1, X2,....Xn}, такова че X1 няма предшественици, а предшествениците на всеки друг възел Xi са измежду {X1, X2,...Xi-1}. Във втора стъпка от алгоритъма се въвежда наредба над елементите в това множество. Третата стъпка е свързана с последователно добавяне на възлите към мрежата. В нея за всеки елемент от множеството Xi се осъществяват следните подстъпки: добавя се нов възел в мрежата, който се обозначава с Xi; избират се предшествениците на възела Pred(Xi), които да бъдат минималното множество от вече съществуващи възли, такива че Xi да бъде условно независима от всички вече добавени възли, които не са в Pred(Xi); дефинират се вероятностите – априорни или условни [104]. Следва описание на стъпките от алгоритъма.



  1. Концептуализация, при която се определят променливите на БМ

Мрежата на Бейс се състой от бинарни променливи. В първа стъпка от алгоритъма за съставяне на БМ задаваме (определяме) променливите, които ще съставят БМ. Част от променливите са представени по-долу.

ES = „Испански“

Need0 = „Управление на курс в платформа за електронно обучение на английски език“

Stereotype1 = „Испански Обучител на обучители във Facultad de Educación (Máster y Doctorado)“

Stereotype3: = „Ирландски Обучител на обучители на учители от средни училища“


  1. Наредба на мрежата

Във втора стъпка от алгоритъма нареждаме променливите, дефинирани в първата стъпка. За тази цел създаваме три списъка, във всеки от който поставяме даден тип от променливи въз основа на признака, дали те са причина или следствие за/от настъпване на събития. Независимите от причинно-следствена гледна точка са променливите на стереотипите – от Stereotype1 до Stereotype51 включително. Тях ги поставяме в първия списък. Те са предпоставка за настъпването на събитията, представени от останалите променливи. Променливите ES,…,PublishingDesign са крайните събития (следствия), тях ги поставяме в третия списък. Променливите Need0,…,Need39 са междинни – те са причина за настъпването на някои събития и следствие от други, затова ги поставяме във втория списък. В резултат на подреждането се получават списъците:

Първи списък, съдържащ променливите на стереотипите: {Stereotype1,...,Stereotype51};

Втори списък съдържащ променливите на нуждите: {Need0,…,Need39};

Трети списък, съдържащ променливите на атрибутите: {ES, EN,…,PublishingDesign}


  1. Последователно добавяне на възли към мрежатa

В трета стъпка от алгоритъма добавяме възли към мрежата и ги свързваме с техните предшественици (ако имат такива) посредством дъги. Тази стъпка се състои от три подстъпки: добавяне на възли от най-горния слой; добавяне на възли от средния слой и добавяне на възли от най-долния слой.

В първа подстъпка от алгоритъма добавяме възлите от най-горния слой на Модела. За тази цел, използваме променливите от първия списък, които са независими от всички останали променливи. Създаваме възел Stereotype1 „Испански Обучител на обучители във Facultad de Educación“ като възел от тип DSL_cpt (възел от общ тип). Той е независим от всички останали възли и е достатъчно да зададем само неговите априорни вероятности, със стойност 0,02 за истина и 0,08 за лъжа. Продължаваме с последователно добавяне на всички променливи от първия списък, като създаваме възлите от Stereotype2 до Stereotype51, подобно на възела Stereotype1. С това приключваме създаването на възлите от най-горния слой.

Във втората подстъпка създаваме възлите от средния слой. За тази цел, използваме променливите от втория списък, които са зависими от преките си предшественици. Създаваме възел Need0 „Управление на курс в платформа за електронно обучение на английски език“, като възел от тип DSL_ noisyadder. Възелът Need0 е зависим от предшествениците си - възлите Stereotype4, Stereotype14, Stereotype15, Stereotype16 и LEAK. Създаваме дъги между възела Need0 и възлите Stereotype4, Stereotype14, Stereotype15, Stereotype16 (възела LEAK не се задава графично, защото той съществува по подразбиране в GeNIe). Продължаваме с добавяне последователно на всички променливи от втория списък, при което създаваме възлите от Need1 до Need39, подобно на възела Need0. С това приключваме създаването на възлите от средния слой на Модела.

Трета подстъпка се състои в създаване на възлите най-долния слой на Модела. За тази цел, използваме променливите от третия списък, които са зависими от предшествениците си от средния слой на Модела. Създаваме възела LearningDesignUnit като възел от тип DSL_ noisyadder. Той е зависим от своите предшественици: Need0, Need12, Need14, Need20, Need32 и LEAK. Създаваме дъги между възела LearningDesignUnit и неговите предшественици. Продължаваме като създаваме всички възли от най-долния слой на Модела, подобно на възела LearningDesignUnit. С това приключваме създаването на възлите от най-долния слой на Модела.

В последната стъпка от алгоритъма се запазват направените промени. С това алгоритъмът приключва. Описаният алгоритъм е представен схематично на Фиг.17.

овал 52elbow connector 20straight arrow connector 33овал 21
да

да

съединител с чупка 29 съединител с чупка 30 съединител съединител съединител овал 44 rounded rectangle 12 съединител съединител



diamond 8
да


rounded rectangle 11

закръглен правоъгълник 39





овал 50







овал 22

Фиг.17 Схема на алгоритъм за съставяне на Бейсова мрежа

Таблица 12 показва част от релациите между променливите и техните предшественици в Модела. Посоката на дъгите е StereotypeX NeedX AttributeX.

Таблица 12 Релации между променливите в Модела



Възел на Стереотип

Възел на Нужда

Възел на Атрибут


Stereotype1: ES UCM TE

Need1


ES, LessonPlan, PedagogicalSciences


Need2

ES, PedagogicalDesignPattern, Non-PedagogicallyStructured

Stereotype2: ES USC TE

Need2


ES, PedagogicalDesignPattern, Non-PedagogicallyStructured

Need3



ES, LessonPlan

Stereotype3: IR SST TE


Need4


EN, LessonPlan

Need5

EN, PedagogicalDesignPattern, Non-PedagogicallyStructured

Stereotype4: IR OTT TE


Need0


EN, LearningDesignUnit


Need5

EN, PedagogicalDesignPattern, Non-PedagogicallyStructured

Stereotype5: IT SSIS TE

Need6


IT, LessonPlan


Need7

IT, EN, PedagogicalDesignPattern, Non-PedagogicallyStructured, PedagogicalScience

Stereotype6: IT SF TE


Need7


IT, EN, PedagogicalDesignPattern, Non-PedagogicallyStructured, PedagogicalScience

Need8


IT, LessonPlan, PedagogicalScience

Stereotype7: IT SM TE


Need10

IT, LessonPlan, TeacherTraining-PhisicalTraining

Реализация на алгоритъма

За софтуерната реализация на описания е използвана графичната среда за разработка GeNIe. Софтуерният код за създаване на възела Stereotype1 и задаване на априорните му вероятности (истина = 0.2 и лъжа = 0.8) е показан по-долу. Възелът е създаден като възел от общ тип.






0.02 0.08




Листинг 1: Софтуерен код на възел Stereotype1

Софтуерният код за създаване на възела Need1, като възел от тип NoisyAdder е показан по-долу. Предшествениците на възела Need14 са три, изрично зададените Stereotype12 и Stereotype13 и подразбиращия се възел LEAK. Тежестите на дъгите са weights = 1 с всички предшественици.






Stereotype12 Stereotype13




1 1 1

1 1 1

1 0 0 1 1 0 0 1 0 1




Листинг 2: Софтуерен код на възел Need14



Алгоритъм за получаване на данни за атрибути за адаптиране на заявката в дигитална библиотека според избран стереотип на потребител

Описание на алгоритъма

Представеният алгоритъм е процедура, чрез която се извеждат атрибути за адаптиране на заявката. Алгоритъмът е базиран на извод в Бейсова мрежа, който се извършва при задаване на свидетелсва на избрани възли от Модела и обновяване на вероятностите на останалите възли. Алгоритъмът работи с входни данни за стереотипи, който задават какви да са поставените доказателства. Резултата от изпълнението на алгоритъма е връщането на списък със стойности на атрибути. Следва описание на стъпките от алгоритъма.



Стъпка 1: Зареждане на мрежата

DSL_network theNet;

theNet.ReadFile(“BM.xdsl”);

Стъпка 2: Подаване на стойност s за стереотип на потребителя

Стъпка 3: Изпълнение на извод над мрежата, при зададен стереотипа на потребителя, чрез извикване на функция

InfereceWithBayesNet(s);



Стъпка 3.1: Задаване на доказателство истина на стереотипа s на потребителя и лъжа за всички останали стереотипи в мрежата

theNet.GetNode(s)->Value()->SetEvidence(0) - задава се доказателство истина на стереотипа s

theNet.GetNode(v)->Value()->SetEvidence(1) – задава се доказателство лъжа на всички стереотипи, с изключение на стереотипа s

Стъпка 3.2: Обновяване на мрежата

theNet.UpdateBeliefs();



Стъпка 4: Идентифициране на атрибутите за адаптиране на заявка, при зададен стереотип s на потребител и след изпълнение на извод

Стъпка 4.1: Получаване на резултатни стойности за вероятностите на атрибутите

int attr1 = theNet.FindNode("X");

theCoordinates.LinkTo(*theNet.GetNode(attr1)->Value());

theCoordinates[0] = 0;

theCoordinates.GoToCurrentPosition();

double P = theCoordinates.UncheckedValue();



Стъпка 4.2: Избор на атрибути, които изпълняват условието да бъдат селектирани за адаптиране на заявката

if (P >= 0.01)



Стъпка 4.3: Запис на избраните атрибути

myfile.open("f.txt");

myfile << "X";

myfile.close()



Стъпка 5: Изчистване на зададените в Стъпка 3.1 доказателства на стереотипите

theNet.GetNode(x)->Value()->ClearEvidence();



Стъпка 6: Край на алгоритъма

Описаният алгоритъм е представен схематично на Фиг.18.



rounded rectangle 6straight arrow connector 17

rounded rectangle 4rounded rectangle 5rounded rectangle 2rounded rectangle 3rectangle 23straight arrow connector 31
да

иначе


Фиг.18 Схема на алгоритъм за получаване на данни за атрибути за адаптиране на заявката в дигитална библиотека според избран стереотип на потребител

Реализация на алгоритъма

За софтуерната реализация на описания алгоритъм е използвана C++ библиотеката на SMILE. Основните класове, реализиращи алгоритъма са: DSL network, DLS sysCoordinates, DSL node, DSL nodeValue и DSL Dmatrix [14].

Главната функция в софтуерния код е представена в Листинг 4.

int main()

{

char *s = "Stereotype44"; //Подава се стереотип



InfereceWithBayesNet(s);

ofstream myfile;

return(DSL_OKAY);

};

Листинг 4: Главната функция в софтуерната реализация



Изводът в Бейсовата мрежа се извършва посредством изпълнение на функцията InfereceWithBayesNet().

Главните етапи в изпълнението на кода са:




  • Задаване на БМ, над която ще се извършва извод

DSL_network theNet;

theNet.ReadFile("BM.xdsl"); // Прочита се мрежата на Бейс




  • Задаване на алгоритъм за извод над мрежата (клъстериращ алгоритъм)

theNet.SetDefaultBNAlgorithm(DSL_ALG_BN_LAURITZEN);


  • Задаване на доказателства лъжа на всички възли от най-горния слой

int ste1 = theNet.FindNode("Stereotype1");

theNet.GetNode(ste1)->Value()->SetEvidence(1);

int ste2 = theNet.FindNode("Stereotype2");

theNet.GetNode(ste2)->Value()->SetEvidence(1);

:

int ste51 = theNet.FindNode("Stereotype51");



theNet.GetNode(ste51)->Value()->SetEvidence(1);


  • Задаване на доказателство истина на избран възел от най-горния слой

const char *a = b;

int stereotype = theNet.FindNode(a);

theNet.GetNode(stereotype)->Value()->SetEvidence(0);


  • Обновяване на мрежата

theNet.UpdateBeliefs();


  • Получаване на резултатната стойност на вероятността на всички възли от най-долния слой

int attr = theNet.FindNode("IT");

DSL_sysCoordinates theCoordinates; theCoordinates.LinkTo(*theNet.GetNode(attr)->Value());

theCoordinates[0] = 0; // 0 е индекс на състоянието, съответстващ на истина

theCoordinates.GoToCurrentPosition();

double P = theCoordinates.UncheckedValue(); // Взима се стойността на вероятността на възел "IT"

int attr1 = theNet.FindNode("EN");

theCoordinates.LinkTo(*theNet.GetNode(attr1)->Value());

theCoordinates[0] = 0;

theCoordinates.GoToCurrentPosition();

double P1 = theCoordinates.UncheckedValue();

:

int attr19 = theNet.FindNode("PublishingDesign");



theCoordinates.LinkTo(*theNet.GetNode(attr19)->Value());

theCoordinates[0] = 0; theCoordinates.GoToCurrentPosition();

double P19 = theCoordinates.UncheckedValue();


  • Проверка за изпълнение на условие, за резултатната стойност на вероятността за всички възли от най-долния слой

if (P >= 0.01)


  • Отваряне и запис във файл на възлите от най-долния слой (атрибути), които изпълняват условието

ofstream myfile;

myfile.open("last.txt,");

if (P >= 0.01)

myfile << "IT" << endl;

myfile.close();


  • Изчистване на зададените в хода на изпълнение на програмата доказателства

theNet.GetNode(stereotype)->Value()->ClearEvidence();

system("pause");





Каталог: index.php -> bul -> content -> download
download -> Литература на народите на Европа, Азия, Африка, Америка и Австралия
download -> Дипломна работа за придобиване на образователно-квалификационна степен " "
download -> Рентгенографски и други изследвания на полиестери, техни смеси и желатин’’ за получаване на научната степен „Доктор на науките”
download -> Св. Климент Охридски
download -> Акад. Илчо иванов димитров (1931 – 2002) фонд 20 опис 1
download -> Азбучен списък на преподавателите
download -> Климент охридски” университетски архив
download -> График за провеждане на семтемврийската (поправителна) изпитна сесия на магистърска програма „политическа социология учебна 2014/2015 г. Поправителна сесия от 24 август до 11 септември 2015 г
download -> Обявява прием на студенти


Сподели с приятели:
1   2   3   4   5   6   7   8




©obuch.info 2024
отнасят до администрацията

    Начална страница