Harmonogram algorytmu. Nauka dokonuje harmonogramu

Przypuśćmy, że jest wiele n.identyczne procesory, wyznaczone i niezależne zadania
do wykonania. Procesory mogą pracować jednocześnie, a każde zadanie można wykonać na dowolnym procesorze. Jeśli zadanie jest ładowane do procesora, pozostaje tam do końca przetwarzania. Czas przetwarzania zadania jest również znany
Organizuj przetwarzanie zadań, aby cały zestaw zadań zostało zakończonych tak szybko, jak to możliwe.

System działa w następujący sposób: Pierwszy zwolniony procesor wykonuje następujące zadanie z listy. Jeśli dwa lub więcej procesorów są jednocześnie uwolnione, kolejnym zadaniem z listy będzie procesor z najmniejszą liczbą.

Przykład. Niech występują trzy procesory i sześć zadań, czas wykonania każdego z nich jest:

Rozważ harmonogram w początkowym momencie czasu. T \u003d 0.Edytor zaczyna obsługiwać zadanie Edytor - zadania i procesor. - zadania . procesor kończy zadanie w momencie
podczas gdy procesory i nadal pracuje nad ich pierwotnymi zadaniami. Dla T \u003d 3.procesor ponownie kończy zadanie i zaczyna obsługiwać zadanie to się kończy w tym czasie T \u003d 4.. Potem zaczyna spełniać ostatnie zadanie . Procesory i wykończenie zadań T \u003d 5.Ale od liście L.puste, przestają. procesor uzupełnia wykonanie zadania dla T \u003d 12.. Recenzowany harmonogram jest zilustrowany na rys.1. tymczasowy diagram znany jako schemat Gantta. Oczywiście harmonogram nie jest optymalny. Możesz "odebrać", na przykład, harmonogram, który umożliwia wykonanie wszystkich zadań T * \u003d 8jednostki czasu (rys. 2).

Teraz rozważ kolejny rodzaj zadania, aby sporządzić harmonogram dla systemów wieloprocesorowych. Zamiast kwestii najszybszego zakończenia konfiguracji ustawionej przez stałą liczbę procesorów, teraz będziemy teraz umieścić kwestię minimalnej liczby procesorów wymaganych do wykonania tego zestawu zadań na stały czas . Oczywiście czas nie będzie mniej niż czas pracy czasochłonnej.

W takim preparacie zadaniem opracowywania harmonogramu jest równoważny z następnym problemem opakowaniowym. Niech każdy procesor odpowiada pudełku rozmiar . Niech każdy zadanie będzie odpowiada rozmiarowi rozmiaru równy wykonywaniu zadania gdzie
Teraz, aby rozwiązać zadanie rysowania harmonogramu, musisz zbudować algorytm, który pozwala umieścić wszystkie przedmioty w minimalnej liczbie pudełek. Oczywiście niemożliwe jest wypełnienie pudełek powyżej ich objętości. i przedmioty nie mogą być zgniecione do części.

Literatura

1. T. CORNER, CH. DISPERSION, R. Rivest

Algorytmy: budynek i analiza. M.: MCSNMO, 2000.

2. D.Knut Art Programming, objętość 1. Podstawowe algorytmy. UCH. poz. M.: Ed. Dom "Williams", 2000.

3. Wirth N. Algorytmy i struktury danych .: Pen. Z angielskiego - M.: Mir, 2001.

4. Husainov B.S. Struktury i algorytmy przetwarzania danych. Przykłady na

język Si. Studia. zasiłek. M: Finanse and Statistics, 2004.

5. A. AHO, J. Chopcroft, J. Ulman, struktury danych i algorytmy M: Petersburg: Kijów: Williams, 2001.

Cisza panowała, która szyta się zepsuła, westchnienie:
- ... w służbie wojskowej musi być dyscyplina - nikt nie przeniósł się do palec do palec. Nasi Makovets OBER Makovets zawsze mówili: "Dyscyplina, Nerds, konieczne. Nie bądź dyscypliną, chciałbyś małpy, drzewa Lasili. Usługa wojskowa od ciebie głupców bez przemyślenia, ludzie zrobią! " Czy to nie? Wyobraź sobie kwadrat, powiedzmy na placu Karlova, a na każdym drzewie znajduje się jeden przez jednego żołnierza bez dyscypliny. Strasznie mnie strasznie.
Yaroslav Gashek. Przygoda odważnego żołnierza Schweik

Zaplanuj klasę, jest to połączenie w przestrzeni i czasie dyscypliny (temat), nauczyciela (nauczycieli), publiczność i grupy (podgrupy, strumień) studentów.

Sformułowanie problemu

Będę krótki.

  • Podczas prowadzenia zajęć może być nikogo, na przykład, na spotkaniu Departamentu, uczniowie zwykle nie przyjdą ani nie przyszli departament Wojskowy (Mają swój własny harmonogram), a aby rodzaj zajęć nie ma dyscypliny, nauczyciela i publiczności.
  • Z reguły niezbędny wymóg jest ciągłość (brak okien) u studentów, a najlepiej wśród nauczycieli.
  • Harmonogram można przygotowywać w semestrze / pół miesiącu przez tygodnie, przez dwa tygodnie i numerator / mianownik (dziwny tydzień / nawet tydzień). Jest też harmonogram przez miesiąc.
  • Klasy powinny być w stanie wykonać w trybie ręcznym (innymi słowy w edytorze). Na przykład, Rada Naukowa lub kilka szefa Bolszoj, a nawet lekcja jest tylko dobrym człowiekiem.
  • Musi istnieć system zakazów dla wszystkich uczestników lekcji. Na przykład, teraz prawie wszyscy nauczyciele pracują na boku (w przeciwnym razie nie będziesz żył), czy fundusz audytu jest podzielony między wydziałami i niemożliwe jest umieścić na lunch do części publiczności.
  • Dostępność wyrafinowanych życzeń nauczycieli, jedna pozować 5 pary dziennie do bezpłatnych innych dni, a pozostałe więcej niż dwie pary dziennie nie umieszcza, jest przytłoczony, a jeśli wykład, a następnie jedna para i koniecznie 2 lub 3 więcej.
  • Zajęcia w różnych budynkach wymagających czasu, aby przejść więcej niż czas przerwy między klasami. Naturalnie i stan minimalizacji przemieszczeń.

Wynik. Jak widać z preparatu, ocena jakość harmonogramu jest możliwa, tylko po jego kompletnej kompilacji. W związku z tym stosowanie algorytmów genetycznych może pozwolić na zbudowanie rozwiązania pożądanego zadania, a nawet uzyskać jeden z dobrych w pewnym sensie. W tym przypadku algorytmy genetyczne są bardzo szybko zrodzone do optymalnego na początku i oznacza prawie nie będzie ograniczeń na objętości danych wejściowych.

Zdjęcie zostało pobrane stąd.

Algorytm genetyczny

Czysty retorycznie powtarzam główne etapy algorytmu genetycznego:

  1. Ustaw funkcję docelową (fitness) dla osób fizycznych
  2. Stworzyć początkową populację
  3. (Start cyklu)
    1. Reprodukcja (przejście)
    2. Munnie
    3. Oblicz wartość funkcji docelowej dla wszystkich osób.
    4. Formacja nowej generacji (wybór)
    5. Jeśli warunki zatrzymania są wykonywane, koniec cyklu, w przeciwnym razie (początek cyklu).

Najbardziej charakterystycznym błędem wykorzystania algorytmów genetycznych jest wybór genów. Często roztwór jest często wybierany jako geny. Wybór genów jest najbardziej nietrytowany i kreatywny element w tworzeniu algorytmu genetycznego. Osobiście uważam, że wybór genów powinien spełniać dwa z następujących podstawowych wymogów.

  1. Na zestawie genów decyzja o pożądanym zadaniu należy zbudować szybko i jednoznacznie.
  2. Przekraczając, potomek musi dziedziczyć charakterystyczne cechy rodziców.

Komentarz. Zestaw genów powinien podać cały zestaw (prawdopodobnie optymalne) rozwiązania problemu. Zasadniczo nie jest konieczne wymaganie wzajemnej jednoznaczności, wystarczy do mapowania genów do przestrzeni rozwiązania na (Słoniowanie).

Algorytm harmonogramów rysowania

Opisuję tylko geny siebie, algorytm do budowy ich na nich, przejazdu i mutacji.

Jako harmonogram doświadczonego dyspozytora. Słowo doświadczone oznacza, że \u200b\u200bdyspozytor był już / i harmonogram już mówi i zna jego wąskie gardła. Na przykład niedobór dużych strumieniowych publiczności lub klas komputerowych. Pierwszy kurs, ponieważ mają wiele wykładów strumieniowych, a jednocześnie klasy w podgrupach na klasach komputerowych, angielski / angielski od podstaw / niemieckiego / francuskiego itp., A bossowie wymagają tego, aby pierwszy kurs nie ma okien nie ma okien W każdym przypadku. I nie więcej niż dwa wykłady w ciągu dnia i dni były równomiernie załadowane. Dlatego doświadczony dyspozytor stawia pierwsze "wąskie zajęcia", zajęcia szefów na ich zapotrzebowaniu i klasach szczególnie denerwujących nauczycieli. Następnie używając ułożonych klas jako szkielet, szybko wypełnienie harmonogramu. Spróbujmy naśladować, w pewnym sensie ten proces.

Część zajęć jest już w harmonogramie, który pozostaje konsekwentnie. Tablica numerów okupacyjnych zostanie uznana za genomem, chociaż zasadniczo jedynie nakaz zajęć jest tutaj ważne. Aby zbudować harmonogram, konsekwentnie usuniemy liczbę klas i umieścimy wybraną lekcję w harmonogramie spełniającym niezbędne wymagania i maksymalizując funkcję docelową dla studentów, nauczycieli i publiczności (mają również kryteria pracy).
Jeśli niezbędne wymagania nie spełniają, jednostka z taką genomem można odrzucić jako niewiążą. Jeśli harmonogram nie działa, możesz zastąpić niezbędne wymagania z dokładnością w funkcji docelowej.

Przekracie można zorganizować na kilka sposobów. Na przykład jeden z nich. Niech mamy następujące geny

3 1 2 5 6 4 7
2 3 5 7 1 4 6

Oto jasne jest, że zawód 3 znajduje się w obu genach, aby ustawić 2 włącznie, a na przykład z pozycji 2, aby ustawić 5 interwał dla 1 klas. Zrobimy następujący tablet

_ * * * * _ _ dla 1 klas
* * * _ _ _ _ dla 2 klasy
* * _ _ _ _ _ dla 3 klas
_ _ _ _ _ * _ dla 4 klas
_ _ * * _ _ _ dla 5 klas
_ _ _ _ * * * dla 6 klas
_ _ _ * * * * dla 7 klas

tutaj gwiazdki oznaczały możliwe pozycje dla wyglądu potomka. Możesz wybrać jeden lub więcej możliwe rozwiązania jako potomek lub potomkowie tych rodziców. Decyzja o wyborze genów potomnych jest zawsze, na przykład obie rodzice same go zadowolili. Przepisz tabelę przez wiele możliwych pozycji

1 pozycja (2, 3)
2 Pozycja (1, 2, 3)
3 Pozycja (1, 2, 5)
4 Pozycja (1, 5, 7)
5 pozycji (1, 6, 7)
6 pozycji (4, 6, 7)
7 pozycji (6, 7)

Aby zbudować rozwiązania, możesz użyć następującego algorytmu. Najpierw umieścimy liczbę zajęć, które są mniej prawdopodobne. Jeśli sortują je rosnące, będziemy mieli
1 czas 4.
2 razy 3, 5
3 razy 2, 6
4 razy 1, 7
W konsekwencji, najpierw umieścić 4 lekcje na 6 pozycji, a następnie 3 lub 5 na miejscu (1, 2) lub (3, 4), odpowiednio. Na każdym kroku możesz rzucać pola meczów. W rezultacie możesz uzyskać następujące kroki do przekraczania algorytmu

* * * * * 4 *
3 * * * * 4 *
3 * * 5 * 4 *
3 * * 5 * 4 6
3 * 2 5 * 4 6
3 * 2 5 7 4 6
3 1 2 5 7 4 6

Ponieważ możliwe jest zbudowanie prawidłowej sekwencji, lepiej zorganizować algorytm w formie prostej rekurencji, aby powtórzyć algorytm, tj. Organizacje jakiegoś otworu.

Mutacji można zorganizować wystarczająco prostą, losową permutację numerów okupacji.

Wniosek

Jest to kontynuacja, w pewnym sensie, mój program do opracowania harmonogramu zajęć na Uniwersytecie i obliczanie obciążenia Departamentu.

Ponownie zasugeruj następujące rozwiązanie (szkic).

  • GUI na Pyqt lub pyside
  • POSGRESQL DBMS (jestem gotowy na około 80% tutaj), ponadto istnieją nadal aplikacje i mnóstwo nauczycieli, programów nauczania i wiele więcej (w tym celu publikuj jeden lub więcej tematów)
  • interfejs internetowy na Cherrypy + Cheetah (ale można go omówić)
  • eksport wszystkich raportów (harmonogramy, karty nauczania itp.) W formacie OPENDOCUMENT (GOST R ISO / IEC 26300-2010. Standard stanu Rosji (01.06.2011)) Via Odfpy
  • harmonogram kompilowania algorytmów ode mnie (ten temat jest o tym)
  • inscenizacja ode mnie
  • zainteresowane prace nad wspólnym rdzeniem
  • dla zainteresowanego adaptacji na podstawie własnego uniwersytetu i możliwość zmiany wszystkiego elastycznie, życie idzie, a urzędnicy nie są akademiku

