Алгоритъм. Науката прави график

Да предположим, че има много н.идентични процесори, определени и m независими задачи
да бъдат изпълнени. Процесорите могат да работят едновременно и всяка задача може да се извърши на всеки процесор. Ако задачата е заредена в процесора, тя остава там до края на обработката. Време за обработка на задачите също е известно
Организирайте обработката на задачите, така че целият набор от задачи да бъде завършен възможно най-бързо.

Системата работи по следния начин: Първият освободен процесор взема следната задача от списъка. Ако два или повече процесора са едновременно освободени, след това следващата задача от списъка ще бъде процесорът с най-малък брой.

Пример. Нека има три процесора и шест задачи, времето за изпълнение на всеки от които е:

Помислете за графика в началния момент на времето. T \u003d 0.Процесор започва да се справя с задачата Процесор - задачи и процесор - задачи . процесор завършва задачата по времето на времето
Докато процесори и все още работи по оригиналните си задачи. За T \u003d 3.процесор отново завършва задачата и започва да се справя с задачата това завършва по това време T \u003d 4.. След това той започва да изпълнява последната задача . Процесори и завършете задачите T \u003d 5.но след списъка Л.празен, те спират. процесор завършва изпълнението на задачата за T \u003d 12.. Разгледаният график е илюстриран на фиг. временна диаграма, известна като gantta схема. Очевидно графикът не е оптимален. Можете да "вземете", например график, който ви позволява да изпълните всички задачи T * \u003d 8единици време (фиг.2).

Сега разгледайте друга задача да изготвите график за многопроцесорни системи. Вместо въпроса за най-бързо завършване на настройката, зададена от определен брой процесори, сега ще поставим въпроса за минималния брой процесори, необходими за завършване на този набор от задачи за определено време . На време на време няма да има по-малко от времето на отнемаща време задачата.

В такава формулировка задачата за изготвяне на графика е еквивалентна на следващия проблем на опаковката. Нека всеки процесор съответства на кутията размер . Нека всяка задача да бъде съответства на размера на размера равен на изпълнението на задачите където
Сега, за да разрешите задачата да рисувате график, трябва да изградите алгоритъм, който ви позволява да поставяте всички елементи в минималния брой кутии. Разбира се, е невъзможно да се попълнят кутиите над обем. и елементите не могат да бъдат смачкани на части.

Литература

1. Т. ъгъл, гл. Лейерсън, R. Rivest

Алгоритми: Изграждане и анализ. М.: MCSNMO, 2000.

2. Програмиране на изкуството D.Knut, обем 1. Основни алгоритми. УЧ. POS. М.: Ед. Къща "Уилямс", 2000.

3. WIRTH N. ALGORITHMS и структури на данни: писалка. От английски - m.: Mir, 2001.

4. Husainov b.s. Структури и алгоритми за обработка на данни. Примери на

език. Проучвания. полза. М: Финанси и статистика, 2004.

5. A. Aho, J. Chopcroft, J. Ulman, структури на данни и алгоритми M: Санкт Петербург: Киев: Уилямс, 2001.

Тишината царува, която се шиеше, като въздъхна:
- ... във военната служба трябва да има дисциплина - никой не би се преместил на пръста до пръст. Нашите Leutenant Makovets винаги казваха: "Дисциплината, маниаците, необходими. Не бъди дисциплина, бихте искали маймуни, ласили. Военна служба от вас, глупаци безмозъчни, хората ще направят! " Е, нали? Представете си площада, кажете, на площад Карлова, а на всяко дърво седи един от един войник без никаква дисциплина. Тя ме плаши ужасно.
Ярослав Гашак Приключение на смелите войници Schweik

График клас, това е комбинация в пространството и времето на дисциплината (субект), учител (учители), аудитория и групи (подгрупи, поточни) студенти.

Формулиране на проблема

Аз ще кратък.

  • Когато извършвате класове, може да няма никой участници, например, на среща на отдела, учениците обикновено не идват или учениците отиват военно управление (Те имат свой собствен график), и по ред на класовете няма дисциплина, учител и публика.
  • Като правило необходимото изискване е непрекъснатостта (липса на прозорци) в учениците и за предпочитане сред учителите.
  • Графикът може да бъде изготвен на семестъра / полумесеца в продължение на седмици, в продължение на две седмици и числител / знаменател (нечетна седмица / дори седмица). Има и график за един месец.
  • Класовете трябва да могат да изпълняват в ръчен режим (с други думи в редактора). Например научният съвет или няколко болшои шеф и дори един урок е просто добър човек.
  • Трябва да има система от забрани за всички участници в урока. Например, сега почти всички учители работят настрани (в противен случай няма да живеете) или фондът за одит е разделен между факултетите и е невъзможно да се постави на обяда в част от публиката.
  • Наличие на усъвършенствани желания на учители, една поза 5 двойки на ден, за да освободят други дни, а други повече от два двойки на ден не поставят, тя е претоварена и ако лекция, тогава една двойка и непременно 2 или 3 повече.
  • Класове в различни сгради, изискващи време да отидат повече от времето за почивка между класове. Естествено и условието за свеждане до минимум на преместването.

Изход. Както може да се види от състава, оценява качеството на графика е възможно само след пълната му компилация. Следователно използването на генетични алгоритми може да позволи да се изгради решение на желаната задача и дори да се получи едно от доброто в известен смисъл. В този случай генетичните алгоритми много бързо се сближават в оптималното в началото и това означава, че почти няма да има ограничения за обема на входните данни.

Картината е взета от тук.

Генетичен алгоритъм

Чиста риторично, повтарям основните етапи на генетичния алгоритъм:

  1. Задайте целевата функция (фитнес) за физически лица на населението
  2. Създаване на първоначално население
  3. (Стартиране на цикъла)
    1. Възпроизвеждане (пресичане)
    2. Muning.
    3. Изчислете стойността на целевата функция за всички индивиди.
    4. Формиране на ново поколение (подбор)
    5. Ако се извършат стопните условия, край на цикъла, в противен случай (началото на цикъла).

Най-характерната грешка на използването на генетични алгоритми е да се изберат гени. Често решението често се избира като гени. Изборът на гени е най-нетривите и творчески елемент при създаването на генетичен алгоритъм. Лично аз считам, че изборът на гени трябва да отговаря на двете от следните основни изисквания.

  1. На множеството гени решението на желаната задача трябва да бъде изградено бързо и недвусмислено.
  2. Когато пресичате, потомството трябва да наследи характерните черти на родителите.

Коментар. Наборът от гени трябва да даде на целия набор (евентуално оптимални) решения на проблема. По принцип не е необходимо да се изисква взаимна неприятност, достатъчно е за картографирането на гените към пространството за решаване на (Проверяване).

Алгоритъм на графиците за рисуване

Ще опиша само гените, алгоритъм за изграждането им върху тях, пресичането и мутацията.

Като график на опитен диспечер. Словото, което изпитва, означава, че диспечерът вече е бил / и графикът вече говори понякога и знае своите затруднения. Например, недостиг на големи стрийминг аудитории или компютърни класове. Първият курс, тъй като те имат много стрийминг лекции и в същото време класове в подгрупи по компютърни класове, английски / английски от нулата / немски / френски и т.н., а шефовете изискват първият курс да няма Windows във всеки случай. И не повече от две лекции в деня и дните бяха равномерно натоварени. Ето защо, опитен диспечер поставя първите "тесни класове", класове шефове за тяхното търсене и класове на особено досадни учители. След това използвайте подредени класове като скелет, бързо завършване на графика. Нека се опитаме да имитираме, в известен смисъл, този процес.

Част от класовете вече са в графика, които остават последователно. Масив от професионални номера ще се счита за геном, въпреки че по принцип само редът на класовете е важен тук. За да изградите график, ние последователно ще премахнем броя на класовете и ще поставим избрания урок в графика, който отговаря на необходимите изисквания и максимизиране на целевата функция за студенти, учители и публика (те също имат трудови критерии).
Ако необходимите изисквания не успеят да задоволят, индивидът с такъв геном може да бъде изхвърлен като невизуален. Ако графикът не работи, можете да замените необходимите изисквания с глоба в целевата функция.

Преминаването може да бъде организирано по няколко начина. Например, един от тях. Нека имаме следните гени

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

Тук е ясно, че окупацията 3 е намерена в двата гена в позиция 2 включително и, например от позиция 2 до позиция 5 интервал за 1 класа. Ще направим следната таблетка

_ * * * * _ _ за 1 класа
* * * _ _ _ _ за 2 класа
* * _ _ _ _ _ за 3 класа
_ _ _ _ _ * _ за 4 класа
_ _ * * _ _ _ за 5 класа
_ _ _ _ * * * за 6 класа
_ _ _ * * * * за 7 класа

тук звездичките отбелязаха възможните позиции за появата на потомството. Можете да избирате от един или повече възможни решения като потомък или потомци на тези родители. Решението за избор на ген на потомство винаги е, например, и двамата родители го удовлетворяват. Пренапишете таблица чрез много възможни позиции

1 позиция (2, 3)
2 позиция (1, 2, 3)
3 позиция (1, 2, 5)
4 позиция (1, 5, 7)
5 позиция (1, 6, 7)
6 позиция (4, 6, 7)
7 позиция (6, 7)

За да изградите решения, можете да използвате следния алгоритъм. Първо ще поставим броя на класовете, които са по-малко вероятни. Ако те ги сортират, ще имаме
1 време 4.
2 пъти 3, 5
3 пъти 2, 6
4 пъти 1, 7
Следователно, първо поставете 4 урока на 6-та позиция, след това 3 или 5 в позиция (1, 2) или (3, 4) съответно. На всяка стъпка можете да хвърляте кутии с мачове. В резултат на това можете да получите следните стъпки за пресичане на алгоритъм

* * * * * 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

Тъй като е възможно да се изгради правилната последователност, по-добре е да се организира алгоритъм под формата на прост рекурсия, за да се повтори алгоритъмът, т.е. Организации на някои родители.

Мутацията може да бъде организирана достатъчно проста, случайна пермутация на номера на професията.

Заключение

Това е продължение, в известен смисъл, програмата ми пост за изготвяне на графика на класовете в университета и изчисляването на товара в отдела.

Предполагайте следното решение (скица).

  • GUI на PYQT или PYSIDE
  • PoSgreSQL DBMS (аз съм готов за около 80% тук), в допълнение, все още има приложения и много учители, учебни програми и много повече (за тази цел публикуват една или повече теми)
  • уеб интерфейс на Cherrypy + Cheetah (но може да бъде обсъден)
  • износ на всички доклади (графици, учебни карти и др.) В формата на Opendocument (Gost R ISO / IEC 26300-2010. Държавен стандарт на Русия (01.06.2011)) чрез Odfy
  • график компилиране на алгоритми от мен (тази тема е за това)
  • постановка от мен
  • за заинтересованата работа на общото ядро
  • за заинтересованото адаптиране под собствения си университет и възможността да промените всичко гъвкаво, животът отива, а длъжностните лица не пускат общежитие

