diff --git a/TaskQueuing.md b/TaskQueuing.md new file mode 100644 index 0000000..423a289 --- /dev/null +++ b/TaskQueuing.md @@ -0,0 +1,56 @@ +# Kolejkowanie zadań + +**Metoda uczenia:** Drzewa decyzyjne +**Autor:** Dominik Zawadzki + +Funkcja kolejkowania zadań jak i drzewo decyzyjne znajdują się w pliku: +```sh +decisionTree.py +``` + +## Funkcje drzewa decyzyjnego: +```sh +BuildDf(self) +``` +Buduje Data Frame złożony z trzech atrybutów: +1. actionName - nazwa zadania +2. distance - dystans pomiędzy kelnerem a stolikiem +3. priority - priorytet danej akcji + +```sh +FindPriorityEntropy(self,df) +``` +Oblicza entropie dla priorytetu za pomocą wzoru: +* ent = pi * log2pi +gdzie i oznacza wartośc priorytetu i = {0, 1, 2, 3, 4} + +```sh +FindAttributesEntropy(self, df, attribute) +``` +Zwraca entropie danego w parametrze atrybutu, gdzie jako prawdopodobieństwo liczona jest ilość wystąpień tego atrybutu w kolejnych priorytetach. + +```sh +FindWinner(self, df): +``` +Zwraca atrubut o najwyższym info gain wyliczanym na podstawie wzoru: +* ent(pr) - ent(atr) + gdzie ent(pr) - entropia po priorytecie + a ent(atr) - entropia atrybutu po uwzględnieniu priorytetu + +```sh +BuildTree(self, df, tree=None) +``` +Rekurencyjna funkcja budująca drzewo decyzyjne. Na początek wyznaczamy atrybut o najwyższym info gain, a następnie budowane jest z niego poddrzewo, jeśli dane poddrzewo jest "puste", dodajemy je do drzewa i kończymy, bo drzewo zostało zbudowane, jesli nie to funkcja wywołuje samą siebie biorąc za parametr poddrzewo. + +## Funkcje kolejkowania zadań: +```sh +TasksList(self, name, coordinate): +``` +Funkcja oblicza dystans dzielący kelnera od stolika i razem z nazwą zadania dodawane jest do listy zadań. + +```sh +Queue(self, tasksList): +``` +W tej funkcji wykorzystywane jest drzewo decyzyjne. +Dla każdego zadanie z listy zadań pętla idzie po odpowiednich wierzchołkach i odnajduje priorytet, który z poprzednimi parametrami dodawany jest do listy stanowiącej kolejkę zadań. +Na koniec funkcji kolejka jest sortowana po priorytecie. \ No newline at end of file