Dzięki wszystkim, którzy odpowiedzieli, po omówieniu tego tematu, możliwe będzie zorganizowanie.

Lekcja harmonogram reguluje rytm życia szkoły, pracy i wypoczynku uczniów i nauczycieli.
Skuteczność całego procesu edukacyjnego zależy od jakości.

Dopuszczalność lekcji i harmonogramu szkoły

Szkolny program nauczania musi być zgodny z funkcjonalnymi możliwościami studentów. Objętość, treść i organizacja proces edukacyjny Musi zapewnić taki stan ciała, w którym zmęczenie całkowicie zniknie na okres odpoczynku.

Główne kryteria oceny lekcji pod względem funkcjonalności studentów - trudności i zmęczony. Tedisality charakteryzuje się zmianą wydajności i trudności tematu - poziom nauki, czyli stopień asymilacji materiał edukacyjny. Dlatego podczas sporządzania harmonogramu konieczne jest uwzględnienie obu czynników w równym stopniu.

W aspekcie prawnym problem utworzenia harmonogramu szkolnego znalazło odzwierciedlenie w nowych wymogach higienicznych w celu przygotowania harmonogramu, które opierają się na danych nowoczesnych badań naukowych biorimologii wydajności psychicznej i trudności tabeli przedmiotów Ig . Sivkova. Jednak dla zastępcy dyrektora szkoły, który jest harmonogramem, ważne jest, aby nie tylko wiedzieć, jak trudno jest zapewnić siłę męczących lekcji na określony temat na statusie zdrowia. Niestety, stół trudność I.g. Sivkova nie uwzględnia takiego składnika uczenia się, jak zabarwienie obiektów, które dotyka przede wszystkim zdrowie ucznia.

Nowoczesne badania dają ideę uzależnienia z powodu Niski przedmiotu z trudności, chociaż w niektórych badanych wskaźniki różnią się znacząco. Te pomysły umożliwiają łączenie dwóch wskaźników w jednym - dopuszczalność tematu. Dlatego stół I.g. Sivkova można zaoferować alternatywę - skalę dopuszczalności obiektów, która uwzględniłaby składniki trudności i zabójstwa szkolenia, a także cechy każdego instytucja edukacyjna i program nauczania każdej klasy.

Skala akceptowalności składa się z kolumny "pozycjach rangi", gdzie składane są przedmioty, których szeregi zostały uzyskane przez wyniki rozpoznawania ich trudności i nowotworu metodą oceny ekspertów - Ich algorytm jest reprezentowany w dodatku 1. Przez jego strukturę, proponowaną skalę stałą i zgodnie z treścią zmiennej (patrz tabela 1).

Tabela 1

Akceptacja skali próbki

Jak widać z tabeli 1, skala składa się z pięciu grup trudności. Każda grupa ma oszacowanie w punktach - jest to stały składnik skali, a nie podlegać żadnym zmianom. Zawartość (tj. Zestaw elementów) każdej grupy może się różnić w zależności od wyników diagnozy. Jest to wariatyczna część skali.

W szkole średniej nr 618 St. Petersburg otrzymaliśmy następującą skalę dopuszczalności obiektów (patrz Tabela 2).

Tabela 2

Skala akceptowalności obiektów.

Algorytm do rysowania harmonogramu

Ponieważ w każdej instytucji edukacyjnej dopuszczalność obiektów będzie ich własny, czytelnicy nie powinni być kopiowani do skali jednej do jednej. Wskazane jest zdiagnozowanie stopnia trudności i zabarwienia przedmiotów w szkole według ekspertów.

Ponadto podczas sporządzania harmonogramu ma sens, aby prowadzić stół rankingowy poziomu zdolności roboczych studentów w różnych klasach w różnych lekcjach podczas tygodnia szkolnego (patrz załącznik 2).

Stworzyliśmy algorytm do przygotowywania fizjologicznie rozsądnego harmonogramu, który uwzględnia faktycznie spełnione wymagania higieny. Algorytm ten można wykorzystać do skompilowania harmonogramu szkolenia zarówno w szkole z dużą liczbą zajęć drugiego i trzeciego etapów oraz w stosunkowo małej instytucji edukacyjnej. Algorytm jest przeznaczony dla specjalistów, którzy tworzą harmonogram bez użycia program komputerowy.

Podczas korzystania z zautomatyzowanych programów wskazane jest wykonanie wyrównania elementów przy użyciu automatycznego programu etapów opartych na proponowanym algorytmie. Jak pokazuje programy praktyczne, programy te mogą być używane jako narzędzie pomocnicze dla:

  • początkowe układ obiektów z kolejnym wykańczaniem ręcznego;
  • zapisywanie informacji i wyjść do drukowania.

Po zautomatyzowanej dystrybucji obiektów (program, z reguły, miejsca od 40 do 70%), należy wziąć pod uwagę wymagania higieny w zakresie harmonogramu lekcji jest prawie niemożliwe, ponieważ konieczne jest nie tylko dostarczenie pozostałych nieugiętych przedmiotów, ale także Aby znacznie się zmienić (do 60%) zautomatyzowane wyrównanie elementów na zasadzie "Jeśli planujesz".

Dlatego przy użyciu programu komputerowego do kompilowania racjonalnego harmonogramu, biorąc pod uwagę rzeczywiste wykonalne wymagania higieniczne i pedagogiczne, specyfika instytucji edukacyjnej należy wyrównać do wykonywania etapów za pomocą algorytmu zaproponowanego powyżej. Jednocześnie każdy etap układu grupy obiektów powinien zakończyć ręczne wykończenie z orientacją na powyższych wymaganiach. Pozwoli to bardziej racjonalnie dokonać harmonogramu i, jeśli to możliwe, wziąć pod uwagę wszystkie niezbędne warunki.

Procedura zmiany harmonogramu

Algorytm regulacji harmonogramu szkoły

W razie potrzeby zmień harmonogram w roku szkolnym, który występuje dość często, musisz pracować z układem tabeli. Aby zmienić harmonogram, konieczne jest wykonanie następujących obliczeń i permutacji.

Proponowana metoda sporządzania harmonogramu wymaga czasu nie więcej niż zwykle, ale pozwala dokonać harmonogramu kompetentnie, tj.:

  • dokonać własnej skali dopuszczalności obiektów (trudności i zmęczonego), aby skompilować bardziej racjonalny harmonogram szkolny;
  • zachować w dziedzinie widzenia zastępcy dyrektora szkoły wystarczająco dużą liczbę niezbędnych informacji;
  • równomiernie rozpowszechniaj lekcje na każdy dzień (unikaj niepotrzebnej liczby lekcji siódmej);
  • umieść wszystkie zajęcia z pierwszej lekcji, co pozwala na zapewnienie szkolenia w jednym rytmie, ponieważ każdego dnia studenci rozpoczną dzień szkolny w tym samym czasie;
  • regulować stopień złożoności szkoły, w zależności od dynamiki tygodniowej wydajności uczniów;
  • wyrazić lekcje niemal "okna" albo z minimalną ilością ich, co pozwala utrzymać rytm pracy nauczyciela i stworzyć korzystny tryb pracy;
  • racjonalnie alternatywne obiekty o różnych ostrościach;
  • racjonalnie układać niezbędne podwójne lekcje;
  • szybko zmień i dostosuj harmonogram z powodu konieczności produkcji.

Ponadto, dzięki tej metodzie nie wymaga znacznej liczby pustych papieru (dodatkowe tabele, zwłaszcza jeśli w szkole wiele klas drugich i trzecich kroków (od 30 lub więcej).

W celu przygotowania wysokiej jakości harmonogramu, który odpowiadałby możliwości konkretnej instytucji edukacyjnej, konieczne jest przeprowadzenie własnej diagnozy stopnia trudności i towiwisty obiektów w każdym równoległym. Eksperci w tym przypadku powinni być studentom, ponieważ nikt nie może powiedzieć, jaki przedmiot jest trudny i nudny.

Kryteria higienicznej oceny harmonogramu szkoły

1. Liczba zajęć szkoła Podstawowa – ______.

2. Liczba klas podstawowych i średnich - ___________.

3. Całkowite klasy używane do prowadzenia lekcji - ___________.

4. Obecność skali akceptowalności dla jego instytucji edukacyjnej:

5. Rachunkowość skali zakwaterowania obiektów w harmonogramie szkolnym:

6. Dystrybucja lekcji dziennie dla studentów:

7. Wszystkie zajęcia zaczynają studiować z pierwszej lekcji:

8. Racjonalna alteracja obiektów różnych ostrości i złożoności:

9. Zgodność z księgowością wydajności studenckiej (w cotygodniowej dynamiki):

10. Racjonalne wyrównanie lekcji dla nauczycieli:

11. Maksymalna liczba lekcji od nauczycieli dziennie:

a) Do 4 lekcji - nauczyciele ____ - ______ (%);

b) 5 i 6 lekcji - ____ nauczyciele - _____ (%);

c) 7 lekcji i więcej - w nauczycielach ____ - ___ (%).

12. Dostępny dzień metodyczny (określ liczbę nauczycieli):

a) z obciążeniem do 24 godzin w tygodniu nauczyciele;

b) z obciążeniem od 25 do 30 godzin tygodniowo - na nauczycielach ___;

c) z obciążeniem przez ponad 30 godzin tygodniowo - na nauczycielach ___.

  1. Przygotuj zestawy z nazwami elementów z 5 do 11 klasy.
  2. Uczniowie dystrybuują zestawy kart z nazwami obiektów i liści dla odpowiedzi.
  3. Zaproponuj wybrane karty z nazwami tych przedmiotów, które są badane w tej klasie (przez dziennik).
  4. Wyjaśnić koncepcję obiektów "trudności".
  5. Zaproponuj niezależnie określić trudność każdego przedmiotu według rankingu, tj. Składanie kart w kolejności zstępującego trudności z tematem (karty są zdeponowane od góry do dołu, tj. W pierwszej kolejności z góry - karta z najtrudniejszym obiektem jest mniej trudna itp.).
  6. Powstałe wyrównanie elementów do nagrywania na arkuszu odpowiedzi.
  7. Po tym, demontować i wyjaśnić koncepcję "zabarwienia" obiektów.
  8. Wykonaj podobną procedurę rankingu i napisz wynikowy wyrównanie arkusza odpowiedzi.
  9. Arkusze z odpowiedziami do zbierania i procesu (patrz formularz skonsolidowanej tabeli poniżej).

- Gdzie: MK - wynik środkowy na temat jednej klasy;

n - liczba klas w badanej równolegle;

lub według wzoru:

- gdzie: MK - ilość punktów na temat jednej klasy;

n - liczba studentów w jednym równoległym uczestniczeniu w badaniu.

Na przykład w paralletach 7. klasa istnieje pięć klas, 130 osób uczestniczyła w diagnozie. Ilość punktów w języku rosyjskim w parallelach wynosiła 469. Zastępujemy w formule liczby:

Por. b. PR \u003d (469/130) \u003d 3,61 - Średni wynik w języku rosyjskim w paralletach 7. klas wynosił 3,61, dzieci postrzegają ten obiekt tak trudne.

W ten sam sposób obliczany jest oddzielnie średni wynik każdego tematu w tedywacji.

Następnie istnieje średni punkt dopuszczalności dla każdego tematu. W tym celu istnieją dwa wskaźniki: średni wynik trudności i średniego wyniku zabarwienia, a następnie wynik jest podzielony na 2. W ten sposób okazuje się średnie punkty dopuszczalności przedmiotu.

Na podstawie uzyskanych danych sporządzono indywidualny stół dopuszczalności przedmiotów określonej instytucji edukacyjnej dla każdej równoległej.

Formularz tabeli podsumowania do przetwarzania odpowiedzi

Załącznik 2.

Zegary badanie zakresu w ciągu tygodnia
W zależności od poziomu zdolności roboczej uczniów w różnych klasach

1 - najkorzystniejsze godziny; 10 - najbardziej niekorzystny.

6-7 - Zmniejszony poziom wydajności (małe zegary do prowadzenia lekcji).

8-10 - Niska wydajność (niepożądane godziny do prowadzenia lekcji).

Tygodniowy tabela dystrybucji obciążenia nauczyciela

Dodatek 3.

Harmonogram lekcji Technologia Układu stołowego

Aby wykonać układ, musisz gotować:

  • 4 miot kartonu (grubość 1-2 mm, wysokość - 42 cm, szerokość - 22 cm; wysokość wierszy wynosi 0,8 cm, szerokość kolumny wynosi 1 cm) *;
  • 4 arkusze kolorowego papieru (lepsze lekkie odcienie) gęstość 200 g / cm i rozmiary podobne do rozmiaru kartonów kartonowych;
  • szeroka przezroczysta szkocka;
  • szafka (Boomwinyl), aby przykleić karton do folderu (wstążki o szerokości 4-5 cm; 49-50 cm);
  • klej PVA (wystarczająco silny, wpisz "silak").