Благодарение на всички, които отговориха, след като обсъдиха тази тема, ще бъде възможно да се организира.

График Урок регулира ритъма на училищния живот, работата и свободното време на учениците и учителите.
Ефективността на целия образователен процес зависи от неговото качество.

Приемливост на уроците и училищния график

Учебната програма трябва да отговаря на функционалните способности на учениците. Обем, съдържание и организация учебен процес Трябва да осигури такова състояние на тялото, в което умората напълно ще изчезне за периода на почивка.

Основните критерии за оценка на уроците по отношение на функционалността на учениците - трудност и уморени. Тезелността се характеризира с промяна в изпълнението и трудността на субекта - нивото на академичността, т.е. степента на асимилация образователен материал. Следователно при изготвянето на график е необходимо да се вземат предвид и двата фактора.

В правен аспект, проблемът за създаването на училищния график е отразено в нови хигиенни изисквания за подготовката на графика, които се основават на данните за съвременните научни изследвания на биологичната ефективност и трудността на темите на ИГ . Сивкова. Въпреки това, за заместник-директора на училището, който е графикът, е важно не само да се знае колко трудно е да се осигури сила на уморителното на поуки по конкретен предмет на здравния статус. За съжаление, таблица трудности i.g. Сивкова не взема под внимание такъв компонент на ученето, като тестина на обектите, които преди всичко засягат здравето на ученика.

Съвременните проучвания дават представа за зависимостта на досадността на субекта от нейната трудност, макар и в някои теми, тези показатели се различават значително. Тези идеи позволяват да се комбинират два показателя в една - приемливостта на темата. Ето защо, таблица i.g. Сивкова може да бъде предложена алтернатива - мащаба на допустимостта на обектите, които биха взели предвид компонентите на трудността и течността на обучението, както и характеристиките на всеки образователна институция и учебната програма на всеки клас.

Скалата за приемливост се състои от колона от "ранг елементи", където се правят елементи, чиито редици са получени чрез резултатите от диагнозата на тяхната трудност и тезност по метода експертни оценки - алгоритъмът им е представен в допълнение 1. По своята структура, предложената скала на постоянната, и според съдържанието на променливата (вж. Таблица 1).

маса 1

Приемливост на пробната скала

Както може да се види от таблица 1, скалата се състои от пет групи трудности. Всяка група има оценка в точки - това е постоянен компонент на скалата, който не подлежи на промени. Съдържание (т.е. набор от елементи) на всяка група може да варира в зависимост от резултатите от диагнозата. Това е вариационна част на скалата.

В средното училище № 618 на Санкт Петербург получихме следната скала на допустимостта на обектите (вж. Таблица 2).

Таблица 2.

Скала за приемливост на обекта

Алгоритъм за рисуване на график

Тъй като във всяка образователна институция допустимостта на обектите ще бъде тяхна собствена, читателите не трябва да се копират в скалата от един към един. Препоръчително е да се диагностицира степента на трудност и терминост на елементите във вашето училище чрез експертни оценки.

Освен това при изготвянето на график има смисъл да ръководи класацията на нивото на работоспособност на учениците в различни класове в различни уроци по време на учебната седмица (виж допълнение 2).

Създадохме алгоритъм за подготовката на физиологично разумен график, който взема предвид действително изпълнените хигиенни изисквания. Този алгоритъм може да се използва за компилиране на график за обучение, както в училище с голям брой класове от втората и третата стъпка и в относително малка образователна институция. Алгоритъмът е предназначен за специалисти, които съставляват график без използване компютърна програма.

При използване на автоматизирани програми е препоръчително да се извърши подравняването на елементите, като се използва автоматизираната програма на етапите, базирана на предложения алгоритъм. Както показва практиката, тези програми могат да се използват само като спомагателен инструмент за:

  • първоначално подреждане на обекти с последващо ръчно завършване;
  • спестяване на информация и изведете го за печат.

След автоматизираното разпределение на обектите (програмата, като правило, поставя от 40 до 70%), счита, че изискванията за хигиена за графика на уроците са почти невъзможни, тъй като е необходимо не само да се доставят останалите непоколебими предмети, но и Да се \u200b\u200bпромени значително (до 60%) автоматизирано подравняване на елементите на принципа "Ако планирате".

Ето защо, когато се използва компютърна програма за съставяне на рационален график, като се вземат предвид действителните приложими хигиенни и педагогически изисквания, спецификата на образователната институция трябва да бъде приведена да се приведат да изпълняват етапи, използващи предложеното по-горе алгоритъм. В същото време всеки етап от подреждането на група обекти трябва да завърши с ръчно завършване с ориентацията върху горните изисквания. Това ще ви позволи по-рационално да направите график и, ако е възможно, да вземете предвид всички необходими условия.

Процедура за промяна на графика

Алгоритъм за корекция на училище

Ако е необходимо, променете графика през учебната година, който се случва доста често, трябва да работите с оформлението на таблицата. За да промените графика, е необходимо да изпълнявате следните изчисления и пермутации.

Предложеният метод за изготвяне на графика отнема време не повече от обикновено, но ви позволява да направите график компетентно, т.е.

  • направете своя собствена мащаба на допустимостта на обекти (трудности и уморени), за да компилират по-рационален график;
  • да се \u200b\u200bзапази в областта на заместник-директора на училището достатъчно голям брой необходими информация;
  • равномерно разпространение на уроци за всеки ден (избягвайте ненужния брой седмия уроци);
  • поставете всички класове от първия урок, който ви позволява да осигурявате обучение в един ритъм, защото всеки ден учениците ще започнат учебен ден едновременно;
  • регулират степента на сложност на училището, в зависимост от динамиката на седмичното изпълнение на учениците;
  • изразявайте уроците с почти без "прозорци" или с минималната част от тях, което ви позволява да поддържате ритъма на работата на учителя и да създадете благоприятен работен режим;
  • рационално алтернативни обекти с различен фокус;
  • рационално организирайте необходимите двойни уроци;
  • бързо променете и регулирайте графика поради необходимостта от производство.

Освен това, с този метод, той не изисква значителен брой хартиени заготовки (допълнителни таблици, особено ако в училище са много класове на втората и третата стъпка (от 30 или повече).

За да се подготви висококачествен график, който би съответствал на способностите на конкретна образователна институция, е необходимо да се извърши своя собствена диагноза на степента на трудност и тедивиране на обекти във всеки паралел. Експертите в този случай трябва да бъдат студенти, тъй като никой не може да каже какъв елемент е труден и досаден.

Критерии за хигиенната оценка на училищния график

1. Брой класове основно училище – ______.

2. Броят на началните и гимназиалните класове - ___________.

3. Общи класни стаи, използвани за провеждане на уроци - ___________.

4. Наличието на скала за приемливост за своята образователна институция: \\ t

5. Отчитане на мащаба на обектите в училищния график:

6. Разпределение на уроците на ден за учениците:

7. Всички класове започват да участват от първия урок:

8. Рационално редуване на обекти с различен фокус и сложност:

9. Спазване на счетоводството на изпълнението на учениците (в седмична динамика):

10. Рационално привеждане в съответствие на уроците за учителите:

11. Максимален брой уроци от учители на ден:

а) до 4 урока - ____ учители - ______ (%);

б) 5 и 6 урока - ____ учители - _____ (%);

в) 7 урока и повече - в ____ учители - ___ (%).

12. Наличен е методически ден (посочете броя на учителите):

а) с натоварване до 24 часа седмично - ____ учители;

б) с натоварване от 25 до 30 часа седмично - в ___ учители;

в) с товар за повече от 30 часа седмично - в ___ учители.

  1. Подгответе комплекти с имена на елементи от 5-ти до 11-ти клас.
  2. Учениците разпространяват комплекти с карти с имена на обекти и листа за отговори.
  3. Предложете да изберете карти с имената на тези субекти, които са проучени в този клас (чрез дневник).
  4. Изясняване на концепцията за "трудност" обекти.
  5. Предложете самостоятелно да определяте трудността на всеки елемент, като класирате, т.е. Сгъването на картите в реда на спускане на трудността на темата (картите се отлагат отгоре надолу, т.е. на първо място отгоре - карта с най-трудната тема е по-малко трудна и т.н.).
  6. Полученото подравняване на елементите за записване на лист отговори.
  7. След това разглобете и изяснявате концепцията за "тирност" на обекти.
  8. Извършете подобна процедура за класиране и напишете полученото подравняване на листа за отговор.
  9. Листове с отговори, за да събират и обработват (вижте формата на консолидираната таблица по-долу).

- Къде: MK - среден резултат по темата на един клас;

n - броя на класовете в изследваното успоредно;

или по формулата:

- където: mk - количеството точки по темата на един клас;

n - броя на учениците в един паралел, участващ в проучването.

Например, в паралели от 7 клас има пет класа, в диагнозата са участвали 130 души. Количеството точки на руския език в паралели е 469. Ние заменим във формулата на номера:

Вж. б. PR \u003d (469/130) \u003d 3.61 - средният резултат на руския език в паралелите от 7-ми степени е 3.61, децата възприемат този обект като доста труден.

По същия начин той се изчислява отделно средният резултат от всеки обект в тедивация.

След това има средна точка за допустимост за всеки предмет. За това има два показателя: средният резултат от трудността и средния резултат от циркулността, а след това резултатът е разделен на 2. Така се оказва средните точки на приемливост на темата.

Въз основа на получените данни се изготвя индивидуална таблица за приемливост на елементи от конкретна образователна институция за всеки паралел.

Обобщен формуляр за обработка на отговор

Допълнение 2.

Часовници за проучване през седмицата
В зависимост от нивото на работоспособност на учениците в различни класове

1 - най-благоприятните часове; 10 - най-неблагоприятното.

6-7 - намалено ниво на производителност (малки часовници за провеждане на уроци).

8-10 - Ниска производителност (неблагоприятни часове за провеждане на уроци).

Седмична дистрибуторска таблица на учителя

Допълнение 3.

Технология за оформление на урока

За да извършите оформление, трябва да готвите:

  • 4 отпадъци от картон (дебелина 1-2 mm, височина - 42 см, ширина - 22 см; височината на редовете е 0,8 cm, ширината на колоната е 1 cm) *;
  • 4 листа от цветна хартия (по-добри тонове) плътност 200 г / см и размери, подобни на размера на картонените листове;
  • широка прозрачна скоч;
  • шкафче (бумвинил), за да залепи картона в папката (ширина 4-5 см ширина; 49-50 cm дълъг);
  • pVA лепило (достатъчно силен, тип "Silac").

