Archive for the ‘Inne’ Category

h1

Przykładowy algorytm przydziału zadania

Styczeń 13, 2018

Od jakiegoś czasu w mediach oraz internecie poruszany jest temat algorytmu przydziału sędziego do zgłoszonej sprawy. Z jendej strony wielu się zastanawia jak działa taki algorytm, z drugiej, stosowne jednostki wskazują, że takiego algorytmu nie mogą ujawnić. Można zrozumieć obydwie strony. Brak ujawnienia tym bardziej ponieważ mógłby zostać np. nieodpowiednio użyty.

Po dzisiejszej dyskusji o algorytmach, o których pisałem już kilkakrotnie na blogu, którą słyszałem w telewizji “śniadaniowej”, postanowiłem, że napiszę wpis właśnie o przykładowym algorytmie przydziału osoby do zajęcia się zadnaiem. Nie będę wnikał, czy dotyczy to sędziów, lekarza, pracownika obsługi czy innej jednostki. Spróbuję to trochę uogólnić.

Załóżmy, że mamy grupę osób (wejście do algorytmu – lista osób) zajmujących się zadaniami zgłaszanymi przez osoby zewnętrzne względem tej grupy. Grupa ta ma określone umiejętności/specjalizacje (jeden z wejść do zadań zaznaczony na zielono na diagramie – specjalizacje osób), pracuje w różnych godzinach/dniach (kolejne wejście oznaczone na diagramie – plany urlopowe) oraz odnotowuje w systemie postęp zadania, jego aktualny status oraz szacowaną datę zakończenia (zebrane wspólnie jako kolejne wejście do kroku algorytmu wskazanego na diagramie – aktualny stan zadań).  Wydaje się, że to silne założenia, jednakże, aby system przydziału działał skutecznie oraz sprawiedliwie (nie wnikając co to znaczy) jakaś informacja zwrotna od osoby obsługującej powinna być.

alogorytm_przydzialu450px

Na powyższym diagramie został zaprezentowany przykładowy (wymyślony przeze mnie) algorytm przydziału zadania do jednej z osób z grupy, który sprawdza w pewnej kolejności określone kryteria (efektem jest zawężona lista osób zaznaczona na niebiesko). Te kryteria powinny działać tak, aby w miarę rozsądnym czasie udało się wybrać osobę. Ostatecznie działanie algorytmu można byłoby uprościć i przydzielać zadania rotacyjnie (osoba 1, osoba 2, … osoba n, osoba 1, osoba 2…) lub losowo (co może skutkować pewnymi dysproporcjami w przydziale zadań lub ich nadmiernym kolejkowaniem u danej osoby). W sytuacji, gdy nie jest to możliwe zadanie może trafić do ręcznego przeglądu lub na przydział z określoną liczbę dni.

Na działanie takiego algorytmu wpływa silnie przyjęte założenie dotyczące samego kolejkowania (założenie zaznaczone na diagramie zmienną Y) – czy danej osobie budujemy kolejkę zadań (może wtedy czekając na decyzję/informację do danej sprawy zająć sie inną), czy też zajmuje się zdaniem i dopiero po zakończenia lub w odpowiednim jego stanie jest przydzielane kolejne zadanie. Każde rozwiązanie ma swoje zalety i wady. Ważne jest również to ile napływa takich zadań w okresie czasu oraz ile średnio zajęcie się danym zadnaiem trwa. Na czas potrzebny na realizację zadania może się także charakteryzować specyficznym rozkładem – to, że większość zadań zajmuje kilka dni, nie znaczy, że nie ma jakiejś grupy zadań, których obsługa wymaga znacznie więcej czasu.

Nie dziwię się więc, że alogorytmu przydziału spraw nikt nie chce ujawniać/udostępniać. Jeżeli ktoś poświęcił określony czas na jego opracowanie, biorąc pod uwagę różne cechy (tak zakładam) oraz go wdrożył, to traktuje to jaką pewne know-how jednostki budującego jej wiarygodność. Tym bardziej jeżeli mówimy o algorytmie przydziału spraw, których rozstrzygnięcie wpływa bardzo zarówno na życie stron postępowania, jak i na opinię danego podmiotu.

Reklamy
h1

Zdrowe skutki procesu

