Graphwork

Graphwork logotyp

Etap 1. Stworzenie algorytmu

Tworzenie grafików pracy z racji na liczność parametrów oraz możliwą dużą załogę przedsiębiorstwa, należy do zadań NP-trudnych , tzn. że nie jest możliwe przeanalizowanie wszystkich możliwych rozwiązań danego problemu i wybranie najlepszego. Możliwe natomiast jest znalezienie rozwiązania bliskiego optymalnemu z dowolnie małym ryzykiem. Aby tego dokonać musimy sięgnąć po Sztuczną Inteligencję i stworzyć algorytm, który w miarę kolejnych iteracji będzie generował coraz lepsze rozwiązanie, aż dojdzie do takiego, które będzie tak bliskie optymalnemu, że można traktować je jako optymalne.

Aby przeszukać możliwie dokładnie płaszczyznę rozwiązań możemy skorzystać z kilku metod. Jednak w przypadku oprogramowania do tworzenia grafików skorzystamy z metody zwanej Algorytmami Genetycznymi. Algorytmy Genetyczne należą do klasy algorytmów genetycznych, natomiast nie są to algorytmy czysto losowe. Zachowują one bowiem równowagę pomiędzy szerokim penetrowaniem płaszczyzny rozwiązań jak również czerpaniem tego co najlepsze z rozwiązań już uzyskanych.

Idea Algorytmów Genetycznych oparta została na idei, którą możemy zaobserwować w naturze od tysięcy lat. Osobniki występujące w naturze poddawane są zmianom na poziomie genetycznym, aby lepiej dopasować się do zmiennych warunków oraz dedykowanej funkcji, do której zostały stworzone. Zgodnie z prawem natury, te osobniki, które są lepiej przystosowane, mają większe szanse na przetrwanie, a te mniej lub w ogóle nie przystosowane, większe szanse na wyginięcie. Szukając optymalnego grafiku pracy będziemy korzystali z tego samego mechanizmu.

Każdy grafik, choćby zupełnie błędny, stanowi możliwe rozwiązanie problemu grafikowania pracy. Na podstawie oceny wg określonych kryteriów jest on sklasyfikowany jako osobnik dobry (lepszy) bądź zły (słabszy). W miarę kolejnych iteracji, na bazie tych osobników, które osiągnęliśmy do tej pory, będziemy generowali nowe, tworząc potomstwo wg określonych operatorów krzyżowania. Gdy skrzyżujemy ze sobą 2 dobre osobniki, mamy szansę otrzymać potomka, który będzie lepszy niż jego rodzice – choć oczywiście nie zawsze. W ten sposób generując odpowiednią ilość osobników, poddając je odpowiedniej ilości krzyżowań, mamy pewność (przy odpowiednio mały ryzyku), że jako ostateczny rezultat otrzymamy rozwiązanie, które spełnia nasze oczekiwania. Czyli w przypadku problemu tworzenia grafików pracy będzie to rozwiązanie spełniające wymogi prawne, będzie oszczędne pod kątem zaangażowania zasobów do jego generowania i przede wszystkim będzie w sposób optymalny wykorzystywał zasoby ludzkie przedsiębiorstwa.

Powyższe podejście stanowi swoiste novum dla problemu tworzenia grafików pracy. Dostępne obecnie oprogramowanie to narzędzia, które albo wyłącznie wspomagają proces tworzenia grafików poprzez graficzną wizualizację tego, co pracownik wykona sam, albo oferuje rozwiązanie, które jest zawsze takie samo i stanowi tylko jedno z wielu rozwiązań. Spełnia ono założenia pierwotne natomiast nie jest poddawane żadnej oceni czy modyfikacjom, aby zweryfikować, czy istnieją rozwiązania lepsze od tego proponowanego. Wykorzystanie w problemie tworzenia grafików pracy zdobyczy z dziedziny sztucznej inteligencji pozwala nam generować grafiki, które będą optymalne zarówno w kontekście czasu jak i zasobów, jakie musimy wykorzystać aby dany grafik „obsłużyć”.

Te różnice sprawiają, że oprogramowanie oparte o algorytm genetyczny  i jego wykorzystanie buduje przewagę konkurencyjną nad innymi produktami dostępnymi na rynku, które rozwiązują problem tworzenia grafiku pracy. Ze względu na przystępny czas działania oraz możliwość wykorzystania w wielu instancjach (dzięki szerokiej parametryzacji) wpływa pozytywnie na obniżenie (optymalizację) kosztową z perspektywy klienta. Z kolei umiejętność weryfikacji konkretnego rozwiązania oraz tworzenia nowego – lepszego, daje możliwość zweryfikowania zasobów, którymi klient dysponuje i dalszą ewentualną optymalizację kosztów działalności. Z kolei automatyczne tworzenie grafiku zdejmuje obowiązek oddelegowania danej ilości pracowników do tego zdania i zmniejsza ryzyko popełnianych błędów niemalże do zera.