Алгоритъм Изпълнение оформление

1. За да залепите листите картон в "Clamshell":

2. На един лист цветна хартия поставете цялата необходима информация за подготовката на графика (поставяне на лист от картон № 1); Пример: Таблица на s. 27.

3. На следващите две листове цветна хартия, начертайте решетката, в продължение на три дни на всеки лист, 7 клетки за всеки ден (поставени на 2-ри и 3-ти картон).

4. На 4-ти лист за рисуване на твърда мрежа без разделяне в продължение на дни (клетки - подобни размери).

5. Готовите изтеглени листове са покрити с скоч, така че по време на разфасовки няма прекъсвания.

6. Направете слотовете в клетките от 0.5-0.6 cm.

7. Гледайте листа от хартия на страничните части на картонените листове на готовия "Clamshell". Mock е готов.

8. отделно направете многоцветни етикети с класа литературен (5-та "а", 7-ми "g" и т.н.), сумата се основава на товар от 5- или 6 дни от седмицата + допълнително на уроците, където класовете са разделени подгрупите. Размер на етикета: ширина - 8 мм; Височина - 15 мм.

9. Подгответе етикети от всеки цвят без литраторски клас за изчисляване на седмичния товар за всеки учител. Размери: Ширина 5 mm; Височина 12-14 mm.

Това оформление е удобно за работа, тъй като цялата необходима информация винаги е пред очите на заместник-директора. Тя може да бъде сгъната в папката, което го прави лесен за носене. В същото време етикетите ще се държат в слотове.

Информация, необходима за графика

___________ * Картонните размери са индивидуални, защото Във всяко училище различен брой учители, различен начин на работа (5 и 6-дневна учебна седмица). Ние предлагаме размери за график, базирани на 6-дневна учебна седмица и училище, в която работят 50-55 учители.

Това, което четете тук, е предимно глупост. Въпреки това, в някои места, по мое мнение, има разумни мисли, за съжаление такива места не се случиха толкова много и не мислят да го приемат там, където проблемите на теорията на графиците са ангажирани сериозно. Тези, които искат да напишат нещо по-добре, силно препоръчват да прочетете HU Book. T. "Цялостно програмиране и конци в мрежи", в допълнение, вероятно е заслужава да се прочетат лекциите на НМИК върху теорията на оптимизацията n.m. Novikova (където е в интернет, не помня). Сега активно се занимава с проблемите на теорията на оптимизацията, така че някой да се интересува и от тази тема, той винаги е щастлив да общува. Пиша [Защитен имейл]

Въведение Осем

1. Описание на технологичния регион. 10.

1.1. Формулировката на задачата за изготвяне на графика. 10.

1.1.1. Обща формулировка на задачата за изготвяне на графици. 10.

1.1.2. Формулировката на задачата за изготвяне на рапиране в заявлението към графика на обучителните сесии. единадесет

1.2. Анализ на съществуващите .. 12

1.3. Формулиране на проблема. Петнадесет години

2. Разработване на математически модел и практическо прилагане на система за автоматично планиране. шестнадесет

2.1. Математически модел на график в гимназията. шестнадесет

2.1.1. Обозначения. шестнадесет

2.1.2. Променливи. осемнадесет

2.1.3. Ограничения. деветнайсет

2.1.4. Целева характеристика. 21.

2.2. Методи за решаване на задачата. 22.

2.2.1. Напълно цялостен алгоритъм. 23.

2.2.2 Директен алгоритъм за целочислено програмиране. 28.

2.2.3. Техника за получаване на първоначална допустима основа. 32.

2.3. Характеристика практическо изпълнение Системи .. 36.

2.3.1. Изберете модел. 36.

2.3.2. Описание на входната информация. 39.

2.3.3. Разработване на информационна подкрепа. 41.

2.3.4. Характеристики на формирането на ограничения на математическия модел на задачата за изготвяне на графика. 44.

2.4. Резултати от програмата .. 45

2.5. Анализ на получените резултати. 49.

Заключения .. 50.

Литература. 51.

Приложение 1. Възможностите на софтуерните продукти на системите за планиране. 52.

ПРИЛОЖЕНИЕ 2. Изброяване на програмния модул за решаване на задачата за автоматично проектиране на графика. 61.

Въведение

Качеството на специалистите по обучение в университетите и особено ефективността на използването на научен и педагогически потенциал зависи в известна степен на нивото на организацията на образователния процес.

Един от основните компоненти на този процес е графикът на класовете - регулира ритъм на труда, засяга творческото завръщане на учителите, така че може да се разглежда като фактор за оптимизиране на ограничените трудови ресурси - преподавателски състав. Технологията на разработване на графика трябва да се приема не само като трудоемък технически процес, обект на механизация и автоматизация с помощта на компютър, но и като действие на оптимален контрол. Така това е проблемът за разработване на оптимални графици за обучение в университетите с очевиден икономически ефект. Тъй като интересите на участниците в образователния процес са разнообразни, задачата за изготвяне на графика е многокотерийна.

Задачата на изготвянето на графика не трябва да се разглежда само като определена програма, която изпълнява функцията на механичното разпределение на класовете в началото на семестъра, на което (програмите) използват и завършват. Икономическият ефект от по-ефективното използване на трудовите ресурси може да бъде постигнат само в резултат на усърдната работа по управлението на тези трудови ресурси. Графикът тук е само инструмент за такова управление и за най-пълната употреба е необходимо програмата да комбинира не само средствата за компилиране на оптималния график, но и инструменти за поддържане на оптималността си в случай на промяна в някои вход Данните, които по време на графика се считат за постоянни. В допълнение, оптималното управление на такава сложна система е невъзможно, без да се натрупва някаква статистическа информация за процесите, възникнали в системата. Следователно задачата за изготвяне на оптималния график е само част от сложна система за управление на процесите на обучение.

Многокритериални на тази задача и сложността на обекта, за който математически модел, определя необходимостта от сериозно математическо изследване на обекта, за да се увеличи функционалността на алгоритмите за събиране на графика без значително усложнение на модела и, в резултат на това, увеличаване на използваната памет и времето за решаване на проблема.


1. Описание на технологичния регион 1.1. Формулиране на задачата за изготвяне

Задачата на теорията на графиците в общата формулировка се счита за много привлекателна, въпреки че постигането на равномерен напредък към решението се дължи като правило с огромни трудности. Въпреки факта, че много много квалифицирани специалисти са участвали в задачите на теорията на графиците, доколкото никой не е успял да получи значителни резултати. Неуспешните опити за получаване на такива резултати, като правило, не се публикуват и това отчасти определя факта, че задачата продължава да привлича вниманието на много изследователи, които търсят простота на производството.

1.1.1. Обща формулировка на проблема с компилацията на задачите

В най-общата формулировка задачата за изготвяне на графика е следната. С определен набор от ресурси или сервизни устройства трябва да се извърши някои фиксирани задачи. Целта е да се гарантира, че свойствата на задачите и ресурсите и ограниченията им налагат ефективен алгоритъм за организиране на задачи, които оптимизират или се стремят да оптимизират желаната мярка за ефективност. Като основни мерки за ефективност се изследва дължината на графика и средното време на задачите в системата. Моделите на тези задачи са детерминистични по отношение на факта, че цялата информация, въз основа на която се вземат решения, са известни предварително.

1.1.2. Формулировката на задачата за изготвяне на рапиране в заявлението към графика на обучителните сесии.

Цялостната теория на графиците предполага, че всички устройства за обслужване (или процесорите) не могат да бъдат изпълнявани в този момент Времето на повече от една задача е, че за графика на обучителните сесии не е достатъчно, ако като процесор при разпространение на задачи за приемане на образователна публика. Така че в някои случаи в една аудитория може да има уроци с повече от една група едновременно, например общи лекции за множество нишки.

Следователно, когато прехвърля общата теория на графиците за планиране на обучителните сесии, бяха направени следните предположения:

Всички процесори (т.е. в случай на график за обучение - аудиторията) имат капацитет - номер C ≥ 1. Капацитетът на процесора определя броя на задачите, които тя може едновременно да "обработва" в момента (по отношение на Неадекватността на преработвателите би било интересно да се разгледа възможността, когато публиката не е като процесор, а учител, а като задача - поток от една или повече образователни групи, с които работи);

Като набор от задачи за дистрибуцията, действат обучителни дейности на учителя с учебни групи;

Моделът на времето в системата е дискретен; Предполага се, че цялото разпределение се повтаря периода по време на интервал от време;

Всички задачи се изпълняват за едно и също време, което е прието на единица вземане на проби от интервала от време;

Задачите са принадлежащи към обекти, които се приемат от обучителни групи и учители.

В резултат на това формулировката на задачата да изготви графика на обучителните сесии, както следва: "За даден набор от образователни одитори (в този случай под образователната публика се провеждат широк спектър от стаи, в който се провеждат обучение се провеждат сесии (от компютърна аудитория в спортната зала)) и даден набор от интервали от време (т.е. по същество, уроци или тренировъчни двойки), изграждат такова разпространение на обучителни сесии за всички обекти (учители и обучителни групи), за който избраният критерий за оптималност е най-добрият. "

1.2. Анализ на съществуващите PA

В момента секторът на пазара за проектиране на графика на класовете е представен от голям брой различни софтуерни продукти. В таблица 1. Представени са само някои от тези, които ми са представени.

Поради обективни причини системата за изготвяне на обезпечение в университета (което означава голям държавен университет) трябва да приложи редица основни функции:

Отчитане на желанията на учителите;

Консолидиране на задължителна аудитория;

Посочване на желаната аудитория;

Отчитане на прехода между корпуса;

Комбиниране на групи в потоци върху всякакви дисциплини;

Разделение в подгрупи;

След изготвяне на графика, ако е необходимо, замени учителите или променете времето на класовете.

Освен това съществуват специфични изисквания за функционалните възможности на софтуерния продукт за всеки университет.

Възможности Според мен най-популярните на руските софтуерни продукти са дадени в допълнение 1.

От списъка на списъка, може би само методистката програма повече или по-малко отговаря на необходимата функционалност на графика за подготовка в университета. Това състояние на нещата лесно се обяснява с факта, че училищното образование днес е по-стандартизирано (в смисъл на организацията на образователния процес) от университета. Такава стандартизация води до голямо количество потенциален пазар за продажби на софтуер и изплащане на развитието чрез продажба на голям брой копия на продукта при сравнително ниска цена.

В случай на университети, търсенето на системи за планиране може да е дори повече, отколкото за училищата, но делото се усложнява от големите специфики на организацията на образователния процес във всеки отделен университет. Създаването на унифициран софтуер не е възможно, а разходите за създаване на специализиран продукт в разработчиците на трети страни е неоснователно голям. Освен това предпоставката е наличието на "установен" график, което предполага способността да се замени учителите или времето на класовете. Досега софтуерен продукт не позволява достатъчно, за да направи това (въпреки че някои възможности са в "методист").