Grudzień 28, 2017

Dzisiaj będzie nietypowo – o jedzeniu. Nie myślałem, że wyjazd na święta i spotkania przy świątecznym stole skończą się dyskusją o zdrowym żywieniu, składzie pokarmów, tych zdrowych i tych mniej zdrowych. Moment na dyskusję o tyle ciekawy, że świąteczne potrawy pewnie patrząc pod różnym kątem, mogą zostać przyporządkowane zarówno do tych zdrowych, jak i do tych mniej. Zależy to od okoliczności, ilości, ale i także czasu oraz środków przeznaczonych na przygotowanie potraw. Jednakże najciekawsza była puenta dyskusji.

Okazało się, że istnieją aplikacje na komórkę, które korzystając z dostępnego połączenia internetowego, na podstawie kodu kreskowego produktu (nie wszystkich) są w stanie wskazać jakie “środki” chemiczne (konserwanty, wzmacniacze smaku lub inne) znajdują się w danym produkcie (od sosów, przez przekąski po inne produkty kończąc). Z perspektywy użytkownika proces realizowany w aplikacji, wspierający – można tak to ująć – zdrowie żywienie, został zaprezentowany na poniższym diagramie.

zdrowy_proces_418px

Taka aplikacja (jedną z nich testowałem “w swojej kuchni”) wymaga dostępu do internetu (warunek wejściowy przy uruchomieniu), więc pewnie ma dostęp do jakiejś  bazy odpytywanej za pomocą łącza internetowego – aplikacja pozwala również na definiowanie produktów oraz przeglądanie poprzednich skanów. Każdy odnaleziony produkt jest prezentowany za pomocą listy składników (tzw. “E” oraz innych), z oznaczeniem ich charakteru – korzystny, obojętny, podejrzany, szkodliwy itd. Równocześnie podaje krótką informację o danym elemencie – sposób pozyskania oraz wpływ. Dla pewnych produktów pozwala na zapoznanie się z produktami alternatywnymi.

Korzystanie z aplikacji jest bardzo proste, można korzystać z niej w dowolnym miejscu, a integracja aplikacji z lampą/latarką komórki, pozwala także na odczytanie kodu w słabszych warunkach oświetleniowych. Wydaje się to bardzo pouczające – z jednej strony dowiadujesz się, czy jakiegoś produktu lepiej unikać, z drugiej można określić, czy przypadkiem jakieś dolegliwości nie wynikają akurat ze spożycia większej ilości produktu, zawierającego składnik potencjalnie je powodujący. Można także potwierdzić, że dany produkt zawiera jedynie „korzystne” składniki.  Efektem z realizacji procesu wspieranego przez aplikację jest “lepsze” zdrowie lub spożywanie bardziej zdrowego jedzenia.

Podany przykład aplikacji pokazuje jak technologia może wspierać codziennej życie. Komórkę mamy przeważnie na zakupach ze sobą, tym bardziej, że wielu użytkowników korzysta również z aplikacji komórkowych do budowania listy zakupów czy z mechanizmu przypomnień o określonych zakupach.

h1

Zmiana rodzaju faktury

Grudzień 9, 2017

Jak wielu pewnie odbiorców energii elektrycznej w moim regionie, otrzymywałem od operatora co 2 miesiące papierową fakturę. Faktura standardowo zwierała informację o szczegółach opłat, okresie którego dotyczą, zużyciu, danych identyfikacyjnych itp. Ważnym elementem znajdującym się na fakturze jest jej numer, który używałem podczas płatności.

Na jednej z ostatnich faktur, na dokumencie znalazła się także informacja o możliwości założenia konta w serwisie, a co za tym idzie otrzymywania faktur w formie elektronicznej. Staram się korzystać z takich możliwości, więc wszedłem pod właściwy adres.

Poniższy diagram opisuje po krótce jaki proces przeszedłem.

faktura450px

Można zauważyć, że w procesie nastąpiły 2 potwierdzenia przy użyciu podanego adresu e-mail – aktywacja konta oraz potwierdzenie zgody na faktury elektronicznej. Ciekawe jest to, że mogłem wszystko zrobić z domu, bez konieczności udawania się do punktu obsługi czy podpisywania dokumentów/zgód papierowych.