Układ wykonania algorytmu

1. Przykleić arkusze kartonu w "Clamshell":

2. Na jednym arkuszu papieru, umieść wszystkie niezbędne informacje do przygotowania harmonogramu (umieszczanie na arkuszu kartonu nr 1); Przykład: tabela na. 27.

3. W kolejnych dwóch arkuszach kolorowych papieru wyciągają siatkę, przez trzy dni na każdym arkuszu, 7 komórek na każdy dzień (umieścić na 2 i trzeci arkusz kartonowych).

4. W czwartym arkuszu, aby narysować solidną siatkę bez podziału na dni (komórki - podobne rozmiary).

5. Zakończone rysowane arkusze są pokryte szkocką, dzięki czemu nie ma przerwy podczas cięć.

6. Wykonaj szczeliny w komórkach 0,5-0,6 cm.

7. Przygotuj arkusze papierowe na bocznych częściach kartonowych kartonowych na gotowej "Clamshell". Makieta jest gotowa.

8. Oddzielnie wykonaj wielokolorowe znaczniki z literacką klasową (5. "A", 7. "g", itd.) Kwota opiera się na obciążeniu 5- lub 6 dni tygodnia + dodatkowo do lekcji, w których zajęcia są podzielone podgrupy. Rozmiar znacznika: szerokość - 8 mm; Wysokość - 15 mm.

9. Przygotuj znaczniki dowolnego koloru bez klasy literatora, aby obliczyć cotygodniowe obciążenie dla każdego nauczyciela. Wymiary: szerokość 5 mm; Wysokość 12-14 mm.

Ten układ jest wygodny, ponieważ wszystkie niezbędne informacje są zawsze przed oczami zastępcy dyrektora. Może być złożony do folderu, co ułatwia noszenie. Jednocześnie znaczniki odbędą się w szczelinach.

Informacje wymagane do harmonogramu

___________ * Wymiary arkuszy kartonowych są indywidualne, ponieważ W każdej szkole inna liczba nauczycieli, inny sposób działania (5- i 6-dniowy tydzień szkolny). Oferujemy rozmiary do harmonogramu opartego na 6-dniowym tygodniu szkolnym i szkole, w którym pracują 50-55 nauczycieli.

To, co tu czytasz, jest głównie bzdury. Niemniej jednak w niektórych miejscach, moim zdaniem, istnieją rozsądne myśli, niestety takie fotele się nie zdarzyły się tak bardzo i nie myślą, że ich tam wziąć, gdzie problemy teorii harmonogramów są zaangażowane poważnie. Ci, którzy chcą pisać coś lepszego, zdecydowanie polecam czytać książkę HU. T. "Programowanie całkowitalne i wątki w sieciach", ponadto, prawdopodobnie warto przeczytać wykłady NMIC na teorii optymalizacji N.M. Novikova (gdzie jest w Internecie, nie pamiętam). Teraz aktywnie zaangażowany w problemy teorii optymalizacji, aby ktoś był również zainteresowany tym tematem, zawsze jest szczęśliwy w komunikacie. pisać [Chroniony e-mail]

Wprowadzenie osiem

1. Opis regionu technologicznego. 10.

1.1. Brzmienie zadania sporządzania harmonogramu. 10.

1.1.1. Ogólny formułowanie zadania opracowywania harmonogramów. 10.

1.1.2. Sformułowanie zadania przyciągania rapowania w aplikacji do harmonogramu sesji szkoleniowych. jedenaście

1.2. Analiza istniejących .. 12

1.3. Sformułowanie problemu. piętnaście

2. Opracowanie modelu matematycznego i praktycznego wdrożenia systemu automatycznego planowania. szesnaście

2.1. Matematyczny model harmonogramu w szkole średniej. szesnaście

2.1.1. Oznaczenia. szesnaście

2.1.2. Zmienne. osiemnaście

2.1.3. Ograniczenia. dziewiętnaście

2.1.4. Cecha docelowa. 21.

2.2. Metody rozwiązania zadania. 22.

2.2.1. W pełni algorytm całkowitego. 23.

2.2.2 Direct Algorytm do programowania całkowitego. 28.

2.2.3. Technika uzyskania początkowej możliwości dopuszczalnej. 32.

2.3. funkcje praktyczna realizacja Systemy .. 36.

2.3.1. Wybierz model. 36.

2.3.2. Opis informacji wejściowych. 39.

2.3.3. Opracowanie wsparcia informacyjnego. 41.

2.3.4. Cechy tworzenia ograniczeń matematycznego modelu zadania sporządzania harmonogramu. 44.

2.4. Wyniki programu .. 45

2.5. Analiza uzyskanych wyników. 49.

Wnioski .. 50.

Literatura. 51.

Dodatek 1. Możliwości produkty oprogramowania systemów planowania. 52.

Dodatek 2. Wykazanie modułu programu do rozwiązania zadania automatycznego konstrukcji harmonogramu. 61.

Wprowadzenie

Jakość specjalistów szkoleniowych na uniwersytetach, a zwłaszcza efektywność wykorzystania potencjału naukowego i pedagogicznego zależy od pewnego stopnia na poziomie organizacji procesu edukacyjnego.

Jednym z głównych składników tego procesu jest harmonogram zajęć - reguluje rytm pracy, wpływa na kreatywny zwrot nauczycieli, dzięki czemu można go postrzegać jako czynnik optymalizujący stosowanie ograniczonych zasobów pracy - personelu nauczania. Technologia rozwoju harmonogramu należy podjąć nie tylko jako pracochłonny proces techniczny, obiekt mechanizacji i automatyzacji przy użyciu komputera, ale także jako działanie optymalnej kontroli. Tak więc jest problem opracowywania optymalnych harmonogramów szkoleniowych na uniwersytetach z oczywistym efektem ekonomicznym. Ponieważ interesy uczestników procesu edukacyjnego są zróżnicowane, zadanie sporządzania harmonogramu jest wielokrotny.

Zadanie sporządzania harmonogramu nie powinien być uważany tylko za pewny program, który realizuje funkcję mechanicznej dystrybucji klas na początku semestru, na którym jego (programy) stosuje się i kończy. Efekt ekonomiczny bardziej efektywnego wykorzystania zasobów pracy można osiągnąć dopiero w wyniku żmudnych prac nad zarządzaniem tych zasobów pracy. Harmonogram ma tutaj tylko narzędzie do takiego zarządzania, a dla najbardziej kompletnego użycia jest konieczne, aby program łączy nie tylko środki do skompilowania optymalnego harmonogramu, ale także narzędzi do utrzymania optymalności w przypadku zmiany niektórych wejść Dane, które w momencie harmonogramu są uważane za trwałe. Ponadto optymalne zarządzanie takim złożonym systemem jest niemożliwe bez gromadzenia niektórych informacji statystycznych na temat procesów występujących w systemie. Dlatego zadaniem opracowywania optymalnego harmonogramu jest tylko częścią złożonego systemu zarządzania procesami uczenia się.

Wielokrotne kryteria tego zadania i złożoność obiektu, dla którego model matematycznyOkreśla potrzebę poważnych badań matematycznych obiektu, aby zwiększyć funkcjonalność harmonogramu algorytmów kompilacyjnych bez znacznego powikłań modelu, a w rezultacie zwiększenie ilości używanej pamięci i czasu, aby rozwiązać problem.


1. Opis regionu technologicznego 1.1. Sformułowanie zadania sporządzania

Zadanie teorii harmonogramów w ogólnym formularzu jest uważany za bardzo atrakcyjny, chociaż osiągnięcie nawet małego postępu w kierunku roztworu jest z reguły, z ogromnymi trudnościami. Pomimo faktu, że wielu bardzo wykwalifikowanych specjalistów zaangażowało się w zadania teorii harmonogramów, do tej pory nikt nie udało się uzyskać żadnych istotnych wyników. Nieudane próby uzyskania takich wyników, z reguły nie są publikowane, a to częściowo określa fakt, że zadanie nadal przyciąga uwagę wielu badaczy poszukujących prostoty produkcji.

1.1.1. Ogólny formułowanie problemu kompilacji

W najbardziej ogólnym formularzu zadanie sporządzania harmonogramu jest następujące. Dzięki pewnym zestawie zasobów lub urządzeń serwisowych należy wykonać niektóre stałe system zadania. Celem jest zapewnienie, aby właściwości zadań i zasobów oraz ograniczenia nałożone na nich znajdują skuteczny algorytm do organizowania zadań, które optymalizują lub dążą do optymalizacji pożądanej miary wydajności. Jako główne środki wydajności, długość harmonogramu jest badana i średni czas pobytu zadań w systemie. Modele tych zadań są deterministyczne pod względem faktu, że wszystkie informacje na podstawie tych decyzji dotyczących zamawiania są znane z góry.

1.1.2. Sformułowanie zadania przyciągania rapowania w aplikacji do harmonogramu sesji szkoleniowych.

Ogólna teoria harmonogramów zakłada, że \u200b\u200bwszystkie urządzenia serwujące (lub procesory) nie mogą być wykonywane w ten moment Czas więcej niż jednym zadaniem jest to, że w przypadku harmonogramu sesji szkoleniowych nie jest wystarczający, jeśli jako procesor podczas dystrybucji zadań przyjęcia publiczności edukacyjnej. Tak więc w niektórych przypadkach w jednej publiczności może być lekcje z więcej niż jedną grupą w tym samym czasie, na przykład, ogólne wykłady dla wielu wątków.

Dlatego, przenosząc ogólną teorię harmonogramów, aby zaplanować sesje szkoleniowe, wykonano następujące założenia:

Wszystkie procesory (tj. W przypadku harmonogramu treningu - publiczności) mają pojemność - numer C ≥ 1. Pojemność procesora określa liczbę zadań, które może jednocześnie "procesem" w momencie (w odniesieniu do Niedrogi procesorów byłoby interesujące rozważenie opcji, gdy publiczność nie jest jako procesor, ale nauczyciel, ale jako zadanie - strumień z jednej lub więcej grup edukacyjnych, z którymi działa);

Jako zestaw zadań w zakresie dystrybucji działają działania szkoleniowe nauczyciela z grupami szkoleniowymi;

Model czasu w systemie jest dyskretny; Uważa się, że wszystkie dystrybucje okresowo powtarzane w przedziale czasu;

Wszystkie zadania są wykonywane na tym samym czasie, który jest przyjęty na jednostkę próbkowania przedziału czasu;

Zadania należały do \u200b\u200bobiektów, które są akceptowane przez grupy szkoleniowe i nauczycieli.

W rezultacie brzmienie zadania sporządzania harmonogramu sesji szkoleniowych brzmi następująco: "Dla danego zestawu audytorów edukacyjnych (w tym przypadku, w ramach publiczności edukacyjnych, odbywa się szeroki wybór pomieszczeń, w którym szkolenie Sesje odbywają się (od publiczności komputerowej do hali sportowej)) i dany zestaw przedziałów czasowych (tj. W istocie, lekcji lub parach szkoleniowych), budować taką dystrybucję sesji szkoleniowych dla wszystkich obiektów (nauczyciele i grupy szkoleniowe) które wybrane kryterium optymalności jest najlepsze. "

1.2. Analiza istniejącego pa

W tej chwili sektor rynku projektowania harmonogramu zajęć jest reprezentowany przez dużą liczbę różnych produktów oprogramowania. W tabeli 1. Prezentowane są tylko niektóre znane ze mnie.

Ze względu na obiektywne przyczyny system opracowywania zabezpieczenia na Uniwersytecie (co oznacza duży Uniwersytet Państwowy) musi wdrożyć szereg podstawowych funkcji:

Księgowość na życzenia nauczycieli;

Konsolidacja obowiązkowych publiczności;

Wskazanie pożądanych publiczności;

Rachunkowość przejścia między korpusem;

Łącząc grupy w przepływach na dowolną całość dyscyplin;

Podział na podgrupy;

Po sporządzaniu harmonogramu, jeśli to konieczne, wymień nauczycieli lub zmienić czas zajęć.

Ponadto istnieją również specyficzne wymagania dotyczące funkcjonalnych możliwości produktu oprogramowania dla każdego uniwersytetu.

Możliwości moim zdaniem Najpopularniejsze produkty rosyjskie oprogramowanie są podane w Załączniku 1.

Z listy listy być może tylko program metodystyczny mniej lub bardziej zgodny z wymaganą funkcjonalnością harmonogramu przygotowania harmonogramu na Uniwersytecie. Ten stan rzeczy jest łatwo wyjaśniony przez fakt, że szkolna edukacja jest dziś bardziej znormalizowana "(w sensie organizacji procesu edukacyjnego) niż uniwersytet. Taka standaryzacja prowadzi do dużej ilości potencjalnego rynku sprzedaży oprogramowania i zwrotu w rozwoju, sprzedając dużą liczbę kopii produktu w stosunkowo niskiej cenie.