1.3. Формулиране на проблема.

Целта на тази работа е да създаде математически модел на графика в университет, който би позволил ефективно (в даден момент и с дадена степен на оптималност) за решаване на задачата за автоматично планиране и ще има гъвкавост (незначителни промени в. \\ T случай на промени в информацията за въвеждането) за адаптиране на системата в рамките на конкретна практическа задача. За известно опростяване на задачата при първоначалното проектиране на дизайна бяха направени някои предположения:

Графикът е съставен в размер на не повече от два двойки на ден (което е подходящо за случая на вечерна учебна форма);

Всички двойки се държат в един случай;

Задачата се поставя по отношение на линейно програмиране;

Не се произвежда допълнително разлагане на модела;

Всички моделни коефициенти и желаните променливи са интегрирани;

Задачата трябва да бъде решена с един от универсалните (независими от целочислените стойности на коефициентите) методите на цяло число линейно програмиране.


2. Разработване на математически модел и практическото прилагане на автоматичната система за компилиране 2.1. Математически модел на график в гимназията

Ние изграждаме математически модел на графика в университета по отношение на линейното програмиране. Ние въвеждаме нотацията и дефинираме променливи и ограничения.

2.1.1. Обозначения

Университетът има N обучителни групи, комбинирани в R потоци; R е броят на потока, R \u003d 1, ..., R, K R - броя на изследваната група в потока R, k R \u003d 1, ..., g r.

Разделянето на групите върху потоци се извършва въз основа на принципите:

1. Използването на две групи от същия одитиран фонд за техните лекции автоматично приема помещенията на тях в 1 поток (предполага се, че всички лекции на групите за обучение се държат заедно).

2. група (или част от нея), като единица на образователния процес в университет, може да влезе в различни потоци, но само един път всеки от тях.

3. Броят на нишките не е ограничен.

Класовете се провеждат в работни дни в интервали, които ще се наричат \u200b\u200bдвойки.

Обозначаваме:

t - номер на седмицата от седмицата, t є t kr, където

T KR - многобройни работни дни за група K R;

j - номер на двойки, J \u003d 1, ..., J;

J - общ брой двойки.

С всяка проучвателна група K R Flow R за една седмица, според учебната програма, се извършват класове W KR, от които са практични лекции и Q KR. Обозначаваме:

s R е броят на дисциплината в списъка на лекционните класове за потока r, s r \u003d 1, ..., s r;

q KR - числото на дисциплината в списъка с практическо обучение за групата K R, Q KR \u003d 1, ..., q kr.

Предполага се, че лекциите се извършват във всички поточни групи по едно и също време в една аудитория. След това, ако за известна дисциплина се извършва повече от една професия през седмицата, тази дисциплина се споменава в списъка на лекции или практически занятия толкова пъти, както е предвидено от учебната програма за всеки поток или група.

Учители

Нека P е номер (име) на учителя, p \u003d 1, ..., P. Ние въвеждаме ценностите за разглеждане и:

Изследването на учителите е планирано, преди да изготви графика на класовете, в резултат на което на този етап от количеството и може да се счита за посочено. За всеки учител p, p \u003d 1, ..., p, нейният одитен товар също е задача - n р часове на седмица.

Фонд за одит

Всеки поток заема може да се извършва само в някои аудитории (например практическа информация за компютърните науки може да се извършва само в дисплей). Нека бъде:

(A 1 R) - много аудитории за лекции по потока r;

(A 2 R) - много публика за практическо обучение по потока r;

А 1 R е броят на елементите на комплекта (A 1 R);

А2 R е броят на елементите на комплекта (A 2R);

А 1 R + A 2R е броят на възникващите аудитории на комплекти (A 1 R) ∩ (A 2R).

Одитният фонд се определя преди началото на графика, така че комплектът може да се счита за определен.

2.1.2. Променливи

Задачата на график е да се определи за всяка лекция (на потока) и практическите класове (в групата) на деня от седмицата и на двойката в този ден, като се вземе предвид изпълнението на конструираните по-долу ограничения и минимизиране някаква целева функция.

Въвеждаме следните желани булеви променливи:

=

В случай на график за група вечерна учебна форма J \u003d 2. Обобщение на модела за всички форми на обучение, виж, стр. 669.

2.1.3. Ограничения

За всяка група K R, всички видове одитирани работи трябва да се извършват през седмицата:

Всяка лекция S и практическото заетост на Q KR, съответно, за всички потоци R и всички групи K R, могат да се извършват не повече от веднъж на всеки ден t:

Ако променливите проникват всички видове класове с времето на тяхното задържане, тогава и обвързване с името на учителя.

Във всеки ден t и във всяка двойка j, p може да доведе не повече от една професия на една дисциплина на един поток или в една група:

И накрая, всеки ден, във всяка двойка броят на лекциите и практическите сесии не трябва да надвишава одитирания фонд в университета:

В допълнение, за всички набори от пресичащи се набори (A 1R) и (A 2R) трябва да бъдат изпълнени:

Представените отношения се изчерпват от безусловни ограничения, с които винаги се разглеждат, когато се приготвя графикът. Може обаче да бъдат специфични условия, преди всичко, провеждане на определени видове работа върху "върха" или на "долната" седмица (т.е. един академичен час на седмица). Други специални условия не са изключени, но не се считат за опростяване на модела.

2.1.4. Целева характеристика

Да поддържат изцяло научна, образователна работа, да се подготвят за класове, трябва да има университетският учител свободно време. Това условие е недостатъчно, но необходимо. Очевидно с свободното време той не трябва да има "разкъсан" режим, например, са "прозорците" между класовете със студенти, но ако е възможно, в напълно свободни работни дни. Това е еквивалентно на максимизиране на одиторския товар на учителите в онези дни, когато го имат (вж. (5)). В същото време обаче исковете за свободно време в учителите са неравномерни, тъй като имат различен творчески потенциал. Следователно е необходимо да се въведат коефициенти на претегляне, чрез които трябва да се вземе предвид съответният статут на учителя - неговите научни степени и право на собственост, позицията, заеманата позиция, научна и социална дейност и др. В някои случаи, въз основа на експертни оценки, е възможно да се използват индивидуални коефициенти на теглене, които да вземат предвид други фактори.

Така че, изберете критерия за качество за подготовката на графика на класовете под формата на максимизиране на претегления брой дни без одит за всички учители, които при определянето на фиксираната продължителност на работната седмица е еквивалентно на максимум пълно уплътняване на одитната тежест.

Помислете за изразяването на размера на одиторското натоварване на ден t на учителя p:


където m е произволен положителен голям брой; - желаната променлива на булев.

От (10) предполага, че ако, след това \u003d 1 и ако, след това \u003d 0.

Като се вземе предвид гореспоменатият смисъл, критерий за оптимизация при допълнителни ограничения (10), както и въвеждането на коефициентите на теглото на учителя, ние получаваме желания критерий за оптималност:


Въведената целева функция не е единствената възможна. Въвеждането на други целеви функции не променя ограниченията на математическия модел и методи за решаване на проблема, но може значително да повлияе на резултатите от изчисленията.

2.2. Методи за решаване на задачата

Задачата за максимизиране на линейната целева функция в дадена система за ограничения е задачата на линейното цяло число програмиране булева, тъй като всички рестрикционни коефициенти са предназначени поради спецификата на изходните данни на проблема; В допълнение, желаните променливи на математическия модел могат да приемат само две стойности. В момента има няколко възможни решения на този вид задача.

Методите за поръчани индексиране и модифицирани марки, основани на лагрангийското разлагане на оригиналния модел, са описани на редица единични задачи, решени съгласно методите за индексиране на поръчките или модифицирани марки. За съжаление броят на операциите на всеки метод не позволява полиномна оценка; В допълнение, размерът на таблицата на комплектите (междинни стойности) на методите се увеличава рязко с увеличаване на размера на решаването на проблема, което е неприемливо в нашия случай. Възможно е промяната в алгоритъма за разлагане за конкретен математически модел да намали измерението на таблиците, но досега няма такъв алгоритъм.

В това отношение, като методи за решение, описани в модификацията на симплексния метод за случая на задачата на целочислено линейно програмиране. В общия случай броят на операциите на симплексния метод не позволява полиномна оценка (класът на задачите дори е показан, за който броят на операциите е O (EN)), но за случая на нашата задача, средният брой на операциите позволяват полиномната оценка: O (N3 m1 / (N-1)) (N - броя на променливите; m - броя на ограниченията).

2.2.1. Напълно цялостен алгоритъм

Този алгоритъм се намира напълно цяло число, защото ако таблицата на източника се състои от цели числа, тогава всички таблици, получени по време на работа на алгоритъма, съдържат само цяло число елементи. Подобно на метод с двоен симплекс, алгоритъмът започва да работи с двойна маса. Ако a i 0 (i \u003d 1, ..., n + m; a i 0 е коефициентите на целевите функции) - не-отрицателни цели числа, тогава задачата е решена. Ако за някакъв ред a i 0

Оставете задачата за цяло число линейно програмиране:

максимално

при условия

Условия (12) могат да бъдат записани като


Да предположим, че за t \u003d 0 (т.е. за първоначалната таблица), всички IJ са цели числа и колони (J \u003d 1, ..., N) - лексикографски положителни. Тогава всички колони над изчисленията остават лексикографски положителни.

Преди да определите метода за получаване на допълнително ограничение от низ за производство, въвеждаме ново представяне на числа. Нека [X] означава най-голямото цяло число, което не надвишава x. За всеки номер y (положителен или отрицателен) и положителен може да бъде написан:

където (r y е неотрицателен баланс на закрепен йо). В частност, . Следователно, ако, тогава r \u003d 1. ако, тогава r \u003d 0.

Приложеното допълнително неравенство следва да се извършва при всяко цяло решение на проблема (12). Помислете за някакво уравнение в T - таблица (индекс на понижаване на линията) с 0


където X е съответният компонент на вектора, и текущите не-свързващи променливи. Можете да изразявате x, 0 и j, използвайки представеното по-горе представителство (14):

Поддържащи изрази (16) и (17) в (15) и пренавиване на членовете, ние получаваме:

Тъй като, и на променливите X и изискването за негативност, лявата част на уравнението (18) винаги е неотрицателна. Помислете за изразяването от дясната страна, сключена в къдрави скоби. Коефициентите в този израз са цели числа, а променливите са обект на изискването за цяло число. Ето защо всички изрази в скоби трябва да бъдат цяло число. Я обознавам с s, т.е.:

.