Warunkiem identyfikacji przypuszczam, że było to, aby podane dane – PESEL oraz numer faktury były zgodne z tymi zapisanymi po stronie operatora – ten pierwszy podczas podpisywania umowy, a ten drugi w momencie wystawienia danej faktury. Elementy te można potraktować jako “wejście” i również warunek wstępny dla procesu. Podanie adresu e-mail oraz loginu/hasła jest również wejściem do procesu, pozwalającym na jego przeprowadzenie.

Teraz, logując się do systemu, mogę sprawdzić historię odczytów, historię płatności, zapoznać się ze zmianami oraz zgłosić jakąś sprawę do operatora. Faktury są dostępne w jednym miejscu oraz będę mógł podać odczyt, jeżeli zajdzie taka potrzeba. Przejście na fakury elektroniczne ma także wymiar ekologiczny – zużywane jest mniej papieru.

h1

Czas realizacji procesu – przykład

Grudzień 4, 2017

Ostatnio opisywałem różne przypadki, z którymi się spotkałem podczas realizacji procesu zamówienia złożonego w sklepie internetowym. Każde złożone zamówienie do mnie dotarło, więc jestem zadowolony, ponieważ prezenty dotarły. Czas ich realizacji od momentu złożenia zamówienia do otrzymiania przesyłki był różny. W zależności od dostawcy, w ramach procesu dostępne był mniej lub bardziej rozbudowane narzędzia do monitoringu przesyłki.

Wybrałem jeden z przypadków, aby pokazać różne czasy realiazcji procesu, bazując z jednej strony na powiadomieniach mailowych, a z drugiej na informacjach zawartych na stronie do śledzenia przesyłki. Kluczowe daty/godziny dla zrealizowanego procesu zostały zaprezentowane na diagramie.

czas_realizacji450px

Na łączny czas dostarczenia przesyłki, patrząc na proces od początku do końca, składały się:

  • z punktu widzenia nadawcy przesyłki, działania wykonane w czasie T1 (między od 2017-11-19, g. 21:15 do 2017-11-20, g. 19:10), od momentu złożenia zamówienia do jej nadania u operatora,
  • z punktu widzenia operatora dostaraczającego przesyłkę – T2 (między 2017-11-20, g. 19:10 a 2017-11-22, g. 16:00), tj. do momentu dostarczenia przesyłki do punktu odbioru. W tym czasie mogły być wykonywane działania takie jak: transport przesyłki między punktami pośrednimi, przyporządkowanie przesyłki do kanału/kierunku dostawcy, oznaczenie statusu przesyłki itp.
  • czas oczekiwania na odbiór przesyłki z punktu przez klienta – T3 (między 2017-11-22, g. 16:00 a 2017-11-22, g. 19:40). Maksymalny czas oczekiwania przesyłki w punkcie: 5 dni roboczych.

Łącznie proces zajął TC (od 2017-11-19, g. 21:15 do 2017-11-22, g. 19:40), będacy sumą powyższych czasów. Na bazie tych informacji można byłoby określić także czas rzeczywistego (TR) przebiegu procesu, bez uwzględniania czasu oczekiwania, ponieważ zależy od tego, kiedy będę mógł udać się po przesyłkę (najlepiej jak najszybciej, ale nie przekraczając czasu, gdy przesyłka będzie czekać na odbiór). Informację o tym, że przesyłka oczekuje na odbiór, można potraktować jako moment zakończenia procesu.

Na powyższym diagramie można byłoby określić jeszcze T0, w czasie którego wybierałem produkt, określałem sposób dostawy, płatności a następnie potwierdziłem i opłaciłem zamówienie. Niestety nie policzyłem ile czasu zajęło mi złożenie zamówienia. Z punktu widzenia sklepu internetowego, do momentu potwierdzenia zamówienia ten czas nie jest istotny, o ile składanie zamówienia odbywa się w sposób i w czasie akceptowalnym przez użytkownika. Jeżeli czas się wydłuża ze względu na błędy systemu lub problemy z aplikacją, taka informacja mogłaby być cenna dla sklepu internetowego.