Elementy składowe Algorytmu:

  1. Określenie reprezentacji
  2. Stworzenie operatora inicjacyjnego
  3. Stworzenie funkcji oceny
  4. Stworzenie operatora krzyżowania
  5. Stworzenie operatora mutacji

Ad 1). Aby możliwe było zastosowanie algorytmu genetycznego do problemu tworzenia grafików należy stworzyć metodę, wg którego każdy osobnik (grafik) będzie zakodowany. Jest to krytyczny element każdego algorytmu, gdyż w zależności o doboru reprezentacji, kolejne elementy będą budowane w taki sposób, aby wszystkie elementy były ze sobą kompatybilne. Należy zatem stworzyć taki sposób reprezentacji, aby dalsze modyfikacje były łatwe do przeprowadzenia a następnie w jednoznaczny sposób dały się odkodować na gotowy grafik, możliwy do zaprezentowanie np. w postaci graficznej.

Ad 2). Dla każdego problemu istnieje płaszczyzna, która zawiera wszystkie możliwe rozwiązania danego problemu. Celem, który przyświeca podczas rozwiązywania jakiegokolwiek problemu jest znalezienie takie rozwiązania, które będzie obiektywnie optymalne. Aby zwiększyć szanse znalezienia najlepszego rozwiązania (w przypadku kiedy nie jesteśmy w stanie zweryfikować ich wszystkich), należy zacząć poszukiwania w wielu punktach na płaszczyźnie rozwiązań, które będą od siebie oddalone (nie będą w swoim bezpośrednim sąsiedztwie). Aby ten warunek zapewnić należy stworzyć operator inicjacyjny, który jako punkty startowe wybierze takie miejsca, które będą od siebie w odpowiedniej odległości. Dzięki temu zwiększymy szanse, że ostateczne rozwiązanie będzie optymalne.

Ad 3). Aby ocenić, czy grafik, który otrzymujemy jest dobry czy zły, musimy zdefiniować funkcje miary, które będą mierzyć poziom dopasowania rozwiązania do zadanych pierwotni warunków krytycznych. Należy zatem przeanalizować wszystkie obostrzenia prawno-administracyjne, mikroekonomiczne itp., aby każdemu z nich przypisać odpowiednią funkcje miary do oceny, czy dane kryterium jest spełnione czy nie. Następnie należy stworzyć cały system wag, który zdefiniuje na ile dane kryterium jest ważne w stosunku do innych. Bowiem nie wszystkie warunki krytyczne nakładane na rozwiązanie są równie istotne w kontekście akceptacji ostatecznego rozwiązania.

Ad 4). Operator krzyżowania to najważniejszy element algorytmu w kontekście poszukiwań nowego, lepszego rozwiązania, przy zachowaniu wiedzy zdobytej do tej pory. Na tym etapie będziemy dokonywali krzyżówek „genetycznych” pomiędzy istniejącymi już rozwiązaniami i w rezultacie będziemy otrzymywali potomstwo, które z założenia ma być lepiej dopasowane do warunków krytycznych. Aby operator krzyżowania dobrze rokował, musimy określić w jaki sposób łączyć ze sobą geny poszczególnych rodziców oraz na jakiej zasadzie tych rodziców dobierać. Następnie, musimy zdefiniować w jaki sposób  algorytm ma decydować, czy dany osobnik (grafik) przeżyje – czyli będzie brany pod uwagę w dalszych iteracjach algorytmu, czy też wymrze, czyli zostanie usunięty jeżeli będzie zbyt słaby. Odpowiednia ilość powtórzeń w ramach operatora krzyżowania gwarantuje znalezienie dobrze dopasowanego rozwiązania, które będzie optymalne.

Ad 5). Operator mutacji, to swego rodzaju „dzika karta”, którą dany osobnik (grafik) może otrzymać w sposób losowy. Jak pokazują liczne badania naukowe, czasami losowa zmiana któregokolwiek genu w ramach danego osobnika sprawia, że osobnik staje się jeszcze lepiej dopasowany do warunków niż wynikałoby to z klasycznego krzyżowania. W ramach tego operatora należy określić w jaki sposób ma dochodzić do mutacji i jak często chcemy ją dopuścić. Racjonalne mutowania zwiększa szanse i przyspiesza znalezienie rozwiązania optymalnego. Natomiast zbyt częste jego występowanie może spowodować, że algorytm straci swoje właściwości uczące i w pewnym momencie utknie w „ślepym zaułku”

 

21/05/2018 Zapraszamy do artykułu w serwisie HR Polska o Graphwork !

https://hrpolska.pl/hr/narzedzia/graphwork-automatyczne-kreowanie-grafikow-pracy.html