Цялостната слаба променлива s е неотрицателна. Всъщност, ако S е отрицателен, т.е. Това ще отнеме ценности -1, -2, ..., тогава умножаването на тези би направило цялото право на уравнение (18) отрицателно, докато лявата страна не е неотрицателна.

Разгледайте два случая и. За и. Заместване на израз за X от (15) до уравнение (19), ние получаваме:

Уравнение (21) трябва да се извърши за всяко цяло число на проблема (12). Имайте предвид, че ако 0 в уравнение (21). Следователно уравнението (21) може да се използва като главен низ в метода Simplex. По-специално, винаги можете да избирате доста големи, така че водещият елемент в реда (21) да е равен на -1, който ще запази целевата таблица. Изборът на подходящо ще повлияе на скоростта на сближаване на алгоритъма. На първо място, ние описваме самия алгоритъм. Като първоначално е необходимо да се вземе двойно допустимо решение, което може да бъде получено чрез добавяне на границата на XN + M + 1 \u003d M - X 1 - - ... - XN 0, където m е достатъчно голяма постоянна, и извършване на една итерация с добавената линия и с лексикографски минимална колона, взета като водеща. Алгоритъмът се състои от следните стъпки:

Стъпка 0. Започнете с двойно допустима матрица A 0 в уравнение (13), елементите на които са цели числа (матрицата А 0 може да съдържа невроблото елементи, за това виж, стр. 306).

Стъпка 1. Сред редовете с I 0 0 (i \u003d 1, ..., n + m), тогава задачата е решена.)

Стъпка 2. Изберете (Избирателното правило ще бъде описано допълнително) и ще напише допълнителна линия в долната част на таблицата

Тази линия е избрана като олово.

Стъпка 3. За да задържите стъпка от двоен симплекс метод, изтрийте допълнителен ред и се върнете към стъпка 1.

Доказателство за крайника на алгоритъма виж, стр. 303-304.

Избирателното правило е формулирано, както следва.

Стъпка 0. Позволете да се произведе ред с V номер.

Стъпка 1. Да - Лексикографски минимална колона сред колоните с VJ

Стъпка 2. За всеки VJ - най-голямото цяло число, така че (лексикографски по-малко).

Стъпка 3. Позволявам, и (линия V - производство). Тогава

.

Стъпка 4. Поставете за VJ

Елементът на избрания по-горе селекция ви позволява да направите водещ елемент, равен на -1, докато двойната допустимост на таблицата е запазена и в същото време нулевата колона ще бъде възможно най-много за намаляване.

2.2.2 Директен алгоритъм за цялостно програмиране

Терминът "прави", приложен към цялостен алгоритъм за програмиране, обозначава метод, който води до оптимално решение, като получава последователно "подобрени" решения. Всяко от тези решения е допустимо в смисъл, че удовлетворява както линейните ограничения, така и състоянието на цели зверс. Един от вероятните предимства на алгоритъма е способността за прекъсване на изчисленията, преди да се получи оптимално решение и да се използва най-доброто от получените разтвори като приблизителни. В допълнение, можете да използвате директен алгоритъм в съединение с двойни алгоритми, за да получите различни композитни алгоритми, които могат да продължат от фазата, която дава дублива решения на фазата, която дава директно допустими разтвори.

Естественият прецедент за директния алгоритъм е напълно цялостен алгоритъм, тъй като в процеса на този алгоритъм се получава последователност от двойно допустими цели за цяло числа. Трябва да се напомни, че напълно цялостен алгоритъм на Homori е модификация на метода с двойния симплекс. Основната разлика на този алгоритъм е, че като главна линия се използва за намаляване на хоморието с водещ елемент, равен на -1. Този клип се получава от продуциращия низ, който се дефинира като един от възможните водещи редове в метода на двойния симплекс. Използването на такова прекъсване като водеща линия ще спести след итерация двойната допустимост и таблицата с цели числа.

Оказва се, че е възможно да се променя симплекс-методът да бъде модифициран по такъв начин, че да се получи алгоритъм, който запазва пряката валидност и интелигентност на таблиците. За да опишем изчислителната процедура, обмислете следната задача на цялостното програмиране:

максимално

Да предположим, че колоната е избрана като главна линия в итерацията на симплексния метод, т.е. За всички редове I, в които А е\u003e 0. Преди да извършите процедура за елиминиране на Gauss в симплексния метод, добавете дръжката до таблицата, получена от реда v:

където j е множество индекси на небразни променливи в (22), s k - нова (основна) слаба променлива и - неопределена (временна) положителна константа.

Обърнете внимание, че ако поставите \u003d a vs, клипката (23) ще има две важни свойства. Първо,

Това означава, че пряката валидност на таблицата ще бъде запазена, ако използвате клипа (23) като водеща линия. Второ, т.е. Задвижващият елемент е 1 (ако клипът се използва като водеща линия). Лесно е да се провери (чрез изучаване на формулите за промяна на основните променливи), че превръщането на симплексната таблица с единичен задвижващ елемент запазва цяло числото на симплексната маса.

Тези идеи служат като основа на директния алгоритъм в целочислено програмиране:

Стъпка 0. Стартирайте от таблицата с колона, в която A i 0 0 (I 1) и всички елементи A 0 J, IJ и A I 0 са цели числа.

Стъпка 1. Проверете изпълнението на състояния A 0 J0 (J 1); Ако са завършени, краят, сегашното решение е оптимално; Ако не - отидете на стъпка 2.

Стъпка 2. Изберете водещата колона с 0 s 0. Този низ се използва за намаляване на Homori.

Стъпка 3. Вземете парче Homorie от низа за производство и го добавете в долната част на таблицата, т.е. Добавете към ограниченията на проблема уравнение (23), където.

Стъпка 4. Проведете преобразуването на таблицата с помощта на клипа (23) като главен низ. Слабата променлива S K в (23) ще стане несъмнете. Обратно към стъпка 1.

Доказателство за крайника на алгоритъма виж, стр. 346-353.

Тъй като изборът на производствения низ е задача на нетривиална, очевидно, трябва да има няколко линии, които могат да служат като производство. В предварителните аргументи се използва линия за преглед на симплексния метод като производствена линия. Тази линия винаги дава клип, който е водещ низ с водещ елемент, равен на един. Очевидно има и други линии в таблицата, от която може да се получи прекъсване със същите свойства. Да предположим, че намаляването се получава по формулата:

където се определя от състоянието

Ние определяме комплекта v (s) като набор от редове, отговарящи на условията (25).

Следващите два правила са примери за допустими правила за избор на низ за производство:

Правило 1.

1. Направете сериен списък на низовите индекси, така че индексът на всеки ред да го влезе поне веднъж. Отидете на 2.

2. Ако списъкът е празен или не съдържа единичен индекс от v (s), върнете се на 1; В противен случай намерете първия индекс V (и) в списъка. Изберете низ V като продуциране. Индекс на дисплея V и всички предишни индекси. Отидете на 3.

3. Последователно изберете низ V, взет в 2., като продуциране, толкова дълго, колкото v v (s). Веднага щом v v (s), се върнете на 2.

Правило 2.

1. Нека V (и) са зададените V (и), съответстващи на T-та таблица. Ако V (и) съдържа повече от един елемент: vt (s) \u003d (v 1, v 2, ..., vk +2), след това като продуциране, за да изберете такъв низ, който в комплектите от комплекти V 1 (S 1), v 2 (s 2), ..., v t (s) низът се появява по-рано (не по-късно) от останалите и след това продължава до V (и); Отидете на 2.

2. Последователно изберете низ V, взет в 1., докато. Веднъж, обратно до 1.

2.2.3. Техника за получаване на първоначална допустима основа

Решението на всеки от горните методи може да бъде направено само ако линейната задача за програмиране е или директно или двойно допустима. Такава допустимост означава наличието на първоначална допустима база в първоначалната задача. Ако задачата е допустима и директно и двойно, тогава полученият разтвор е оптимален. В повечето случаи, след като задачата е зададена, тя се оказва, че тя не е разрешена нито директно или двойна. Затова даваме алгоритъм за получаване на първоначална допустима основа.

Нека проблемът с линейното програмиране се записва в канонична форма:

минимизирайте

при условия

Всички b i Мога да направя не-отрицателен, умножаващ, ако е необходимо, съответното уравнение на -1. След това може да се добави към всяко уравнение изкуствена променлива (изкуствените променливи трябва да бъдат не-отрицателни), така че първоначалните променливи да се образуват първоначална основа:

Изкуствените променливи могат да бъдат получени от слаби променливи, използвани за превръщане на неравенствата в уравнението. Всъщност, ако първоначалните ограничения на линейния програмен проблем са дадени под формата на неравенство:

че, добавяйки слаба променлива за всяко неравенство, получаваме:

Ако b i 0, тогава s i може да се използва като първоначални основни променливи.

Разликата между изкуствените променливи и слабите променливи s i е както следва. В оптималното решение на проблема всички изкуствени променливи трябва да бъдат нула, тъй като в оригиналната задача няма такива променливи. От друга страна, е напълно възможно в оптималното решение, слабите променливи ще имат положителни стойности. За да може изкуствените променливи да бъдат равни на нула, можете да представите целевата функция, както следва:

където m i е доста големи положителни числа. Идеята на метода съответства на факта, че изкуствените променливи са прикрепени към съзнателно големи цени. Този метод води до нулеви стойности на изкуствени променливи в оптимално решение.

Има и друг начин да получите първоначална допустима база. В този метод, както при първите, изкуствените променливи се използват като първоначални базови променливи. Разглежда се нова целева функция, която е количество изкуствени променливи. Необходимо е да се сведе до минимум използването на Z - уравнение като едно от ограниченията. Ако първоначалната система на уравнения има допустимо решение, тогава всички изкуствени променливи трябва да станат нула. Следователно минималната стойност трябва да стане нула. Ако първоначалната система на уравненията няма допустими решения. Ако, тогава можете да намалите целевата функция и да използвате оптималната база форма като първоначална допустима база, за да минимизирате Z. В литературата такъв метод се нарича двуфазен симплекс метод. При първата фаза на метода има допустима основа чрез минимизиране на втория - Z е сведен до минимум и се получава оптимална основа.

Помислете за пример следната линейна програма за програмиране:

минимизирайте

при условия

където всички b съм не отрицателен.

Ако въведете изкуствени променливи и нова целева функция, ние ще получим задачата:

минимизирайте

,

при условия

Ако отричате всички уравнения, съдържащи b i, от -form, получаваме:

-Z.

където системата (26) е диагонална сравнително Първата фаза на метода Simplex е сведена до минимум при условия (26). На знака Z ограниченията не се наслагват. В процеса на изчисление, веднага след като изкуствената променлива стане нерасова и нейният коефициент да е положителен, самата променлива и съответната колона за векторна колона от по-нататъшни изчисления се изключват.

2.3. Характеристики на практическото прилагане на системата

