Pracuję nad aplikacji gdzie potrzebne do automatycznego planowania pracy dla członków na obracającym się harmonogramu. Nie jestem bardzo dobry w wyjaśniając zasady, tak oto niektóre dane, aby pomóc:
Pozycji: tytuł pracy, z zasadami, takimi jak poniedziałki i środy w tygodniu.
Kategorie: zestaw pozycji
grup: Kolejny zestaw pozycjach. Pozycje z tej samej grupy nie można przypisać tego samego dnia
Członków: Użytkownicy przypisane do pozycji w danym dniu.
Na każdy dzień w miesiącu, członkowie są przypisane do stanowisk (zarówno w porządku rosnącym). Jeżeli członek jest przypisany do pozycji w jednej kategorii, następnym razem, gdy stanowisko w tej samej kategorii pojawia się, następnym członkiem alfabetycznie (lub początek listy) zostaje przydzielony np.
Użytkowników: M1, M2, M3, M4
Pozycje w kategorii C1: P1, P2, P3
członków w pozycji P1: M1, M2, M3, M4
Członków w pozycji P2: M1, M2, M3
Członków w pozycji P2: M1, M3, M4
Jeśli M1 jest przypisany do P1, P2, gdy przychodzi następny, M2 zostanie przypisany. Dodatkowa warstwa złożoności wprowadza gdzie jeśli P3 będzie dalej zamiast M3 zostanie przydzielony. System musi śledzić na fakt, że M2 „pomijane” i przypisać M2 obok jeśli są dostępne, a następnie przypisać M4 obok, albo czekać, aż dojdzie do sytuacji, w której M2 jest dostępny (to staje się dodatkowo skomplikowane, gdy istnieje wiele „pominięty 'członków).
Członek będzie również pominięty gdyby wskazał on nie będzie dostępna w tym dniu. System musi stawiać nacisk na pominiętych członków, jakoś je zidentyfikować, kiedy nadejdzie, a następnie przejść do następnego logicznego osoby na liście. Pomijanie odnosi się także do grup ze względu na aktualne starć.
Mam już tymczasowy [i niechlujny] rozwiązanie, które już nie rozumieją, chociaż mam wiele uwag wyjaśniających w nim każdy krok. Jego słabości są w kontaktach z pomijaniem członków.
Jeśli jechaliśmy do kodu to jak byś się do tego zabrać? I 'm wykonawczych to w PHP, ale pseudokod będzie działać jak również.