W przypadku uniwersytetów popyt na systemy planowania jest być może nawet więcej niż dla szkół, ale sprawa jest skomplikowana przez wielkie specyfika organizacji procesu edukacyjnego na każdym indywidualnym uniwersytecie. Utwórz jednolite oprogramowanie nie jest możliwe, a koszt stworzenia specjalistycznego produktu w deweloperach osób trzecich jest nierozsądnie duży. Ponadto warunkiem wstępnym jest obecność "ustalonego" harmonogramu, który oznacza zdolność zastąpienia nauczycieli lub czasu zajęć. Do tej pory nie ma na tyle produkt oprogramowania, aby to zrobić (chociaż niektóre możliwości znajdują się w "Metodystów").

1.3. Sformułowanie problemu.

Celem tej pracy było stworzenie matematycznego modelu harmonogramu na uniwersytecie, co pozwoliłoby skutecznie (w danym czasie i danym stopniu optymalności), aby rozwiązać zadanie automatycznego planowania i miałoby elastyczność (drobne zmiany Przypadek zmian informacji wejściowych) Aby dostosować system w określonym zadaniu praktycznym. Aby uzyskać pewne uproszczenie zadania przy początkowej konstrukcji, wykonano pewne założenia:

Harmonogram składa się z prędkością nie więcej niż dwie pary dziennie (co jest dość odpowiednie w przypadku wieczornego formularza uczenia się);

Wszystkie pary są utrzymywane w jednym przypadku;

Zadanie jest umieszczane pod względem programowania liniowego;

Dalszy rozkład modelu nie jest produkowany;

Wszystkie współczynniki modelu i pożądane zmienne są zintegrowane;

Zadanie musi zostać rozwiązane przez jeden z uniwersalnych (niezależnych od wartości liczb całkowitych współczynników) metody programowania liniowego całkowitego.


2. Rozwój modelu matematycznego i praktycznego wdrożenia systemu kompilacji harmonogramu automatycznego 2.1. Matematyczny model harmonogramu w szkole średniej

Budujemy matematyczny model harmonogramu na Uniwersytecie pod względem programowania liniowego. Wprowadzamy notację i definiujemy zmienne i ograniczenia.

2.1.1. Oznaczenia

Uniwersytet ma grupy treningowe w połączeniu z przepływami R; R oznacza numer przepływu, R \u003d 1, ..., R, K R - Liczba grupy badanej w strumieniu R, K R \u003d 1, ..., g R.

Dzielenie się grupami na przepływach prowadzi się na podstawie zasad:

1. Zastosowanie dwóch grup tego samego badanego funduszu na ich wykłady automatycznie przyjmuje pomieszczenia z nich w 1 strumieniu (zakłada się, że wszystkie wykłady grup szkoleniowych są przechowywane razem).

2. Grupa (lub jej część), jako jednostka procesu edukacyjnego na uniwersytecie, może wprowadzić różne strumienie, ale tylko jeden raz każdy z nich.

3. Liczba wątków nie jest ograniczona.

Zajęcia odbywają się w dni robocze w odstępach półtonów, które będą nazywane parami.

Oznaczać:

t - Numer tygodnia tygodnia, T є T Kr, gdzie

T Kr - wiele liczb dni roboczych dla grupy K R;

j - numer par, j \u003d 1, ..., j;

J - całkowita liczba par.

Dzięki każdej grupie badanej K R R Przepływ R przez tydzień, zgodnie z programem nauczania, w klasach KR są przeprowadzane, z których są wykłady i q praktyczny. Oznaczać:

s R jest liczbą dyscypliny na liście klas wykładowych dla strumienia R, S R \u003d 1, ..., S R;

q kr - The Discipline Number In List Practical Training for the Group K R, Q Kr \u003d 1, ..., q.

Zakłada się, że wykłady są przeprowadzane we wszystkich grupach strumieniowych w tym samym czasie w jednej publiczności. Następnie, jeśli w jakiejś dyscyplinie, więcej niż jeden zawód jest przeprowadzany w ciągu tygodnia, ta dyscyplina jest wymieniona na liście wykładów lub klas praktycznych, ile dostarczane przez program nauczania dla każdego przepływu lub grupy.

Nauczyciele

Niech p będzie liczbą (nazwa) nauczyciela, p \u003d 1, ..., P. Wprowadzamy wartości do rozważenia i:

Zaległe obciążenie nauczycieli przed opracowaniem harmonogramu zajęć w wyniku tego na tym etapie ilości i można go uznać. Dla każdego nauczyciela p, p \u003d 1, ..., p, jego ładunek audytu jest również zadaniem - N P godzinami tygodniowo.

Fundusz Audytujący.

Każdy przepływ zajmuje może być przeprowadzane tylko w niektórych odbiorców (na przykład, praktyczne informacje nauk komputerowych można przeprowadzić tylko w gatunkach wyświetlanych). Zostawiać:

(A 1 R) - wielu odbiorców na wykłady na strumieniu R;

(A 2 R) - wielu odbiorców do praktycznego szkolenia na strumieniu R;

1 r jest liczbą elementów zestawu (A 1 R);

A 2 R jest liczbą elementów zestawu (A 2 R);

1 R + A 2 R jest liczbą wynikającą z wyniku zbiorów zestawów (A 1 R) ∩ (A 2 R).

Fundusz Audytu jest określony przed rozpoczęciem harmonogramu, więc zestaw można uznać za określony.

2.1.2. Zmienne

Zadaniem dokonania harmonogramu jest określenie każdego wykładu (na strumieniu) i zajęciach praktycznych (w grupie) dnia tygodnia i para w tym dniu, biorąc pod uwagę wdrażanie ograniczeń skonstruowanych poniżej i minimalizują Niektóre funkcje docelowe.

Wprowadzamy następujące żądane zmienne boolowskie:

=

W przypadku harmonogramu dla grupy wieczorowej uczenia się postaci j \u003d 2. Uogólnienie modelu dla wszystkich form uczenia się, patrz, s. 669.

2.1.3. Ograniczenia

Dla każdej grupy k R, wszystkie rodzaje badanych prac muszą być wykonane w ciągu tygodnia:

Każdy wykład s i praktyczne okupacja Q KR, odpowiednio, dla wszystkich strumieni R i wszystkie grupy k R, można przeprowadzić nie więcej niż raz na dowolnym dniu T:

Jeśli zmienne utrzymuje wszystkie rodzaje zajęć z czasem ich gospodarstwa i powiązania czas z nazwą nauczyciela.

W każdym dniu T i każdej parze J, P może prowadzić nie więcej niż jeden zawód na jednej dyscyplinie na jednym strumieniu lub w jednej grupie:

Wreszcie, każdego dnia, na każdej parze, liczba wykładów i sesji praktycznych nie powinna przekraczać badanego funduszu dostępnego na Uniwersytecie:

Ponadto należy spełnić wszystkie zestawy zestawów przecinających (A 1 R) i (A 2 R)

Reprezentowane relacje są wyczerpane bezwarunkowymi ograniczeniami, z którymi są zawsze brane pod uwagę, gdy harmonogram jest przygotowywany. Może jednak być szczególnymi warunkami, przede wszystkim prowadzenie pewnych rodzajów pracy na "górnym" lub na "niższym" tygodniu "(tj. Jedna godzina akademicka w tygodniu). Inne warunki specjalne nie są wykluczone, ale nie zostały uznane za uproszczenie modelu.

2.1.4. Funkcja docelowa

Aby w pełni zachować pracę naukową, edukacyjną, przygotuj się na zajęcia, nauczyciel uniwersytetu musi mieć czas wolny. Ten warunek jest niewystarczający, ale konieczny. Oczywiście, z czasem wolnym, nie powinien mieć "rozdartego" trybu, na przykład, są "okna" między klasami ze studentami, ale jeśli to możliwe, w całkowicie darmowych dniach roboczych. Jest to równoważne maksymalizacji obciążenia audytu w tych dniach, kiedy go mają (patrz (5)). Jednak w tym samym czasie roszczenia o wolny czas u nauczycieli są nierówne, ponieważ mają inny potencjał twórczy. Dlatego konieczne jest wprowadzenie współczynników wagowych, dzięki któremu należy wziąć pod uwagę odpowiedni status nauczyciela - jego stopnie naukowe i tytuł, stanowisko, zajęte stanowisko, działalność naukową i społeczną itp. W niektórych przypadkach na podstawie oceny ekspertów możliwe jest stosowanie indywidualnych współczynników wagowych, które uwzględniają inne czynniki.

Wybierz więc kryterium jakości do przygotowania harmonogramu zajęć w postaci maksymalizacji ważonej liczby dni wolnych od pracy audytu dla wszystkich nauczycieli, które, z zastrzeżeniem stałej długości tygodnia roboczego, jest równoważne maksimum całkowita zagęszczanie obciążenia audytu.

Rozważ wyraz wielkości obciążenia audytu na dzień t nauczyciela P:


gdzie m jest dowolną pozytywną dużą liczbą; - pożądana zmienna bulev.

Z (10) oznacza, że \u200b\u200bjeśli, a następnie \u003d 1, a jeśli, a następnie \u003d 0.

Biorąc pod uwagę powyższy sens, kryterium optymalizacji w dodatkowych ograniczeniach (10), a także wprowadzenie współczynników wagowych nauczyciela, otrzymujemy pożądane kryterium optymalizacji:


Wprowadzona funkcja docelowa nie jest jedyna możliwa. Wprowadzenie innych funkcji docelowych nie zmienia ograniczeń modelu matematycznego i metod rozwiązywania problemu, ale może znacząco wpływać na wyniki obliczeń.

2.2. Metody rozwiązania zadania

Zadaniem maksymalizacji funkcji liniowej docelowej w danym systemie ograniczeń jest zadaniem liniowego programowania liczb całkowitych Boolean, ponieważ wszystkie współczynniki restrykcyjne są przeznaczone z powodu dyskrecji danych źródłowych problemu; Ponadto pożądane zmienne modelu matematycznego mogą zająć tylko dwie wartości. W tej chwili istnieje kilka możliwych rozwiązań tego rodzaju zadania.

Metody uporządkowanej indeksacji i zmodyfikowanych znaków opartych na rozkładzie Lagrangijskiej modelu oryginalnego są opisane na wielu zadaniach jednorazowych rozwiązanych zgodnie z metodami zamawiania indeksowania lub zmodyfikowanych znaków. Niestety, liczba operacji każdej metody nie pozwala na ocenę wielomianową; Ponadto wymiar tabeli zestawów (wartości pośrednie) metod wzrasta ostro, zwiększając wymiar problemu rozwiązanego problemu, co jest niedopuszczalne w naszym przypadku. Możliwe, że zmiana algorytmu rozkładu dla określonego modelu matematycznego zmniejszy wymiar tabel, ale do tej pory nie ma takiego algorytmu.

W tym względzie wybrano metody roztworu, opisane w modyfikacji metody Simplex w przypadku zadania programowania liniowego całkowitego. W ogólnym przypadku liczba operacji metody Simplex nie pozwala na oszacowanie wielomianowego (nawet klasa zadań, dla której liczba operacji jest o (en)), ale dla naszego zadania średnia liczba operacji umożliwia oszacowanie wielomianowe: O (N 3 m 1 / (N-1)) (N - liczba zmiennych; M jest liczbą ograniczeń).

2.2.1. W pełni algorytm całkowitego

Algorytm ten znajduje się całkowicie całkowitą, ponieważ jeśli tabela źródłowa składa się z elementów całkowitych, a następnie wszystkie tabele otrzymane podczas pracy algorytmu zawierają tylko elementy całkowitalne. Podobnie jak Dual Simplex metoda, algorytm zaczyna pracować z tabelą dwuwartościową. Jeśli I 0 (I \u003d 1, ..., N + M; A I 0 to współczynniki funkcji docelowych) - nieummowane liczby całkowite, a następnie zadanie jest rozwiązane. Jeśli na jakiś wiersz A I 0

Niech określono zadanie integera liniowego programowania:

wyolbrzymiać

na warunkach

Warunki (12) mogą być rejestrowane jako


Przypuśćmy, że dla t \u003d 0 (tj., Dla oryginalnego stołu), wszystkie IJ są liczbami całkowitymi i kolumnami (J \u003d 1, ..., n) - Leksykograficznie pozytywne. Następnie wszystkie kolumny nad obliczeniami pozostają leksykograficznie pozytywne.

Przed rozpoczęciem sposobu uzyskania dodatkowego ograniczenia z ciągiem ciągowego wprowadzamy nową reprezentację liczb. Niech [X] oznacza największą liczbę całkowitą, która nie przekracza x. Dla dowolnej liczby Y (pozytywne lub negatywne) i pozytywne można napisać:

gdzie (r y jest nieznaczne saldo przymocowanego yo). W szczególności, . Dlatego, jeśli, wówczas r \u003d 1. Jeśli, to r \u003d 0.

Załącznik należy przeprowadzić dodatkową nierówność na całym rozwiązaniu problemu (12). Rozważmy pewne równanie w Table (indeks linii obniżających) z 0


gdzie X jest odpowiednim elementem wektora, a obecne niewiążące zmienne. Możesz wyrazić X, A 0 i J za pomocą reprezentacji wprowadzonej powyżej (14):

Wyrażenia podejmowane (16) i (17) w (15) i wziąć pod uwagę członków, otrzymujemy:

Ponieważ, a na zmiennych X i wymóg nie negatywności, lewa część równania (18) jest zawsze nienagatacyjna. Rozważ wyrażenie po prawej stronie zawartej w nawiasach kręconych. Współczynniki tego ekspresji są liczbami całkowitymi, a zmienne podlegają wymogom liczby całkowitej. Dlatego wszystkie wyrażenia w nawiasach muszą być liczbami całkowitymi. Oznacz go przez s, tj.:

.

Niezwykła zmienna S jest nie ujemna. Rzeczywiście, jeśli s był negatywny, tj. Wartości wzrośnie -1, -2, ..., wtedy mnożenie tych uczyniłoby całe prawo równania (18) ujemne, podczas gdy lewa strona jest nienagientacyjna.

Rozważmy dwa przypadki i. Dla I . Zastępowanie wyrażenia dla X z (15) do równania (19), otrzymujemy:

Równanie (21) należy wykonać dla dowolnego rozwiązania całkowitego problemu (12). Zauważ, że jeśli a 0 w równaniu (21). Dlatego równanie (21) mogą być używane jako ciąg główny w metodzie SIMPLEX. W szczególności, zawsze możesz wybrać dość duży, aby wiodący element w linii (21) jest równy -1, który zachowuje tabelę całkowitą. Wybór odpowiedniego wpłynie na szybkość konwergencji algorytmu. Przede wszystkim opisujemy sam algorytm. W pierwszej kolejności konieczne jest podwójne dopuszczalne rozwiązanie, które można uzyskać przez dodanie limitu XN + M + 1 \u003d M - X 1 - - ... - XN 0, gdzie M jest wystarczająco dużą stałą, I przeprowadzanie jednej iteracji z dodatkową linią i z leksykograficznie minimalną kolumną wykonaną jako prowadzenie. Algorytm składa się z następujących kroków:

Krok 0. Rozpocznij z podwójną dopuszczalną matrycą A 0 w równaniu (13), których elementy są liczbami całkowitymi (matryca A 0 może zawierać elementy neuroble, aby zobaczyć, s. 306).

Krok 1. Wśród wierszy z I 0 0 (i \u003d 1, ..., N + M), a następnie zadanie zostanie rozwiązane.)

Krok 2. Wybierz (zasada wyborów zostanie opisana dalej) i napisz dodatkową linię na dole tabeli

Ta linia jest wybierana jako ołów.

Krok 3. Aby przytrzymać krok metody Dual Simplex, usuń dodatkową linię i powróć do kroku 1.

Dowód kończyny algorytmu patrz, str. 303-304.

Zasada wyborów jest formułowana w następujący sposób.

Krok 0. Niech wiersz z liczbą V.

Krok 1. Let - Leksykograficznie minimalna kolumna wśród kolumn z VJ

Krok 2. Dla każdego VJ - największy liczbę całkowitą, taką (leksykograficznie mniej).

Krok 3. Pozwolić i (wytwarzanie linii V). Następnie

.

Krok 4. Umieść VJ

Element opisany powyżej wyboru umożliwia wykonywanie elementu wiodącego równego -1, podczas gdy podwójna dopuszczalność tabeli jest zachowana i jednocześnie kolumna zerowa będzie tak bardzo, jak to możliwe, aby zmniejszyć.

2.2.2 Algorytm bezpośredniego dla programowania całkowitego

Termin "prosty" zastosowany do algorytmu programowania całkowitego oznacza sposób, który prowadzi do optymalnego rozwiązania, otrzymując kolejno "Ulepszone" rozwiązania. Każde z tych rozwiązań jest dopuszczalne w tym sensie, że spełnia zarówno ograniczenia liniowe, jak i stan liczby całkowitej. Jedną z prawdopodobnych zalet algorytmu jest zdolność do przerywania obliczeń, przed uzyskaniem optymalnego roztworu i wykorzystanie najlepszych rozwiązań uzyskanych jako przybliżone. Ponadto można użyć algorytmu bezpośredniego w związku z podwójnymi algorytmami, aby uzyskać różne algorytmy kompozytowe, które mogą przejść do fazy, która daje roztwory dążeniowe do fazy, która daje bezpośrednio dopuszczalne rozwiązania.

Naturalnym precedensem dla algorytmu bezpośredniego jest całkowicie całkowitym algorytm, ponieważ w procesie tego algorytmu otrzymuje się sekwencja podwójnych dopuszczalnych roztworów całkowitych. Należy przypomnieć, że w pełni liczby całkowitej homori jest modyfikacją metody Dual Simplex. Główną różnicą tego algorytmu jest to, że jako linia główna jest używana do cięcia homorie z elementem wiodącym równym -1. Ten klip jest uzyskiwany z ciągowego ciągu, który jest definiowany jako jeden z możliwych wierszy w metodzie podwójnej Simplex. Zastosowanie takie odcięcia jako linii wiodącej zaoszczędzi po ieracji podwójnej dopuszczalności i tabeli całkowitej.

Okazuje się, że możliwe jest zmodyfikowanie metody SIMPLEX, która ma być modyfikowana w taki sposób, aby uzyskać algorytm, który zachowuje bezpośrednią ważność i inteligencję tabel. Aby opisać procedurę obliczeniową, rozważ następujące zadanie programowania całkowitego:

wyolbrzymiać

Załóżmy, że kolumna jest wybrana jako Master i String V - linia główna w iteracji metody Simplex, tj. Dla wszystkich wierszy, w których A oznacza\u003e 0. Przed przeprowadzeniem procedury eliminacji Gaussa w metodzie Simplex dodaj uchwyt do tabeli, uzyskany z rzędu V:

gdzie J jest wieloma indeksami zmiennych innych niż Abase w (22), S K - nowej (podstawowej) słabej zmiennej i - nieokreślonej (tymczasowej) dodatnich stałej.

Zauważ, że jeśli umieścisz \u003d a vs, przycinanie (23) będzie miało dwie ważne właściwości. Po pierwsze,

Oznacza to, że bezpośrednia ważność tabeli zostanie zapisana, jeśli używasz klipsa (23) jako linii wiodącej. Po drugie, tj. Element napędowy jest 1 (jeśli klip jest używany jako linia wiodąca). Łatwo jest zweryfikować (studiując wzory do zmiany zmiennych podstawowych), że konwersja tabeli SIMPLEX z pojedynczym elementem napędu zapisuje elementy całkowitalne tabeli Simplex.

Te pomysły były podstawą algorytmu bezpośredniego w programowaniu całkowitym:

Krok 0. Zacznij od tabeli kolumn, w której I 0 0 (I 1) i wszystkie elementy A 0 J, IJ i I 0 są liczbami całkowitymi.

Krok 1. Sprawdź wykonanie warunków A 0 J0 (J 1); Jeśli zostaną zakończone, koniec, bieżące rozwiązanie podstawowe jest optymalne; Jeśli nie - przejdź do kroku 2.

Krok 2. Wybierz kolumnę prezentera S z 0 s 0. Ten ciąg służy do odcięcia homori.

Krok 3. Uzyskaj kawałek homorie z ciągnienia ciągów i dodaj go na dole tabeli, tj. Dodaj do ograniczeń równania problemu (23), gdzie.

Krok 4. Przeprowadź konwersję tabeli za pomocą klipsa (23) jako ciąg główny. Słabsza zmienna S K w (23) stanie się nie odłączony. Powrót do kroku 1.

Dowód kończyny algorytmu patrz, str. 346-353.

Ponieważ wybór ciągowego ciągu jest zadaniem nietriviale, najwyraźniej, musi być kilka linii, które mogą służyć jako produkcja. W wstępnych argumentach linia podglądu metody SIMPLEX była używana jako linia produkująca. Ta linia zawsze podaje klips, który jest wiodącym ciągiem z czołowym elementem równym jednym. Najwyraźniej istnieją inne linie w tabeli, z których można uzyskać odcięcia o tych samych właściwościach. Załóżmy, że cięcie uzyskuje się przy formule:

gdzie jest określony od stanu

Definiujemy zestaw V (s) jako zestaw rzędów spełniających stan (25).

Poniższe dwa zasady są przykładami dopuszczalnych reguł do wyboru ciągowego ciągu:

Zasada nr 1.

1. Zrób szeregową linową listę indeksów łańcuchowych, aby indeks każdego wiersza wprowadził go przynajmniej raz. Idź do 2.

2. Jeśli lista jest pusta lub nie zawiera pojedynczego indeksu z V (s), wróć do 1; W przeciwnym razie znajdź pierwszy indeks v v (s) na liście. Wybierz ciąg v jako produkcyjny. Wyświetl indeks V i wszystkie wcześniejsze indeksy. Idź do 3.

3. Sekwencyjnie wybierz ciąg V, wykonany w 2., jako wytwarzający, tak długo, jak V V (s). Jak tylko V V (s) wróć do 2.

Zasada 2.

1. Niech V T (s) Bądź ustawionym V (s) odpowiadającą tabeli T TH. Jeśli V T (s) zawiera więcej niż jeden element: VT (S) \u003d (V1, V2, ..., VK +2), a następnie wytwarzający, aby wybrać taki ciąg, który w zestawach zestawów V 1 (S 1), V2 (S 2), ..., V T (s) Sznurek pojawił się wcześniej (nie później) reszty, a następnie utrzymywał się do V t (s); Idź do 2.

2. Sekwencyjnie wybierz ciąg V, wykonany w 1., tak długo, jak. Raz, do 1.

2.2.3. Technika, aby uzyskać wstępną podstawę

Rozwiązanie każdej z powyższych metod może być wykonane tylko wtedy, gdy zadanie programowania liniowego jest bezpośrednio lub podwójnie dopuszczalne. Takie dopuszczalność oznacza obecność początkowej dopuszczalnej bazy w oryginalnym zadaniu. Jeśli zadanie jest dopuszczalne i bezpośrednio, i podwójnie, otrzymany roztwór jest optymalny. W większości przypadków, po ustawieniu zadania okazuje się, że nie jest dozwolone ani bezpośrednio lub podwójne. Dlatego dajemy algorytm do uzyskania początkowej dopuszczalnej podstawy.

Niech problem programowania liniowego jest zapisywane w formie kanonicznej:

zminimalizować

na warunkach

W razie potrzeby można zrobić wszystko B, mnożąc, jeśli to konieczne, odpowiednie równanie na -1. Następnie można go dodać do każdej równania sztucznej zmiennej (sztuczne zmienne powinny być nie-negatywne), aby początkowe zmienne tworzą wstępne podstawy:

Sztuczne zmienne można uzyskać ze słabych zmiennych używanych do konwersji nierówności w równaniu. Rzeczywiście, jeśli początkowe ograniczenia problemu programowania liniowego podano w formie nierówności:

Że dodając słabą zmienną do każdej nierówności, otrzymujemy:

Jeśli b I 0, to może być używany jako początkowe zmienne podstawowe.

Różnica między zmiennymi sztucznymi a słabym zmiennymi S i jest w następujący sposób. W optymalnym rozwiązaniu problemu wszystkie sztuczne zmienne powinny wynosić zero, ponieważ w oryginalnym zadaniu nie ma takich zmiennych. Z drugiej strony jest całkiem możliwe, że w optymalnym rozwiązaniu słabe zmienne będą miały dodatnie wartości. Aby sztuczne zmienne były równe zero, możesz przedstawić funkcję docelową w następujący sposób:

gdzie m jestem dość dużą pozytywną liczbą. Idea metody odpowiada faktu, że sztuczne zmienne są przymocowane do świadomie dużych cen. Ta metoda prowadzi do zerowych wartości sztucznych zmiennych w optymalnym rozwiązaniu.

Istnieje inny sposób, aby uzyskać wstępną dopuszczalną bazę. W tej metodzie, jak w pierwszych, sztuczne zmienne są używane jako początkowe zmienne podstawowe. Rozważana jest nowa funkcja docelowa, która jest ilością sztucznych zmiennych. Jest to wymagane, aby zminimalizować stosowanie równania z - równania jako jeden z ograniczeń. Jeśli początkowym system równań ma dopuszczalne rozwiązanie, wszystkie sztuczne zmienne powinny stać się zero. W związku z tym minimalna wartość powinna stać się zero. Jeśli początkowy system równań nie ma dopuszczalnych rozwiązań. Jeśli następnie możesz obniżyć funkcję docelową i użyć optymalnej formy podstawowej jako początkową dopuszczalną podstawę do minimalizacji Z. W literaturze taka metoda nazywana jest metodą dwufazową simplex. W pierwszej fazie sposobu jest dopuszczalna podstawa, minimalizując, na drugim - Z jest zminimalizowany i optymalna podstawa.

Rozważmy jako przykład następujący liniowy zadanie programowania:

zminimalizować

na warunkach

gdzie wszystko b i nie są negatywne.

Jeśli wprowadzisz sztuczne zmienne i nowa funkcja docelowa, otrzymamy zadanie:

zminimalizować

,

na warunkach

Jeśli odmówisz wszystkich równań zawierających b i, z -form, otrzymujemy:

-Z.