На практика не е много удобно да се работи с информация във формата, в която е дефинирана в математическия модел. Ето защо, преди всичко, ние определяме с метода на организиране на данни или модел на данни.

2.3.1. Изберете модел

Моделът на данните е набор от споразумения за методите и средствата за формализирано описание на обектите и техните връзки, свързани с автоматизацията на системните процеси. Видът на модела и видовете структури за данни, използвани в него, отразяват концепцията за организацията и обработката на данни, използвани в СУБД, подкрепящи модела, или в езика за програмиране, който създава програма за обработка на приложения.

Като част от решаването на задачата е необходимо да се създаде такъв модел на данни, при който количеството на подкрепящата информация би било минимално, съществува основна възможност за мултиплеър достъп до данни и ще бъде предоставена високо ниво защита на данни.

Понастоящем има три основни подхода за формиране на модел на данни: йерархична, мрежа и релационна.

Йерархична организация организация

Йерархичната база данни се състои от поръчан набор от дървета; По-точно, от поръчан набор от няколко случая на един вид дърво. Типът дървесина се състои от един "корен" тип запис и поръчан набор от нула или повече видове опори (всеки от които е някакъв вид дърво). Типът дървесина като цяло е йерархично организиран набор от типове запис.

Автоматично поддържа целостта на препратките между предците и потомството. Основното правило: Никой потомък не може да съществува без ваша родителя ви. Обърнете внимание, че подобно на поддържането на целостта върху връзките между записите, които не са включени в една йерархия, не се поддържа.

Мрежов метод на организацията

Мрежовият подход към организацията на данните е разширяване на йерархичната. При йерархични структури, потокът на потока трябва да има точно един прародител; В мрежовата структура на данните, потомък може да има произволен брой предци.

Базата данни на мрежата се състои от набор от записи и набор от връзки между тези записи и ако кажем по-точно, от набора от копия на всеки тип от набора на база данни от типове запис и набор от случаи на всеки тип от даден тип набор от видове комуникации.

Видът на комуникацията се определя за два вида запис: предшественик и потомък. Пример за вида на комуникацията се състои от един случай на вида на записа на прародателите и поръчан набор от копия на типа запис на запис. За този тип комуникация L, трябва да се извършат следните две условия с вида на запис на предшественика P и вида на записания тип C.

1. Всяка инстанция на тип Р е предшественикът само в един случай L;

2. Всеки случай C е потомък не повече от един случай L.

Релационен метод на организацията

Основните недостатъци на йерархическите и мрежовите видове модели на данни са:

1. Твърде трудно за използване;

2. всъщност е необходима познаване на физическата организация;

3. Приложните системи зависят от тази организация;

4. Техната логика е претоварена с подробности за достъпа до базата данни.

Най-честото тълкуване на модела за релационни данни, очевидно принадлежи до момента, който го възпроизвежда (с различни разяснения) в почти всичките си книги. Според датата, релационният модел се състои от три части, описващи различни аспекти на релационния подход: структурната част, манипулацията и холистичната част.

В структурната част на модела е поправено, че единствената структура на данните, използвани в релационната база данни, е нормализирано N-arous отношение.

В манипулирането на модела, два основни механизми за манипулиране на базата данни са одобрени - релационни алгебрия и релационни смятане. Първият механизъм се основава главно на класическата теория на комплектите (с някои разяснения), а вторият е в класическия логически апарат за изчисляване на предикатите от първи ред. Основната функция на манипулацията на релационния модел е да се осигури връзката на всеки конкретен език на релационните бази данни: езикът се нарича релационна, ако няма по-малко изразителна и сила от релационната алгебра или релационна калкула.

И накрая, в неразделна част от модела на релационните данни се записват две основни изисквания за почтеност, които трябва да се поддържат във всички относителни СУБД. Първото изискване се нарича изискване за почтеност на целостта. Второто изискване се нарича изискване за почтеност върху връзките.

След предварителния анализ на математическия модел на системата и методите на организацията за данни, както и организацията, която се предлага на пазара на софтуер (йерархични и мрежови методи на организацията, поемат подреденият подход към организацията на данните и днес там са такива dbms (например, Jasmin или Inforix Dynamic Server), но в момента на развитието на възможността за тяхното използване не е, в същото време има много "мощни" релационни DBMs (например Oracle 8i)) изборът е направено в полза на относиращия метод за организиране на съхранение на данни.

2.3.2. Описание на входната информация

Цялата информация, необходима за решаване на задачата, се определя до повторенията на методите за решаване на задачата на графика. За да се опростява, се смята, че посочената информация е постоянна през целия период, за който е съставен графикът.

Без да загубите определена степен на обща задача, е възможно да се определи определен набор от входни данни, необходими за формирането на ограничения и решаването на проблема, и в същото време общите за всички сортове практическо прилагане на системата. Поради спецификата на задачата (възможността за сравнително лесна адаптация на математическия модел за случай на практическо прилагане в рамките на конкретен университет), формите на документи на информацията за вход не са разработени. Входните данни са описани в таблица 2.

Таблица 2. Описание на данните за въвеждане

Име на реквизитите Характерни реквизити

вход документи

Тип Макс. Дължина Точност

Фамилия, първо име, покромишление на учителя;

Учител по телефона за контакт;

Академична степен;

Стипендия;

Име на групата;

Числен състав на групата;

Името на четния курс;

Брой на одиторските часове;

Номера на аудиторията;

Информация за публиката;

Името на темата прочетено от учителя;

Броя на групата, в която се чете субектът;

Информация за аудиторията, в която се чете темата.

В допълнение към тези данни, за математически модел са необходими някои други допълнителни данни, които могат да бъдат получени след анализ на входната информация.

2.3.3. Разработване на информационна подкрепа

Ние ще анализираме информацията за източника, за да определим състава и структурата на информацията за последващото формализация и изграждане на информацията и логическия модел на данни (ILM). Горният математически модел, както и допълнителна информация от описанието на темата, позволяват да се определи ролята на детайлите в взаимосвързаната информация, съдържаща се в документа. Въз основа на такъв анализ ще установим функционалните зависимости по детайлите в съответствие с препоръките и изискванията за нормализация на данните, след което те ще извършат самата нормализация. Целта на нормализиране е да се намали (но не непременно да елиминира) съкращаване на данни. Въпреки това, понякога някои съкращения на данни са предназначени за повишаване на ефективността на програмата. Нека дадем определението за три форми на нормализиране на базата данни.

Таблицата е в първата нормална форма. (1NF) Ако има първичен ключ, всички атрибути са прости типове данни и няма повтарящи се атрибути. За да съответства на 1NF, атрибутите трябва да бъдат атомни стойности и не трябва да се повтарят групите на атрибути. Всички групи за повтарящи се атрибути трябва да бъдат прехвърлени в нова таблица.

Таблицата е във втората нормална форма (2NF), когато е в първата нормална форма и всеки кадър атрибут зависи напълно от първичния ключ (т.е. в 2NF, всеки нексиански атрибут трябва напълно да зависи от първичните клавишни полета).

Таблицата е в третата нормална форма (3NF), ако е в 2NF и не съдържа транзитивни зависимости. Преходните зависимости са функционалните връзки между неселективните атрибути. Всеки не-селективен атрибут, който функционално зависи от друг неселективен атрибут на една и съща таблица, създава транзитивна зависимост и трябва да бъде преместена в друга таблица.

Получените функционални зависимости са доста тривиални и очевидно текат от математическия модел, така че в бъдещето, описващо, че не са дадени. Също така в по-нататъшно презентация се спускат междинни степени на нормализация. Ето защо представяме само крайния инфологичен модел на базата данни (виж фиг. 1.).


Фиг. 1. Инфологична задача на базата данни Задача Задача




2.3.4. Характеристики на формирането на ограничения на математическия модел на задачата за изготвяне на график

Изготвяне на ограничения (1) - (7) на математическия модел на проблема с рисуването на графика е достатъчна тривиална задача, решена с прости SQL заявки и не изисква предварително анализ на входната информация. Затова ще се съсредоточим само върху ограниченията на формуляра (8).

Обърнете внимание, че в математическия модел на системата, четният обект е "обвързан" не към специфична аудитория от поведението, но до някои многократни публика. Подреждането на специфичните номера на аудиторията се извършва след решаване на задачата. Ограниченията на формуляра (8) имат смисъл само когато се пресичат множествата от публиката. В математическия модел на системата се предлага да се вземат предвид всички уникални пресичащи се двойки под формата на ограничения. Броят на тези кръстовища може да бъде голям, което може да доведе до голям брой допълнителни ограничения, които отрицателно влияят върху скоростта на алгоритмите за оптимизация. Възможно е обаче значително да се намали броят на допълнителните ограничения.

Помислете за случай на линейно подреждане на пресичащи се набори (виж фиг. 2.).

Фиг.2. Линейни пресичащи се набори

В случай на такъв набор от аудитории за провеждане на класове общ брой Ограниченията на формуляра (8) ще бъдат N-1, където п е броят на множествата. Гореописаното подреждане на пресичащите се комплекти може да се нарече линейно, тъй като в същото време се пресичат комплектите се намират в линията. Можете да помислите за случая, когато комплектите се пресичат помежду си по произволен начин (виж фиг. 3.).

Фиг.3. Произволно пресичащи се набори

Броят на ограниченията на формуляра (8) в този случай може да бъде намален чрез извършване на формирането на тези ограничения по аналогия с линейно разположение на комплекти. За да направите това, е необходимо да се приеме, че например комплектите B и d се пресичат с един комплект, определят площта на пресечната точка на такъв набор с набор А, след което те извършват същите действия с получената зона за пресичане.

Прочетете повече за това, стр. 210.

2.4. Резултатите от програмата

С практическото прилагане на системата се обръща специално внимание на задачата за писане на "основната" система - методи за решаване на проблема и процедурите за формиране на ограничения. Тъй като задачите не са настроени да пишат пълнофункционален търговски продукт, частта за интерфейс е написана с цел изпитване на ядрото и определяне на границите на приложимостта на алгоритмите, следователно включва минималната функционалност и не съдържа предложенията на входа модули.

Ядрото на системата и частта на интерфейса бяха написани на Delphi 6.0. Методи за решаване и алгоритми за формиране на ограничения се записват, като се използват обектно-ориентираните технологии, които ще им позволят лесно да ги капсулират в допълнителни модификации на системата, без да нарушават целостта на взаимодействието на различни алгоритми. Текстът на обектите на методите за решаване на проблеми е даден в допълнение 2. Базата данни е изпълнена на Oracle 8i DBMS, заявките към него се извършват в PL / SQL.

Изходните данни на задачите се записват в таблиците на базата данни, използващи формуляри за заявка. Една от тези форми е показана на фиг. 3.

Фиг.3. Форма на първоначални данни