Jeżeli użytkownik loguje się do systemu, to można byłoby policzyć czas od ostatniego logowania do złożenia zamówienia lub czas od umieszczenia zamówienia w poczekalni do jego rzeczywistego zamówienia, W powyższym przykładzie skupiłem się na czasie upływającym od momentu, gdy następuje wskazanie konkretnego zamówienia do realizacji.

h1

EPO – co to jest?

Listopad 18, 2017

Zapoznając się z tegorycznymi (2017) wynikami konkursu “Liderzy Informatyki” kilkakrotnie napotkałem w artykułach informację, że istotnym elementem na polskim rynku było wprowadzenie tzw. EPO. Wiele firm dołączyło do tego systemu od momentu jego wprowadzenia. Materiały o projekcie opublikowane w Internecie wskazują, że wprowadzenie takich mechanizmów miało przyczynić się m.in. do przyspieszenia obiegu korenspondencji sądowej oraz zmiany samych procesów.

EPO jest to tzw. elektroniczne potwierdzenie odbioru, gdy dla nadanej przesyłki lub grupy przesyłek informacja zwrotna przekazywana jest elektronicznie zamiast przygotowywana i przekazywania w formie papierowego formularza odbioru. Bezpośrednio po dotarciu przesyłki do odbiorcy i jej odebraniu, taka informacja trafia do nadawcy, a dokładnie do jego systemu. Sposób działania jest zaprezentowany na diagramie w formie uproszczonej.

epo450px

Dla tak zbudowanego rozwiązania istotnymi elementami są:

  • dostępność systemu – aby w każdym momencie możliwe było nadanie przesyłki oraz otrzymanie w akceptowalnym czasie potwierdzenia odbioru. W przypadku przesyłek sądowych czas dostarczenia przesyłki oraz informacja o tym ma znaczenie dla przebiegu procesu;
  • elastyczność systemu – możliwość dołączenia kolejnych instytucji lub operatorów, aby możliwe było zaspokojenie potrzeb różnych podmiotów. W zapewnieniu tego miało też pomóc zastosowanie otwartych standardów i technologii.
  • bezpieczeństwo systemu – w ramach komunikatów przesyłanych do systemu i otrzymywanych z niego krążą poufne informacje. Informacja o tym, że do kogoś idzie przesyłka sądowa, jest informacją dla danego odbiorcy i nie powinna trafić do innego podmiotu. Projekt zakładał szyftowanie danych oraz stosowanie podpisów dla komunikatów, aby zapewnić ich poufność oraz uniemożliwić ich podważenie.
  • integralność danych – informacja przekazywana podczas nadania przesyłki powinna być zgodna z informacją w EPO. Dla sądu jest istotne, które przesyłki dotarły do których adresatów i kiedy. Modyfikacja jakiegoś elementu mogłaby mieć konsekwencje, przede wszystkim dla odbiorcy postępowania lub innej osoby.
h1

Ślad po procesie

Wrzesień 29, 2017

Myślę, że można powiedzieć, że wraz z końcem września kończy się okres intensywnych wyjazdów wakacyjnych i powrotów. Jedni korzystali z samochodu, inni roweru, autobusu, statku, pociągu czy samolotu. Niektórzy skorzystali ze wszystkich, inni z jednego środka transportu a inni z kilku. Pierwszym krokiem był zakup lub rezerwacja biletu, samodzielnie lub przez biuro podróży, elektronicznie lub bezpośrednio w punkcie sprzedaży. W zależności od potrzeb, możliwości, każdy wybierał to, co mu pasuje. Pasażer decydował się na: wybór przewoźnika/linii (1), wybór kierunku (2), daty (3), miejsca startu (4) lub też innych parametrów podróży. Następne kroki zależały od wybranego środka transportu.

Pewnie niektórym pasażerom/turystom to dziś została przy torbie pamiątka z podróży samolotem. Jest to można powiedzieć ślad z realizacji pewnego procesu (wskazanego poniżej). Przyglądając się temu fragmentowi papieru można znaleźć takie informacje jak: (a) nazwisko pasażera, (b) liczba i waga bagażu, (c) data wydruku, (d) oznaczenie miejsca wylotu, (e) oznaczenie samego lotu, (f) oznaczenie miejsca docelowego, (g) data i godzina wylotu oraz (h) dodatkowe oznaczenia. Dodatkowo jest na nim kod kreskowy.