gdzie system (26) jest przekątna stosunkowo Pierwsza faza metody Simplex jest zminimalizowana w warunkach (26). Na znaku Z, ograniczenia nie są nałożone. W procesie obliczeń, gdy tylko sztuczna zmienna staje się niezbadana, a jego współczynnik do -form jest dodatni, sama zmienna i odpowiednia kolumna kolumny wektor z dalszych obliczeń jest wykluczona.

2.3. Cechy praktycznej realizacji systemu

W praktyce nie jest zbyt wygodne do pracy z informacjami w formularzu, w którym jest zdefiniowany w modelu matematycznym. Dlatego przede wszystkim definiujemy z metodą organizacji danych lub modelu danych.

2.3.1. Wybierz model.

Model danych jest zestawem umów dotyczących sposobów i środków sformalizowanego opisu obiektów i ich połączeń związanych z automatyzacją procesów systemowych. Rodzaj modelu i typów struktur danych stosowanych w nim odzwierciedlają koncepcję organizacji i przetwarzania danych wykorzystywanych w DBMS wspierający model lub w języku programowania, który tworzy program przetwarzania aplikacji.

W ramach rozwiązania zadania konieczne jest utworzenie takiego modelu danych, w którym ilość informacji wspierających byłaby minimalna, nastąpiła podstawowa możliwość dostępu do multiplayera do danych i byłaby zapewniona wysoki poziom Ochrona danych.

Obecnie istnieją trzy główne podejścia do formacji modelu danych: hierarchicznej, sieci i relacji.

Organizacja organizacji hierarchicznej

Hierarchiczna baza danych składa się z zamówionego zestawu drzew; Dokładniej, z zamówionego zestawu kilku wystąpień jednego rodzaju drewna. Rodzaj drewna składa się z jednego "roota" typu nagrywania i zamówionego ustawionego od zera lub więcej rodzajów wsparcia (każdy z nich jest jakiś rodzaj drewna). Rodzaj drewna jako całości jest hierarchicznie zorganizowanym zestawem typów nagrywania.

Automatycznie utrzymuje integralność odniesień między przodkami a potomkami. Główną zasadą: brak potomka nie może istnieć bez twojego rodzica. Należy pamiętać, że podobny do utrzymania integralności na linkach między rekordami nie jest obsługiwanych w jednej hierarchii nie jest obsługiwany.

Metoda sieciowa organizacji

Podejście sieciowe do organizacji danych jest rozszerzeniem hierarchicznego. W konstrukcjach hierarchicznych rekord potomny musi mieć dokładnie jeden przodek; W strukturze sieci danych potomek może mieć dowolną liczbę przodków.

Baza danych sieci składa się z zestawu rekordów i zestawu połączeń między tymi rekordami, a jeśli mówimy dokładniej, z zestawu wystąpień każdego typu z zestawu bazy danych typów nagrywania i zestaw instancji każdego typu z danego typu Zestaw typów komunikacji.

Rodzaj komunikacji jest określony dla dwóch rodzajów nagrywania: przodek i potomek. Instancja rodzaju komunikacji składa się z jednej instancji rodzaju nagrywania przodków i zamówionego zestawu instancji typu nagrywania typu. Dla tego typu komunikacji L należy wykonać następujące dwa warunki jako następujące dwa warunki:

1. Każda instancja typu P jest przodkiem tylko w jednej instancji L;

2. Każda instancja C jest potomkiem nie więcej niż w jednej instancji L.

Sposób relacyjny organizacji

Głównymi wadami hierarchish i sieciowych modeli danych to:

1. Zbyt trudne do użycia;

2. W rzeczywistości potrzebna jest znajomość organizacji fizycznej;

3. Stosowane systemy zależą od tej organizacji;

4. Ich logika jest przeciążona szczegółami dostępu do bazy danych.

Najczęstszą interpretacją modelu relacyjnego modelu, należy do daty, która odtwarza go (z różnymi wyjaśnieniami) w prawie wszystkich jego książkach. Według daty model relacyjny składa się z trzech części opisujących różne aspekty podejścia relacyjnego: część konstrukcyjna, część manipulacyjna i holistyczna część.

W ramach strukturalnej modelu jest naprawić, że jedyną strukturą danych stosowanych w relacyjnej bazy danych jest znormalizowana postawa N-żywiołowa.

W manipulacji modelu, dwa fundamentalne mechanizmy manipulowania relacyjną bazę danych są zatwierdzone - algebra relacyjna i rachunek relacyjny. Pierwszy mechanizm oparty jest głównie na klasycznej teorii zestawów (z pewnymi wyjaśnieniami), a drugi jest na klasycznym urządzeniu logicznym obliczania predykatów pierwszego rzędu. Główną funkcją manipulacji części relacyjnym jest zapewnienie relacji każdego konkretnego języka relacyjnych baz danych: Język nazywa się relacyjnym, jeśli nie ma ona nie mniejsza ekspresyjna i mocy niż relacyjna algebra lub rachunek relacyjny.

Wreszcie w integralnej części modelu danych relacyjnych rejestrowano dwie podstawowe wymagania integralności, które muszą być utrzymywane w dowolnym relacyjnym DBMS. Pierwszy wymóg nazywany jest wymogiem integralności integralności. Drugi wymóg nazywa się wymogiem integralności na linki.