Данните, получени в резултат на решаването на проблема, не е достатъчно, за да се изведе графикът на класовете веднага след решаването на проблема, поради което е написан модулът за пост-обработка на данни. Крайният график на класовете се показва като таблица, пример за това, което виждам. четири.

Фиг. 4. Пример за класове

Алгоритмите за решаване на проблеми бяха тествани върху различни проби от източника. Изпитването се извършва на компютър с процесор Intel Pentium 350 MHz, Oracle 8i DBMS е монтиран на двукобийствен сървър: 2 процесора Intel Pentium II 350 MHz, RAM 384 MB; Като комуникационен канал се използва капацитет до 100 Mbps. Като данни от изходния източник, като реални данни за групи, учители и четливи теми на вечерното обучение на CHSU за 1999/2000 академични годинии произволно формирани данни за източниците (четимите теми на случаен принцип определят публиката за провеждане на класове). Средно, той е произведен от 5 до 10 теста за всеки размер на теста на източника. В резултат на това е даден данните, показани в таблица 2. На фигура 5. Дава се графика на средното време на решаване на проблема от броя на четимите елементи и броя на групите.

2.5. Анализ на получените резултати

Анализ на получените данни могат да бъдат направени някои заключения за функционалността на алгоритмите за решения и математическия модел, техните недостатъци и приложения.

Първо, използваният математически модел съдържа "допълнителни" ограничения, съществуването на което се дължи на линеен цялостен модел, освен това, всеки четлив на потока (потокът може да се състои от една група) е поставен в съответствие с 12 (за. \\ T Случай на събития) на променливи, всяка от които е булева променлива. Второ, времето за решаване на проблема рязко се увеличава с увеличаване на входните данни. Това се дължи на рязкото увеличаване на броя на променливите и ограниченията в модела, в резултат на което се увеличава измерението на масивите и съответно времето за решаване на проблема. Трето, формализирана математическа задача обхваща само задачата да изготви графика за ученици от вечерно обучение, без да се вземат предвид преходите между корпуса. Счетоводство допълнителни изисквания Това ще увеличи броя на ограниченията на проблема, който ще повлияе отрицателно на скоростта на алгоритмите за разтвор.

Привличаме вниманието към нарастващата разлика между минималната и средната стойност на проблема за решаването на проблема, тъй като измерението на проблема се увеличава. Тази разлика съответства на това как "успешното" (най-близко оптимално) намери първоначалното допустимо основно решение на проблема. Следователно времето за решаване на проблема може да бъде значително намалено, "добре" намиране на първоначална основа допустимо решение. За да търсите такова решение, най-добре е да се използват алгоритми за евристични и разлагането.


Заключенията по време на работата са построени по математическия модел на графика в университета за случая на вечерна форма на обучение без преходи между загражденията, методите за решаване на задачата на задачата и модел за съхраняване на изходните данни на задачата е разработена. Моделът за съхранение на данни, моделът на модела на математически формализацията и методите за решение бяха изпълнени като софтуерни модули. Скоростта на работа на алгоритмите беше тествана върху хетерогенните набори от източници на данни, в резултат на което бяха определени възможностите и областите на прилагане на алгоритми.

Въз основа на резултатите от теста, беше установено, че със скоростта на работа алгоритмите за решаване на проблеми са силно зависими от обема на входната информация и първоначалното допустимо решение, и следователно значително по-ниско от евристичния и разпадването. Но в случай на евристично решение на него (решения), оптималността (или постигането на глобален максимум) може да бъде доказана само с пълно търсене на всички възможни варианти (ясно е, че в този случай ще бъде времето за отваряне на алгоритъма Много големи), затова повторенията на евристичните алгоритми са прекратени при достигане на някаква максимална (не може да се каже, местна или глобална) стойност. Разтворът на такъв алгоритъм може да бъде близо до оптималния, но не и оптимален. В този случай, за постигане на глобален максимум, е възможно да се използва метод на решение, разглеждан в работата, тъй като оптималът може да бъде постигнат в няколко повторения на описаните методи за решение.


Литература

1. Lagosa B.A., Petropavlovskaya A.V. Комплекс от модели и методи за оптимизиране на графика на класовете в университета // Икономика и мат. Методи. 1993. Т. 29. Vol. четири.

2. HU T. Цилвно програмиране и конци в мрежи. М.: Mir, 1979.

3. LeBedev S.s.s. Модифициране на метода на огъване частично цяло число линейно програмиране // Икономика и подложка. Методи. 1994. Т. 30. Vol. 2.

4. Lebedev S.s., Zaslavsky A.A. Използване на специален метод на клонове и граници за решаване на цяло число, генерализиран транспортен проблем // Икономика и подложка. Методи. 1995. Т. 31. Vol. 2.

5. Zaslavsky A.A. Използване на стратегията на стратегиите на променливи в общи задачи Целочислено линейно програмиране // Икономика и подложка. Методи. 1997. Т. 33. Проблем 2.

6. LeBedev S.s.s. Относно метода за поръчване на индексиране на линейното програмиране // Икономика и подложка. Методи. 1997. Т. 33. Проблем 2.

7. Lebedev S.s.s., Zaslavsky A.A. Метод метод за програмиране на булеви задачи // Икономика и подложка. Методи. 1998. Т. 34. Vol. четири.

8. Zaslavsky A.A. Комбиниран метод за решаване на проблеми на раницата // Икономика и мат. Методи. 1999. Т. 35. Vol. един.

Приложение 1. Възможностите на софтуерните продукти на системите за планиране.

Отстатус Автор-2 + е предназначен за бърза и удобна подготовка на графици от класове и ги придружава през цялата учебна година.
НОВторо-2 + - универсална система. Има няколко версии на програмата, предназначена за учебни заведения:

Изпълнение и специализирана (математическа, лингвистична и др.) От училища, ликлиум, фитнес зала;

Технически училища, колежи и колежи;

Университети с една образователна сграда;

Университети с няколко образователни сгради (като се вземат предвид движенията между корпусите).

НОВторото-2 + ви позволява да направите възможно възможността да се даде възможност да се даде възможност лесно лесно да се автоматизира предизвикателствата на графика. Системата помага лесно да се спре, копач и натиснете под формата на удобни и визуални документи:

Класове за клас на Pascript (групи за обучение);

Графици на PRPHes;

График на аудиторията (шкафове);

Образователни планове;

Тарифа.

НОВторият-2 + има гълъб дизайн и DPU. Програмата е доста лесна за научаване. Има подробно ръководство, което описва всички възможности и начини за работа с програмата.
Псrogram работи на всички IBM-съвместими компютри, започвайки с 486dx с 4MB RAM (и по-висока), отнема около 1 MB на твърдия диск. Операционна система: MS DOS или Windows 95/98.
Вworkfire зависи от размера на образователната институция и силата на компютъра. Пълното изчисление и оптимизиране на средния график на училище (30 класа, 60 учители, две смени) отива около 15 минути на компютър Celeron-400.

Псрогмата се характеризира с уникален и много мощен алгоритъм за изграждане и оптимизиране на графика. Полученият автоматичен график на практика не изисква ръчно усъвършенстване, т.е. дори и с много сложни и твърди ограничения, всички възможни класове се поставят автоматично. Ако има неразрешими противоречия в източниците, те могат да бъдат открити и елиминирани с помощта на специален анализ.

НОВторото-2 + позволява:

Оптимизирайте "Windows" в графика;

Да вземат предвид необходимия диапазон от дни / часове за класове и учители;

Оптимално да направят класовете в класната стая (аудиторията), като се вземат предвид характеристиките на класовете, елементите, плексибствата и капацитета на шкафовете;

Да вземат предвид най-щастливите и желанията на специалисти на пълно работно време и членове на непълно работно време;

Лесен за свързване ("сгънат") няколко класа (групи за обучение) в потоците на контакти на всякакви класове;

Страница Класове Изследователи на приятел език, физическа култура, TPU, информатика (и други субекти) за произволен брой подгрупи (до десет!);

Въведете (освен главните свещеници) специални помпи и избираеми;

Оптимизиране на еднородността и трудолюбието на графика.

2. Система "График" Ver 4.0 Москва - Lintech

Необходимо е незабавно да се отбележи, че програмата "График" е фокусирана върху съставянето на училищния график, използването на университетски и колежи е възможно само с някои резерви. Планирането се извършва в рамките на условията на условията, определени в стъпките за въвеждане на първоначални данни. Пълният списък на възможните условия е даден по-долу:

- ОТНОСНОмаксималният номер на урока е свързан - т.е. Броя на уроците, максимално допустимо на ден;

- R.автоматично разпределение на натоварването на учителите между дните на графика;

- R.avtomerity на натоварването на класа на класовете между дните на графика;

- ДА СЕпрозорци на он-онции в графика на учителите;