przelot450px

Ten ślad zawiera informacje pochodzące z procesu rezerwacji przelotu wykonywanego samodzielnie lub przez biuro podróży, rozszerzone o informacje pochodzące z odprawy, takie jak data wydruku oraz te, dotyczące bagażu. Przykładowy proces generujący przytoczone atrybuty został zaprezentowany na powyższym diagramie.

Informacje zawarte na tym pasku (bo często jest to długi wąski pasek) pozwalają szybko zweryfikować gdzie powinien trafić bagaż i czy został skierowany prawidłowo. Dodatkowo za pomocą naklejek z powtórzeniem kodu kreskowego, systemy na lotnisku mogą właściwe pokierować bagaż przez systemy sortowania bagażu. Także na samej płycie lotniska te paski lub kody są używane przez obsługę do weryfikacji, a także pewnie identyfikacji załadowanych sztuk bagażu (bo stojąc przy oknie i obserwując załadunek, można zauważyć, że na taśmie bagażowej przy samolocie jest czytnik, o ile dobrze zauważyłem, który skanuje każdą sztukę bagażu).

Można powiedzieć, że z punktu widzenia pasażera jest to ślad po odbytej podróży samolotem, natomiast z punktu widzenia lotniska jest to element zarówno kontrolny, jak i sterujący. Dodatkowo w momencie “zagubienia” bagażu można przypisać bagaż do odpowiedniej linii i przybliżyć się do powiązania bagażu do właściciela.

h1

Przechadzka po szachownicy po raz drugi

Wrzesień 23, 2017

Przy okazji omawiania wzorca Odwiedzający skorzystałem z przykładu przechodzenia skoczkiem przez wszystkie pola szachownicy tak, aby każde pole odwiedzić tylko raz, zaczynając z różnych miejsc na szachownicy. Mechanizm szuka kolejnych pól, przechodzi dalej lub cofa się, jeżeli nie jest możliwe dalsze przejście. Rozwiązanie takiego problemu istnieje i pewnie nie jeden pasjonat szachów próbował to zrobić na kartce lub szachownicy. Szachownica zaprezentowana jest na poniższych diagramach. Zaznaczone są także przykładowe przejścia.

Wyobraźmy sobie, że każde pole szachownicy umieszczamy na grafie w węźle, a te węzły, które można ze sobą połączyć, łączymy krawędzią, stosując “wirtualną” odległość opartą o 2 kratki w pionie lub poziomie i 1 odpowiednio w poziomie lub pionie. W taki sposób można rozwiązać także inne sytuacje, np. łączenie wykładowców i przedmioty lub inne sytuacje biznesowe. Fragment takiego grafu jest zaprezentowany na poniższym diagramie.

szach_animated

W tym przykładzie w zależności od położenia pola na szachownicy, dany węzeł grafu ma 2 (kolor czerwony), 3 (kolor zielony), 4 (kolor szary), 6 (kolor niebieski) lub 8 (kolor żółty) wyjść. Na powyższym diagramie takie miejsca grafu zosały odpowiednio oznaczone kolorami. W zależności od węzła, od którego rozpoczynamy wędrówkę, mamy więcej lub mniej możliwości zmiany kierunku. Na animacji droga przechodzi przez różne punkty – rozpoczyna się w punkcie z 2 wyjściami (A1), potem przechodzi przez punkty z 6, 8, 4 wyjściami a kończy w punkcie z 4 wyjściami (F8). Nie przechodzi przez punkt z 3 wyjściami.

szachownica_obszary

Powyższe zadanie to tzw. poszukiwanie ścieżki Hamiltona na nieskierowanym grafie, czyli takim, w którym po każdej krawędzi można przejść w 2 strony. Z racji, że każdemu z węzłów można przypisać jeden z dwóch kolorów i nie ma połączenia/krawędzi między dwoma węzłami tego samego koloru, jest to równocześnie graf dwudzielny. W publikacjach można znaleźć różne algorytmy wyszukiwania takiej ścieżki. Więcej można przeczytać o powyższym problemie choćby we wpisie na anglojęzycznej wersji Wikipedii. Niestety w polskiej wersji informacje te są bardzo ograniczone.