Co nas kręci

1. Optymalizacja

Zajmujemy się szeroko pojętą optymalizacją procesów w firmie z wykorzystaniem heurystycznych algorytmów optymalizacyjnych.

Optymalizacja jest to myślenie w kategoriach celu – odpowiadamy sobie na pytania:

  • Jakie są moje cele?
  • Co chcę osiągnąć?
  • Jakie decyzje mogę podjąć?
  • Jakie ograniczenia muszę uwzględnić?
  • Jak ocenić wpływ decyzji na cele?

Po uzyskaniu odpowiedzi na te pytania możemy przystąpić do przygotowania odpowiedniego algorytmu optymalizującego wybrany proces biznesowy. Dobór algorytmu, dokładny czy heurystyczny, zależy od problemu.

  • Problem komiwojażera

Rozwiązanie tego problemu w najprostszej formie pozwala zdecydować, w jakiej kolejności odwiedzać punkty na naszej trasie, aby zminimalizować koszty. Optymalizować tu można nie tylko ilość przejechanych kilometrów, ale także czas podróży. Ponieważ ceny paliw ciągle rosną, optymalizacja w tej dziedzinie staje się coraz bardziej koniecznością wynikającą z silnej konkurencji a zarazem sposobem na znaczną redukcję kosztów. Z doświadczenia wiemy, że problem ten w firmach nie skupia się tylko do odpowiedzi, w jakiej kolejności odwiedzać punkty trasy, ale dochodzą do tego dodatkowe ograniczenia zmieniające problem na bardziej skompilowany. Przykładem czynnika tworzącego kolejną wariację problemu jest konieczność zmiany kolejności odwiedzanych punktów już w trakcie podróży wynikającej ze specyfiki pracy.

  • Problem plecakowy

Przykładem problemu plecakowego może być problem magazyniera, którego zadaniem jest umieszczenie jak największej ilości produktów na regale i określonej półce. Sama półka ma określoną nośność oraz przestrzeń załadowczą. Dane wejściowe to zbiór produktów o określonych gabarytach i określonej wadze.

  • Optymalizacja systemu dystrybucji

Przykładem może być firma (fabryka) posiadająca 3 potencjalne lokalizacje magazynu dystrybucji i chce odpowiedzieć sobie na pytanie, która lokalizacja będzie najlepsza. Znane są odległości poszczególnych potencjalnych lokalizacji magazynów od fabryki oraz jednostkowe koszty transportu z fabryki do tych lokalizacji. Znane są zapotrzebowania na produkty w rozważanym rejonie.

  • Optymalizacja harmonogramowania czasu pracy

Sytuacja gdy każdy pracownik musi pracować w cyklu 5 dni pracy, dwa dni wolne. Dni wolne pracownika mogą wypadać w dowolnym dniu tygodnia. Należy znaleźć harmonogram pracy minimalizujący łączna liczbę pracowników i zgodny z powyższymi ograniczeniami.

2. Przyszłość w inteligentnym oprogramowaniu

Współczesny biznes dostrzega potrzebę korzystania z systemów informatycznych w coraz większym stopniu wspomagających podejmowanie decyzji. Już nie tylko na szczeblu zarządzającym ale także na poziomie produkcji czy usług. Przykładem mogą być kierowcy, którzy chcą być wyręczani z podejmowania decyzji o tym jak planować trasę przejazdu, jak omijać korki, jak załadować czy rozładować samochód, oraz kiedy planować przerwy. Aktualnie na rynku pojawiło się szereg rozwiązań technicznych pozwalających wdrażać systemy wspierające takich pracowników/ taką specyfikę pracy. Mamy do dyspozycji coraz bardziej dokładne mapy elektroniczne, urządzenia mobilne i nieograniczony dostęp do Internetu czy Intranetu firmy. Każda branża czy też firma ma własne procesy biznesowe często wspomagane oprogramowaniem nazwanym inteligentnym, pozwalającym unikać zbędnej interwencji użytkownika. Takie „inteligentne oprogramowanie” jest wyposażone w szereg algorytmów dających możliwość wykonywania powierzonych mu zadań szybciej, dokładniej i bez udziału człowieka. Wybrane algorytmy służą do rozwiązania NP-trudnych zagadnień z przybliżoną dokładnością, ponieważ dokładny wynik nie jest osiągalny w realnym czasie. Dlatego dobór odpowiedniego algorytmu aproksymacyjnego czy heurystycznego jest sprawą ważną. Ma to szczególne znaczenie dla oprogramowania, któremu powierza się dbanie o zdrowie czy życie człowieka. Ważny jest czas wykonania zadania oraz jego poprawność.

W naszej opinii inteligentne oprogramowanie w przyszłości będzie się mocno rozwijać i ukierunkowywać na wykorzystanie algorytmów mogących się uczyć. Aktualnie używamy oprogramowania, dla którego każdy wynik jest w sposób jednoznacznie określony poprzez dane wejściowe czy wzór działania. Przyszłość należy do oprogramowania dopasowującego problem do wzorca już wyuczonego, ale nie takiego samego, lecz zbliżonego. Rozwiązanie poprawne problemu powoduje powstanie nowego wzorca działania lub korektę już istniejącego.