- Псрогмът отчита факта, че класовете могат произволно да се обединят и смачкват (класовете могат да бъдат комбинирани в потоци или смачкване в по-малки подгрупи, а тези подгрупи, от своя страна, могат да служат като основа за комбиниране в по-големи групи. Пример: в училище № 1859 Има 2 старши клас, но във всеки един от тези класове има две подгрупи за специализация, класовете по общо образование се извършват незабавно за целия клас, а позициите за специализация са отделно. Но тъй като подгрупите върху специализацията са твърде малки и учителите липсват, според някои теми. Подгрупите 11а и 11В могат също да бъдат комбинирани (например при inmose.) - той усложнява осигуряването на непрекъснатостта на графика за класове (е необходимо да се гарантира непрекъснатостта на графика за. \\ t всяка от подгрупите);

- Н.един от няколко смени - в този случай, отделните класове трябва да идват по-късно от първите групи за смяна, освен това, той се усложнява от контрола на Windows в графика на учителите, ако има учители, работещи в двете смени - в този случай, В графика на тези учители, техните часове трябва да "дръпнат" около преминаването;

- W.словото на обвързващите учители към публиката - отделните учители имат "своята" публика, в която се извършват всичките им класове;

- Н.anise "плаваща" смяна - когато началното време на първия урок определено не е дефинирано, защото Тя се формира динамично, в зависимост от освобождаването на свързани класове, учители, аудитории;

- ДА СЕобективна график на Ontrol (клас, учител, аудитория) до допустимия работен обхват (във временната лимитна карта). Например, за учител във временната карта на рестрикцията обикновено се посочват методологическите дни, понякога, някои номера на уроци - накратко, тези позиции са показани, че инсталирането на класове с участието на този обект е невъзможно;

- Н.aISIA на комбинирани предмети - тип "INM. / Информатика" "Информатика / труд" и др. - когато класът е разделен на подгрупи;

- W.словото на обвързващите обекти към аудиторите - провеждане на класове по отделни теми е възможно само в строго дефинирана аудитория или списък на аудиторията (физическо възпитание, работа и др.);

- Отоставяйки графика, като се вземат предвид обстоятелството, че в някои теми не идва цял клас, а неговата подгрупа. Тази друга подгрупа по това време не ходи в училище, такива класове могат да бъдат поставени строго само първите или последните уроци в класа;

- “Вза да се запази паралелите "- за някои учители, е необходимо да се вземе предвид фактът, че за класовете (например класовете по химия), в който случай графикът на учителя се опитва да достави паралелни блокове, за Пример, първите класове, след това 7 и т.н., или когато се разпространяват между дни, разпространяват класове в различни паралели за различни дни;

- Ипри изготвянето на график се изисква да се вземе предвид, че нюансът, който в някои теми графикът е известен предварително - в този случай такива класове се въвеждат като непоследователни (фиксирани);

- ДА СЕonropol забранени комбинации от обекти за един класов график - например, това е нежелано за " физическо възпитание"И" труд "се провежда в същия ден;

- Вотговарят на условията на необходимите последователности на обекти - когато е необходимо да се гарантира инсталирането на групи от класове, в които класовете трябва да отидат в определена последователност, например физика-астрономия и др.;

- Н.anise класове, обвързани с аудиторията - по-голямата част от класовете за такива класове се извършват в тази аудитория, с изключение на тези класове, за които се изисква специализирана аудитория;

- Н.краищата на подреждането на класове по отделни теми на два класа подред ("двойки", "писатели") и това условие може да бъде твърдо (в никакъв случай да се прекъсне "писателите" на класове) и може да бъде предпочитана (ако е невъзможно да се движат два класа, "искрата" може да бъде счупена);

Обстоятелството се взема предвид, когато в някои теми, привеждането в съответствие е допустимо само от единични професии.

3. Системата "Методист"

Произведени в две версии.

Версия виртуална.

Освободете без автоматичен модул за компилация. Функции версия виртуална:

Бързо търсене в списъците на учители, аудитории, класове (групи), дисциплини, заграждения;

Получаване на референтна информация за всеки намерен списък (капацитет на аудиторията, всички одитни случаи x, адрес и тел. Учител, списък на отделите, брой часове на дисциплина, \\ t проучване на зареждане учител и mn. д-р.);

Контрол и възможност за преразпределение на часове между седмици при всяка дисциплинарна сметка. групи;

Автоматична проверка на възможните грешки в данните (спазване на общия брой часове и по видове класове, неприятности на учители в подгрупите, бюджета на времето на групата и учителя, непоследователност на часовника в групите на потока и MN. Друг );

Възможност за систематизирано съхранение (и бързо търсене) допълнително (не е задължително за съставянето на график) на информация: снимки на учители, куратори на обучителни групи ( хладни лидери), данни за представители на родителски комитети, длъжности, научни степени и дялове, отговорни за публиката, ... \\ t

Бързото получаване на пълна информация за комбинацията от фактори (всички разходови групи, всички дисциплини на учителя X, показващи товара на седмици и видове класове, на които се разрешава дисциплините да извършват в класния клас, лични желания за Професията на всеки учител, списък с празнични дати в сирийската група и mn. д-р.);

Възможност за преглед, отпечатване и редактиране на завършен график с проверка на промените в коректността на промените (AUD., Предварително, групи / подгрупи, ...);

По всяко време можете да поръчате модул за формиране на график за подготвени данни;

Графикът се формира на вашия компютър с възможност за промяна на настройки, контрол, редакции и др. (без възможността за промяна на часовете, дисциплини, учители, ...);

Ако необходимостта от незначителни (до 10%) промени в изходните данни (грешки, се откриват внезапни допълнения), е възможно да пренаредите модула за формиране на графика за малка такса;

По всяко време можете да отидете във версията на стандарта;

Методистки - стандарт.

В допълнение към възможностите на виртуалния, включва:

Автоматичен модул за компилиране на график;

Разпределение и контрол на обучението;

Структуриране на поредица от дисциплината (лекции - 2 часа, практични - 4 часа, лаборатория ...);

Изготвяне на график за всякакъв вид образователна институция: седмично или семестър (от 1 до 23 седмици);

Счетоводство за комбиниране на групи (класове) в потоци и / или разделяне в подгрупи;

Консолидиране на специални аудитории (компютърни класове, категории, басейн, ...);

Отчитане на заетостта на учителите и публиката (дял, използване на обща база за обучение);

Отчитане на времето за преход между корпусите;

Уикендите и празниците са общи и за индивидуални групи за обучение (национални, религиозни, официални празници);

Специализирането на причините за "неуспешно назначаване" на класовете (заети от публиката, учителят е назначен за нежелания ден от седмицата) с възможността за "ръчна" корекция;

Възможността за многократно автоматично "подобряване" на графика;

Възможността за промяна на значимостта на факторите, взети предвид при изготвянето на графика;

Възможността за въвеждане на приоритети на учителите - степени на техните индивидуални желания;

Ограничения за функционалността на "Методист":

Няколко графици са ограничени до максималния брой уроци на ден - 7;

Класовете винаги започват с първия урок / чифт (ако е необходимо, е възможно да се назначи първата двойка "свободни класове");

Времето за промяна не се взема предвид (например, за да се провери възможността за преход между корпусите);

"Нивото на сложност" на класовете за тяхното рационално разпределение на седмицата не се взема предвид (въпреки че е възможно да го направи непряко);

Продължителността на професиите е постоянна (е невъзможно да се изготви график за 30 минути. Урок в по-младите и 45 минути. - в гимназията).

Приложение 2. Описание на софтуерни модулни решения за решаване на компилиране на автоматичен график

въведете myarray \u003d набор от редица реални;

Myarray_x \u003d масив от отдалечен;

процедура step_dual_simplex (var a: myarray; m, n, i1, J1: цяло число);

(произвежда една стъпка от двойния симплекс метод,

водещ елемент - а)

vAR I, J: цяло число;

б, B1: редица реални;

Setlength (b, m); setlength (B1, N);

за i: \u003d 0 до m-1 do b [i]: \u003d a;

за I: \u003d 0 до N-1 do B1 [I]: \u003d a;

за i: \u003d 0 до m-1 правя

за j: \u003d 0 до n-1 започват

ако (i \u003d i1) и (j \u003d J1) след това a: \u003d 1 / b

ако (i \u003d i1) след това a: \u003d b1 [j] / b

ако (j \u003d J1) след това a: \u003d - b [i] / b

друго a: \u003d a-b [i] * b1 [р] / b;

за I: \u003d 0 до N-1 do a: \u003d 0; a: \u003d - 1;

Финализиране (b); финализиране (b1);

функция LEXIKOGR_FEW (A: MYARRAIN; M, N: цялостен; I, I1: цяло число): Boolean;

(Първата колона лексикологично по-малка от втората)

Lexikogrogre: \u003d невярно;

докато (a \u003d а) и (j

функция find_nu (A: myaray; m, n: цяло число; i, i1: цяло число): longint;

(I - индекса на лексикологично минималната колона)

докато (a \u003d а) и (j

ако (J 0) след това find_nu: \u003d кръг (int (A / A));

процедура full_integer_simplex (var x: myarray_x; a: myarray; m, n: цяло число);

(Напълно цялостен алгоритъм на проблема с линейното цяло число

програмиране,

вижте HU T. "Цялостно програмиране и конци в мрежи", стр. 300-309,

a - MATRIX размер M + N + 2 * N + 1, по аналогия:

Необходимо е да се намери максимум

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

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

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

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

процедурата връща вектора x, първият m компонент на който е желаното решение,

ако последният компонент на вектора \u003d 1, тогава решенията не съществуват или \u003d безкрайност)

vAR I, I1: цяло число;

докато (i \u003d 0) do inc (i); (производство на низ)

докато (J \u003d 0) do Inc (J);

за i1: \u003d 1 до n-1 правя, ако (a

минимална колона)

(Избор на алфа)

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

за i1: \u003d 1 до n-1 правя, ако a

j1: \u003d find_nu (a, m, n, J, i1);

iF (J1\u003e 0) и (-A / J1\u003e ALFA) след това ALFA: \u003d - A / J1;

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

(Получаване на прекъсване Homori)

за i1: \u003d 0 до n-1 направя, ако a\u003e 0 след това a: \u003d кръг (int (A / Agfa))

a: \u003d кръг (int (a / afa));

ако FRAC (A / A / AFA) 0 след това: \u003d А-1;

Step_dual_simplex (a, m, n, m-1, j);

докато (i\u003e \u003d m-1) или (J\u003e \u003d N);

за i: \u003d 0 до m-1 do x [i]: \u003d кръг (а);

ако j\u003e \u003d n след това x: \u003d 1 друго x: \u003d 0;

процедура step_one_simplex (var a: myarray; m, n, i: цяло число);

var i1, i2: цяло число;

(Една стъпка от директен цялостен метод (произвеждащ низ - последният

i - производство на колона))

за i1: \u003d 0 до m-2 do a: \u003d a / (- а);

за i2: \u003d 0 до n-1 правя

за i1: \u003d 0 до m-2 правя

ако i2i тогава a: \u003d a + a * a;

процедура Direct_integer_simplex (var x: myarray_x; a: myarray; m, n: цяло число);

(Алгоритъм за директно цяло число за задачите на цяло число линейно програмиране, \\ t

вижте HU T. "Целочислено програмиране и конци в мрежи", стр. 344-370,

а - МАТРИС РАЗМЕР М + N + 3 * N + 1 по аналогия:

необходимо е да се максимизира

z \u003d x1 + x2 + x3

4x1 + 5x2 + 2x3

след това матрицата и ще изглеждат:

10 1 1 1 - в този ред, първото число е груб размер на сумите на не-бекон

0 0 0 0 - Gomorie Cutoff низ

алгоритъмът работи само при\u003e \u003d 0

връща вектора x - на мястото на една матрица желаното решение,

ако в последния компонент - грешка по време на изчисленията)

vAR I, J, I1, J1: цялостен;

b, B1, B2: Масив от байт;

Setlength (b, m); setlength (В1, m);

за i: \u003d 0 до m-1 do b1 [i]: \u003d 0;

(Проверка на условията за оптималност)

за J: \u003d 1 до n-1 направете, ако

докато Bool започнете

(Търсене на колона за производство)

bool: \u003d False; J1: \u003d 0;

за J: \u003d 1 до n-1 започват

ако a\u003e 0 тогава

за i: \u003d 0 до m-3 направя a: \u003d a / a;

ако не Bool след това започнете J1: \u003d J; Bool: \u003d true; край иначе, ако lexikogr_few (a, m, n, j, J1)

(Търсене на низ за производство)

за J: \u003d 1 до n-1 do

ако a\u003e 0 тогава

за i: \u003d 0 до m-3 направя a: \u003d a * a;