Po wstępnej analizie modelu matematycznego systemu i metod organizacji danych, a także organizacji dostępnej na rynku oprogramowania (hierarchiczne i sieciowe metody organizacji, przyjmować obiekt - zamówione podejście do organizacji danych i dzisiaj tam są takie DBMS (na przykład, Jasmin lub Informix Dynamic Server), ale w momencie rozwoju możliwości ich stosowania nie było jednocześnie bardzo silne "relacyjne DBMS (na przykład Oracle 8i)) wyboru został stworzony na korzyść relacyjnej metody organizowania przechowywania danych.

2.3.2. Opis informacji wejściowych

Wszystkie informacje niezbędne do rozwiązania zadania są ustawione do iteracji metod rozwiązania zadania harmonogramu. Aby uprościć, uważa się, że określone informacje są stałe przez cały okres, dla którego harmonogram jest sporządzony.

Bez utraty pewnego stopnia wspólnego zadania, możliwe jest określenie pewnego zestawu danych wejściowych wymaganych do tworzenia ograniczeń i rozwiązywania problemu, a jednocześnie wspólne dla wszystkich odmian praktycznych wdrażania systemu. Ze względu na specyfikę zadania (możliwość stosunkowo łatwej adaptacji modelu matematycznego w przypadku praktycznego wdrożenia w ramach konkretnego uniwersytetu), formy dokumentów informacji wejściowych nie zostały opracowane. Szczegóły wejściowe opisano w tabeli 2.

Tabela 2. Opis szczegółów wejściowych

Nazwa wymagań Charakterystyczne wymagania

dokumenty wejściowe

Typ Max. długość Precyzja

Nazwisko, imię, patronymiczny nauczyciela;

Skontaktuj się z nauczycielem telefonu;

Stopień akademicki;

Stypendium;

Nazwa grupy;

Kompozycja numeryczna grupy;

Nazwa kursu czytelnego;

Liczba godzin kontroli;

Numery publiczności;

Informacje o widowni;

Nazwa obiektu czytana przez nauczyciela;

Liczba grupie, w której obiekt jest odczytywany;

Informacje o odbiorców, w których obiekt jest czytany.

Oprócz tych danych, dla modelu matematycznego, potrzebne są inne dodatkowe dane, które można uzyskać po analizowaniu programatycznie informacji wejściowych.

2.3.3. Rozwój wsparcia informacyjnego

Przeanalizujemy informacje o źródle w celu określenia składu i struktury informacji o kolejnej formalizacji i budowie modelu danych i logicznych (ILM). Powyższy model matematyczny, a także dodatkowe informacje z opisu obszaru, umożliwiają określenie roli szczegółów w odnoszonych informacji zawartych w dokumencie. Na podstawie takiej analizy ustanawiamy zależności funkcjonalne szczegóły zgodnie z zaleceniami i wymaganiami normalizacji danych, po czym przeprowadzią samą normalizację. Celem normalizacji jest zmniejszenie (ale niekoniecznie eliminować) redundancję danych. Czasami jednak niektóre redundancje danych mają na celu zwiększenie wydajności programu. Daj nam definicję trzech form normalizacji bazy danych.

Tabela jest w pierwszym normalna forma (1NF) Jeśli ma klucz podstawowy, wszystkie atrybuty są prostymi typami danych i nie ma powtarzalnych atrybutów. Aby dopasować 1NF, domeny atrybutów muszą być wartościami atomowymi i nie powinny być powtarzane grupy atrybutów. Wszystkie powtarzające się grupy atrybutów muszą zostać przeniesione do nowej tabeli.

Tabela znajduje się w drugim normalnym formularzu (2NF), gdy jest w pierwszym normalnym formularzu, a każdy atrybut kolizyjny w pełni zależy od klucza podstawowego (tj. W 2NF, każdy atrybut nexiński musi w pełni polegać na polach kluczy podstawowych).

Tabela znajduje się w trzecim formularzu normalnym (3NF), jeśli jest w 2NF i nie zawiera zależności przebywających. Zależności przebywające są zależność funkcjonalna między atrybutami nie selektywnymi. Każdy nie-selektywny atrybut, który funkcjonalnie zależy od innego nie-selektywnego atrybutu tej samej tabeli tworzy zależność przechodnia i musi być przeniesiona do innej tabeli.

Powstałe zależności funkcjonalne są dość trywialne i oczywiście przepływ z modelu matematycznego, więc w przyszłości opisującej nie podano. Również w dalszej prezentacji obniżane są pośrednie stopnie normalizacji. Dlatego prezentujemy tylko ostatni model infologiczny bazy danych (patrz rys. 1.).


Rys. 1. Zadanie konfiguracji zadania modelu modelu infologicznego




2.3.4. Cechy tworzenia ograniczeń modelu matematycznego zadania opracowywania harmonogramu

Opracowanie ograniczeń (1) - (7) modelu matematycznego problemu z rysunkami jest wystarczające zadanie trywialne rozwiązane przy użyciu prostych żądań SQL i nie wymaga wstępnej analizy informacji wejściowych. Dlatego skupimy się tylko na ograniczeniach formy (8).

Należy pamiętać, że w modelu matematycznym systemem czytelnym obiektem jest "związany" nie do określonej publiczności zachowania, ale do kilku wielu odbiorców. Wyrównanie określonych numerów publiczności odbywa się po rozwiązaniu zadania. Ograniczenia formy (8) mają sens tylko wtedy, gdy zestawy widzów przecinają się. W modelu matematycznym proponuje się wziąć pod uwagę wszystkie unikalne przecinające pary w formie ograniczeń. Liczba tych skrzyżowań może być duża, co może prowadzić do dużej liczby dodatkowych ograniczeń, które negatywnie wpływa na szybkość algorytmów optymalizacji. Jednak możliwe jest, aby znacznie zmniejszyć liczbę dodatkowych ograniczeń.

Rozważmy przypadek liniowego układu przecinających się (patrz rys. 2.).

Rys. 2. Liniowe zestawy przecinające

W przypadku takiego zestawu odbiorców do prowadzenia zajęć Łączna Ograniczenia formy (8) będą n-1, gdzie n jest liczbą zestawów. Wyżej opisany układ zestawów przecinających można nazwać liniową, ponieważ w tej samej porze znajdują się zestawy przecinające się w linii. Możesz rozważyć obudowę, gdy zestawy przecina się nawzajem w sposób arbitralny (patrz rys. 3.).

Rys.3. Arbitralnie przecinające się zestawy

Liczba ograniczeń formy (8) w tym przypadku można zmniejszyć, przeprowadzając tworzenie tych ograniczeń przez analogię w przypadku układu liniowego zestawów. Aby to zrobić, konieczne jest założenie, że na przykład, zestawy B i D przecinają się z jednym zestawem, określ obszar przecięcia takiego zestawu z zestawem A, po którym przeprowadzają te same działania z wynikowym obszarem skrzyżowania.

Przeczytaj więcej o tym, s. 210.

2.4. Wyniki programu

Dzięki praktycznej realizacji systemu szczególną uwagę zwrócono na zadanie pisania systemu "Core" - metody rozwiązywania problemu i procedur dla tworzenia ograniczeń. Ponieważ zadania nie były ustawione na napisanie w pełni funkcjonalnego produktu handlowego, część interfejsu została napisana w celu testowania jądra i określenie ograniczeń stosowania algorytmów, obejmuje zatem minimum funkcjonalności i nie zawiera predefiniowania wejścia moduły.

Rdzeń systemu i część interfejsu została napisana na Delphi 6.0. Metody rozwiązywania i algorytmów do tworzenia ograniczeń są pisane przy użyciu technologii zorientowanych na obiekty, które pozwolą im łatwo wykluczyć je w dalszych modyfikacji systemu bez naruszenia integralności interakcji różnych algorytmów. Tekst obiektów metod rozwiązywania problemów jest podany w dodatku 2. Baza danych została zaimplementowana na Oracle 8i DBMS, żądania do niego przeprowadza się w PL / SQL.

Dane źródłowe zadań są rejestrowane w tabelach bazy danych przy użyciu formularzy żądających formularzy. Jedna z tych form jest pokazana na FIG. 3.

Rys.3. Forma danych początkowych

Dane uzyskane w wyniku rozwiązania problemu nie wystarczy, aby wyprowadzić harmonogram zajęć natychmiast po rozwiązaniu problemu, dlatego napisano moduł przetwarzania po przetwarzaniu danych. Ostateczny harmonogram zajęć jest wyświetlany jako tabela, którego przykład można zobaczyć. cztery.

Figa. 4. Przykładowy harmonogram zajęć

Algorytmy rozwiązywania problemów zostały przetestowane na różnych próbkach danych źródłowych. Testowanie przeprowadzono na komputerze z procesorem Intel Pentium 350 MHz, Oracle 8i DBMS został zainstalowany na serwerze dwukracyjnym: 2 CPU Intel Pentium II 350 MHz, RAM 384 MB; Jako kanał komunikacji używano pojemności do 100 Mb / s. Jako dane źródłowe testów, jako rzeczywiste dane dotyczące grup, nauczycieli i odczytywnych przedmiotów wieczornych uczenia się CHSU na 1999/2000 lata naukoweoraz losowo utworzone dane źródłowe (odczytywalne tematy losowo określają publiczność do prowadzenia zajęć). Średnio wytworzono od 5 do 10 testów dla każdego rozmiaru testu danych źródłowych. W rezultacie dane przedstawione w tabeli 2. Na rysunku 5. Wykres średnio czasu rozwiązywania problemu z liczby odczytywalnych elementów i liczby grup jest podanych.

2.5. Analiza uzyskanych wyników

Analizowanie uzyskanych danych można dokonać pewnych wniosków na temat funkcjonalności algorytmów roztworów i modelu matematycznego, ich niedociągnięć i zastosowań.

Po pierwsze, używany model matematyczny zawiera ograniczenia "dodatkowe", których istnienie jest spowodowane liniowym modelem całkowitym, oprócz tego, każdy czytelny na strumieniu (strumień może składać się z jednej grupy) jest umieszczona zgodnie z 12 (dla Przypadek zdarzeń) zmiennych, z których każda jest zmienną boolowską. Po drugie, czas rozwiązania problemu gwałtownie zwiększa dane wejściowe. Wynika to z gwałtownego wzrostu liczby zmiennych i ograniczeń w modelu, w wyniku którego wymiar macierzy wzrasta i odpowiednio, czas rozwiązania problemu. Po trzecie, sformalizowany matematycznie zadanie obejmuje tylko zadanie sporządzenia harmonogramu studentów studentów wieczornych bez uwzględnienia przejścia między korpusem. Rachunkowość dodatkowe wymagania Zwiększy liczbę ograniczeń problemu, który negatywnie wpłynie na szybkość algorytmów rozwiązań.

Narysujemy uwagę na rosnącą różnicę między minimalną a średnią wartością problemu rozwiązania problemu, ponieważ wymiar zwiększa się wymiar problemu. Ta różnica odpowiada sposobowi "udanego" (najbardziej ściśle optymalne) znalazło początkowe dopuszczalne podstawowe rozwiązanie problemu. Dlatego czas rozwiązania problemu może być znacznie zmniejszony, "dobrze" znalezienie podstawowego upuszczalnego rozwiązania. Aby wyszukać takie rozwiązanie, najlepiej jest użyć algorytmów heurystycznych i rozkładowych.


Wnioski podczas pracy zbudowano model matematyczny harmonogramu na Uniwersytecie w przypadku wieczorowej formy szkolenia bez przejścia między obudowach, wybrano metody rozwiązywania zadania zadania i model do przechowywania danych źródłowych Zadanie zostało opracowane. Model przechowywania danych źródłowych, model modelu formalizacji matematycznej i metod rozwiązania zostały wdrożone jako moduły oprogramowania. Szybkość działania algorytmów badano na heterogenicznych zestawach danych źródłowych, w wyniku czego określa się możliwości i obszary zastosowania algorytmów.

Na podstawie wyników badań stwierdzono, że dzięki szybkością eksploatacji algorytmy rozwiązywania problemów są wysoce zależne od objętości informacji wejściowych i początkowego dopuszczalnego rozwiązania podstawowego, a zatem znacznie gorszy od heurystyki i dekążę. Ale w przypadku heurystycznego rozwiązania go (rozwiązania) optymalność (lub osiągnięcie globalnego maksimum) można udowodnić tylko przy całkowitym wyszukiwaniu wszystkich możliwych opcji (jasne jest, że w tym przypadku czas otwarcia algorytmu będzie Bardzo duży), dlatego iteracje algorytmów heurystycznych są zakończone po osiągnięciu maksimum (nie mogą powiedzieć, lokalnej lub globalnej) wartości. Roztwór takiego algorytmu może być blisko optymalnego, ale nie optymalnego. W tym przypadku, aby osiągnąć maksimum globalne, możliwe jest stosowanie metody roztworu rozpatrywanego w pracy, ponieważ optymalne można osiągnąć w kilku iteracjach opisanych metod rozwiązania.


LITERATURA

1. Lagosa B.A., Petropavlovskaya A.v. Kompleks modeli i metod optymalizacji harmonogramu zajęć na Uniwersytecie // Ekonomia i Mat. Metody. 1993. T. 29. obj. cztery.

2. Hu T. Programowanie całkowitowe i wątki w sieciach. M.: Mir, 1979.

3. Lebedev S.S. Modyfikacja metody giętarki częściowo całkowitego programowania liniowego // gospodarki i macie. Metody. 1994. T. 30. obj. 2.

4. Lebedev S.S., Zaslavsky A.a. Korzystając ze specjalnej metody oddziałów i granic, aby rozwiązać integer uogólniony problem transportowy // ekonomia i macie. Metody. 1995. T. 31. obj. 2.

5. Zaslavsky A.a. Wykorzystując strategię strategii zmiennych w zwykłe zadania Integer Programowanie liniowe // Gospodarka i mata. Metody. 1997. T. 33. Wydanie 2.

6. Lebedev S.S. W sprawie metody zamawiania indeksowania programowania liniowego Indeger // Gospodarka i macie. Metody. 1997. T. 33. Wydanie 2.

7. Lebedev S.S., Zaslavsky A.a. Modyfikowana metoda metody programowania Zadania Boolean // Gospodarki i Maty. Metody. 1998. T. 34. obj. cztery.

8. Zaslavsky A.a. Połączona metoda rozwiązywania problemów plecaka // gospodarki i maty. Metody. 1999. T. 35. obj. jeden.

Dodatek 1. Możliwości produkty oprogramowania systemów planowania.

Zstatus Autor-2 + jest przeznaczony do szybkiego i wygodnego przygotowania harmonogramów klas i towarzyszyć im w całym roku szkolnym.
ALEDrugi-2 + - uniwersalny system. Istnieje kilka wersji programu przeznaczonego dla każdej instytucji edukacyjnych:

Wykonanie i specjalistyczne (matematyczne, językowe itp.) Szkoły, Lceums, Gymnasium;

Szkoły techniczne, uczelnie i uczelnie;

Uniwersytety z jednym budynkiem edukacyjnym;

Uniwersytety z kilkoma budynkami edukacyjnymi (biorąc pod uwagę ruch między obudowy).

ALEDrugi-2 + pozwala Ci umożliwić, aby umożliwić mu możliwe, aby umożliwić łatwe automatyzowanie wyzwań harmonogramu. System pomaga łatwo zatrzymać, Kopect i nacisnąć w postaci wygodnych i wizualnych dokumentów:

Klasy klas passcriptowych (grupy szkoleniowe);

Harmonogramy sprchżań;

Harmonogram publiczności (szafki);

Plany edukacyjne;

Taryfa.

ALEDrugi-2 + ma projektowanie gołąb i DPUS. Program jest dość łatwy do nauczenia. Istnieje szczegółowe podręcznik, który opisuje wszystkie możliwości i sposoby pracy z programem.
P.rogram działa na dowolnych komputerach zgodnych z IBM, począwszy od 486DX z 4 MB pamięci RAM (i wyższej), zajmuje około 1 MB na dysku twardym. System operacyjny: MS DOS lub Windows 95/98.
Wworkfire zależy od wielkości instytucji edukacyjnej i mocy komputera. Pełne obliczenia i optymalizacja harmonogramu szkoły średniej (30 klas, 60 nauczycieli, dwóch zmian) idzie około 15 minut na komputerze Celeron-400.

P.rogram charakteryzuje się wyjątkowym i bardzo silnym algorytmem do budowy i optymalizacji harmonogramu. Wynikowy automatyczny harmonogram praktycznie nie wymaga ręcznego wyrafinowania, czyli nawet przy bardzo złożonych i twardych ograniczeń, wszystkie możliwe klasy są automatycznie umieszczone. Jeśli w danych źródłowych są nierozpuszczalne sprzeczności, można je wykryć i wyeliminować za pomocą specjalnej jednostki analizy.

ALEDrugi-2 + pozwala:

Zoptymalizuj "okna" w harmonogramie;

Wziąć pod uwagę wymagany zakres dni / godzin zarówno dla klas, jak i nauczycieli;

Optymalnie, aby klasyfikacje klasowe (publiczność), biorąc pod uwagę cechy klas, elementów, plekliwości i pojemności szafek;

Weź pod uwagę Happotes i życzenia zarówno specjalistów w pełnym wymiarze godzin, jak i członkom w niepełnym wymiarze godzin;

Łatwy do połączenia ("sprink") kilka klas (grupy szkoleniowe) w przepływach kontaktów jakichkolwiek klas;

Strona Klasy Presteres z języka przyjaciela, kultury fizycznej, TPU, Informatyki (i innych obiektów) dla dowolnej liczby podgrup (do dziesięciu!);

Enter (oprócz głównych kapłanów) Specjalne pompy i wybór;

Zoptymalizuj jednolitość i pracochłonność harmonogramu.

2. System "Harmonogram" Ver 4.0 Moskwa - LINTECH

Należy natychmiast zauważyć, że program "Harmonogram" koncentruje się na kompilacji harmonogramu szkolnego, wykorzystanie uniwersytetu i uczelni jest możliwe tylko z niektórymi rezerwacjami. Planowanie jest dokonywane w ramach warunków określonych warunków określonych na początkowym etapie wprowadzania danych. Pełna lista możliwych warunków jest podana poniżej:

- Omaksymalny numer lekcji jest związany - I.e. Liczba lekcji, maksymalna dopuszczalna dziennie;

- R.dystrybucja Avomerity ładunku nauczycieli między dniami zaplanowanymi;

- R.avtomerity ładunku klasy zajęć między dniami harmonogramów;

- DOokna Onrop w harmonogramie nauczycieli;

- P.rogogram uwzględnia fakt, że klasy mogą dowolnie zjednoczyć i miażdżyć (klasy można łączyć w strumienie lub zgniatanie w mniejsze podgrupy, a te podgrupy, z kolei, mogą służyć jako podstawa do łączenia w większych grup. Przykład: w szkole № 1859 Istnieją 2 klasę starszą, ale w każdej z tych klas istnieją dwie podgrupy na temat specjalizacji, klasy na temat kształcenia ogólnego są przeprowadzane natychmiast dla całej klasy, a przedmioty na specjalizacji są oddzielnie. Ale ponieważ podgrupy o specjalizacji są zbyt małe i brakuje nauczycieli, według niektórych przedmiotów. Podgrupy 11a i 11b mogą być również łączone (na przykład na wmosieniu.) - Complici zapewniają ciągłość harmonogramu klas (konieczne jest zapewnienie ciągłości harmonogramu każdy z podgrupów);

- N.aność kilku zmian - w tym przypadku indywidualne zajęcia muszą być późniejsze niż pierwsze grupy zmian, dodatkowo jest skomplikowane przez kontrolę systemu Windows w harmonogramie nauczycieli, jeśli są nauczyciele pracujące na obu zmianach - w tym przypadku, W harmonogramie tych nauczycieli ich zajęcia muszą "pociągnąć" wokół przejścia;

- W.słowo wiążących nauczycieli publiczności - indywidualni nauczyciele mają "ich" publiczność, w której przeprowadzane są wszystkie ich zajęcia;

- N.anyż "pływający" przesunięcie - gdy czas rozpoczęcia pierwszej lekcji zdecydowanie nie jest zdefiniowany, ponieważ Jest tworzony dynamicznie, w zależności od wydania powiązanych klas, nauczycieli, publiczności;

- DOontrol Cel Harmonogram Wpis (Klasa, Nauczyciel, Publiczność) do dopuszczalnego zakresu robotniczego (w tymczasowym limitowym karcie). Na przykład, dla nauczyciela w tymczasowej mapie restrykcyjnej, dni metodologicznych są zwykle wskazane, czasami niektóre numery lekcji - w skrócie, stanowiska te są wskazane, że instalacja klas z udziałem tego obiektu jest niemożliwa;

- N.aISIA COCKED ELEMENTS - TYP "INM. / Informatyka" "Informatyka / Pracy", itd - gdy klasa jest podzielona na podgrupy;

- W.słowo wiążące obiekty do odbiorców - prowadzenie zajęć na poszczególnych przedmiotach jest możliwe tylko w ściśle określonej publiczności lub listy odbiorców (wychowanie fizyczne, praca itp.);

- Zpozostawienie harmonogramu, biorąc pod uwagę okoliczności, że w niektórych przedmiotach nie przychodzi nie za całą klasę, ale jego podgrupa. Że kolejna podgrupa w tym czasie nie chodziła w szkole, takie zajęcia można umieścić ściśle tylko pierwsze lub ostatnie lekcje w harmonogramie klasy;

- “Waby utrzymać parallels "- dla niektórych nauczycieli, konieczne jest uwzględnienie faktu, że długoterminowe szkolenie jest wymagane dla klas (na przykład klas chemii), w którym to przypadku harmonogram dnia nauczyciela próbuje dostarczyć równoległe bloki, dla Przykład, pierwsze stopnie, a następnie 7 itd., Lub podczas dystrybucji między dniami, rozpowszechnianie zajęć w różnych równolegliwościach na różne dni;

- Inordod, przy sporządzaniu harmonogramu, wymagane jest wziąć pod uwagę, że na niektórych przedmiotach harmonogram jest znany z góry - w tym przypadku zajęcia są wprowadzane jako niespójne (stałe);

- DOontropol zabronione kombinacje obiektów na harmonogram jednej klasy - na przykład jest niepożądany " wychowanie fizyczne"I" praca "została przeprowadzona tego samego dnia;

- Wspełniają warunki wymaganych sekwencji obiektów - gdy konieczne jest zapewnienie instalacji grup klas, w których klas muszą przejść w określonej sekwencji, na przykład, fizyki-astronomii itp.;

- N.klasy anyżowe związane z publicznością - większość klas dla takich zajęć odbywa się w tej publiczności, z wyjątkiem tych klas, dla których wymagana jest specjalistyczna publiczność;

- N.końcówki układu zajęć na poszczególnych przedmiotach dwóch klas w rzędzie ("pary", "pisarze"), a ten warunek może być sztywny (w żadnym wypadku, aby złamać "pisarzy" klas) i może być preferowany (Jeśli nie można przenieść dwóch klas, "iskr" można złamać);

Okoliczność uwzględnia się, gdy w niektórych przedmiotach dostosowanie jest dopuszczalne tylko przez pojedyncze zawody.

3. System "Metodysta"

Produkowane w dwóch wersjach.

Wersja wirtualna.

Uwolnij bez modułu kompilacji automatycznego harmonogramu. Funkcje Wersja Virtual:

Szybkie wyszukiwanie w listach nauczycieli, odbiorców, zajęć (grup), dyscyplin, obudowy;

Uzyskanie informacji referencyjnych dla każdej znalezionej pozycji listy (pojemność odbiorców, wszystkie AUD. Przypadki X, adres i Tel. Nauczyciel, lista działów, liczba godzin na dyscyplinie, obciążenie badaniem. Nauczyciel i Mn. dr.);

Kontrola i możliwość redystrybucji godzin między tygodniami na dowolnym koncie dyscyplinowym. grupy;

Automatyczna weryfikacja ewentualnych błędów wprowadzania danych (zgodność z całkowitą ilością godzin i według rodzaju zajęć, nieprzychylanie nauczycieli w podgrupach, budżet czasu grupy i nauczyciela, niezgodność zegarowa w grupach przepływowych i Mn. Inne );

Możliwość systematycznego przechowywania (i szybkiego wyszukiwania) dodatkowych (nie obowiązkowe do kompilowania harmonogramu) informacji: Zdjęcia nauczycieli, kuratorów grup szkoleniowych ( fajni przywódcy) Dane dotyczące przedstawicieli komitetów rodzicielskich, stanowisk, dyplomów naukowych i tytułów odpowiedzialnych za publiczność, ...

Szybki odbiór pełnych informacji na temat kombinacji czynników (wszystkie grupy przepływowe, wszystkie dyscypliny nauczyciela X, wskazujące obciążenie tygodni i rodzajów zajęć, które dyscypliny mogą przeprowadzać w klasie komputera, osobiste życzenia dla zawody każdego nauczyciela, lista datek świątecznych w grupie syryjskiej i Mn. Dr.);

Możliwość przeglądania, drukowania i edycji gotowego harmonogramu z weryfikacją zmian w poprawności zmian (AUD., Pre., Grupy / podgrupy, ...);

W dowolnym momencie można zamówić moduł formujący harmonogram dla przygotowanych danych;

Harmonogram jest utworzony na komputerze z możliwością zmiany ustawień, kontroli, edycji itp. (bez możliwości zmieniających się godzin, dyscyplin, nauczycieli, ...);

Jeśli potrzeba zmian drobnych (do 10%) zmian danych źródłowych (błędy, wykryto nagłe dodatki), możliwe jest ponowne zamówienie modułu formującego harmonogramu za niewielką opłatą;

W dowolnym momencie możesz przejść do wersji standardu;

Metodystent - standard.

Oprócz możliwości wirtualnego, obejmuje:

Automatyczny moduł kompilowania harmonogramu;

Dystrybucja i kontrola obciążenia treningowego;

Strukturyzacja sekwencji dyscypliny (wykłady - 2 godziny, praktyczne - 4 godziny, laboratorium ...);

Korzystanie z harmonogramu dla każdego rodzaju instytucji edukacyjnej: co tydzień lub semestr (od 1 do 23 tygodni);

Rachunkowość łączenia grup (klas) w strumieniach i / lub podzielaniu ich w podgrupy;

Konsolidacja specjalnych odbiorców (klasy komputerowe, kategorie, basen, ...);

Rachunkowość zatrudnienia nauczycieli i odbiorców (partycja, wykorzystanie wspólnej bazy szkoleniowej);

Rachunkowość czasu przejścia między kadłami;

Weekendy i święta są powszechne oraz indywidualne grupy szkoleniowe (krajowe, religijne, święta państwowe);

Określanie przyczyn "nieudanej wizyty" klas (zajmowanych przez publiczność, nauczyciel jest wyznaczony do niechcianego dnia tygodnia) z możliwością ich "ręcznej" korekcji;

Możliwość wielu automatycznych "poprawy" harmonogramu;

Możliwość zmiany znaczenia czynników uwzględnionych w przygotowaniu harmonogramu;

Możliwość wprowadzenia priorytetów nauczycieli - stopni ich indywidualnych życzeń;

Ograniczenia dotyczące funkcjonalności "Metodystów":

Wielokrotne harmonogramy są ograniczone do maksymalnej liczby lekcji dziennie - 7;

Zajęcia zawsze zaczynają się od pierwszej lekcji / para (jeśli to konieczne, możliwe jest wyznaczenie pierwszej pary "darmowych klas");

Czas zmiany nie jest brane pod uwagę (na przykład w celu weryfikacji możliwości przejścia między kadłubami);

"Poziom złożoności" klas dla ich racjonalnego podziału tygodnia nie jest brane pod uwagę (chociaż możliwe jest to, że pośrednio);

Czas trwania zawodów jest stały (niemożliwe jest sporządzenie harmonogramu przez 30 minut. Lekcja w młodszym i 45 min. - w liceum).

Dodatek 2. Wyświetlanie rozwiązań modułu oprogramowania do rozwiązania kompilacji harmonogramu automatycznego

typ Myarray \u003d macierz tablicy rzeczywistej;

Myarray_x \u003d tablica Longintu;

procedura Step_dual_Simplex (VAR A: Myarray; M, N, I1, J1: Integer);

(wytwarza jeden etap metody Dual Simplex,

element ołowiowy - A)

var i, j: całkowitą;

b, b1: macierz prawdziwy;

SetLength (B, M); SetLength (B1, N);

dla I: \u003d 0 do M-1 do B [I]: \u003d A;

dla I: \u003d 0 do N-1 do B1 [I]: \u003d A;

dla I: \u003d 0 do M-1 do

za j: \u003d 0 do n-1 zacznij

jeśli (i \u003d i1) i (j \u003d j1), a następnie: \u003d 1 / b

jeśli (i \u003d i1) to: \u003d b1 [j] / b

jeśli (j \u003d j1), a następnie A: \u003d - b [i] / b

inaczej A: \u003d A-B [I] * B1 [J] / B;

dla I: \u003d 0 do N-1 Czy: \u003d 0; A: \u003d - 1;

Sfinalizować (b); finalizować (b1);

funkcja Lexikogr_few (A: Myarray; M, N: Integer; I, I1: Integer): Boolean;

(Pierwsza kolumna leksykograficznie mniejsza niż druga)

Lexikogr_few: \u003d false;

podczas gdy (a \u003d a) i (j

funkcja Find_nu (A: Myarray; M, N: Integer; I, I1: Integer): Longint;

(I - indeks kolumny minlekskofalistycznej)

podczas gdy (a \u003d a) i (j

jeśli (j 0) następnie find_nu: \u003d runda (int (A / a));

procedura Full_integer_Simplex (Var X: Myarray_x; A: Myarray; M, N: Integer);

(W pełni ligorytm całkowitym problemu liniowego całkowitego

programowanie,

zobacz Hu T. "Programowanie całkowitalne i wątki w sieciach", str. 300-309,

a - rozmiar matrycy M + N + 2 * N + 1, przez analogię:

Wymagane jest znalezienie maksimum

z \u003d - 10x1 - 14x2 - 21x3

2x1 + 2x2 + 7x3\u003e \u003d 14

8x1 + 11x2 + 9x3\u003e \u003d 12

9x1 + 6x2 + 3x3\u003e \u003d 10,

procedura zwraca wektor X, którego pierwszy komplet M jest to pożądane rozwiązanie,

jeśli ostatni element wektora \u003d 1, roztwory nie istnieją, ani \u003d Nieskończoność)

var i, i1: liczby całkowitej;

podczas gdy (i \u003d 0) do inc (i); (wytwarzający ciąg)

podczas gdy (j \u003d 0) do inc (j);

dla I1: \u003d 1 do N-1 zrobić, jeśli (a

minimalna kolumna)

(Wybór alfa)

(Writeln (I, "", J); Readln;)

dla I1: \u003d 1 do N-1 rób, jeśli a

j1: \u003d find_nu (A, M, N, J, I1);

jeśli (J1\u003e 0) i (-a / J1\u003e ALFA) następnie Alfa: \u003d - A / J1;

(Writeln (Alfa, "" I, ", J); Readln;)

(Uzyskanie spożycia homori)

dla I1: \u003d 0 do N-1 zrobić, jeśli A\u003e 0 następnie A: \u003d ROUND (INT (A / AGFA))

a: \u003d runda (int (A / AFA));

jeśli Frac (A / A / AFA) 0 następnie A: \u003d A-1;

Step_dual_simplex (A, M, N, M-1, J);

aż do (i\u003e \u003d m-1) lub (j\u003e \u003d n);

dla I: \u003d 0 do M-1 do x [I]: \u003d rundę (a);

jeśli j\u003e \u003d n, a następnie x: \u003d 1 else x: \u003d 0;

procedura Step_one_simplex (VAR A: Myarray; M, N, I: Integer);

var i1, i2: liczby całkowitej;

(Jeden etap bezpośredniej metody całkowitej (wytwarzając ciąg - ostatni

i - Wytwarzanie kolumny))

dla I1: \u003d 0 do M-2 Czy: \u003d A / (- A);

dla I2: \u003d 0 do N-1

dla I1: \u003d 0 do M-2

jeśli I2i to: \u003d A + A * A;

procedura Direct_integer_Simplex (VAR X: Myarray_x; A: Myarray; M, N: Integer);

(Bezpośrednie algorytm całkowitym do zadań programowania liniowego Integer,

patrz Hu T. "Programowanie całkowitalne i wątki w sieciach", str. 344-370,

a - Matrix Rozmiar M + N + 3 * N + 1 Przez analogię:

wymagane jest maksymalizowanie

z \u003d x1 + x2 + x3

4x1 + 5x2 + 2x3

potem macierz i będzie wyglądał:

10 1 1 1 - W tej linii pierwsza liczba jest szorstkowymi sumami zmiennych bez bekonu

0 0 0 0 - Ciąg Gomorie Cutoff

algorytm działa tylko na A\u003e \u003d 0

zwraca wektor X - na miejscu pojedynczej matrycy żądanego rozwiązania,

jeśli w ostatniej jednostce składowej - błąd podczas obliczeń)

var i, j, i1, j1: liczby całkowitej;

b, b1, b2: macierz bajtów;

Ustawienie (b, m); ustawienie (B1, m);

dla I: \u003d 0 do M-1 do B1 [I]: \u003d 0;

(Weryfikacja warunków optymalności)

dla j: \u003d 1 do n-1 rób, jeśli

podczas gdy Bool zaczyna się

(Szukaj kolumny produkującej)

bool: \u003d false; j1: \u003d 0;

za j: \u003d 1 do n-1 zacznij

jeśli A\u003e 0 Następnie

dla I: \u003d 0 do M-3 Czy: \u003d A / A;

jeśli nie bool zacznij J1: \u003d J; Bool: \u003d true; Endo inly, jeśli Lexikogr_few (A, M, N, J, J1)

(Wyszukaj ciąg generalny)

dla j: \u003d 1 do n-1

jeśli A\u003e 0 Następnie

dla I: \u003d 0 do M-3 Czy: \u003d A * A;