МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка математической модели и ПО для задач составления расписания

    АВТОР-2+ позволяет:

    - оптимизировать "окна" в расписании;

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

    преподавателей;

    - оптимально pазмещать занятия по кабинетам (аудиториям) с учетом

    особенностей классов, предметов, пpеподавателей и вместимости

    кабинетов;

    - учитывать хаpактеp pаботы и пожелания как штатных сотpудников, так и

    совместителей-почасовиков;

    - легко соединять ("спаpивать") несколько классов (учебных групп) в

    потоки пpи пpоведении любых занятий;

    - pазделять классы пpи пpоведении занятий по иностранному языку,

    физической культуре, тpуду, информатике (и любым другим предметам) на

    любое количество подгрупп (до десяти!);

    - вводить (помимо основных пpедметов) спецкуpсы и факультативы;

    - оптимизировать равномерность и трудоемкость расписания.

    По желанию заказчика АВТОР-2+ модифициpуется под условия конкретного

    учебного заведения.

    2. Система “Расписание” ver 4.0 Москва – ЛинТех

    Необходимо сразу же отметить, что программа “Расписание” ориентирована на

    составление школьного расписания, использование в ВУЗ`ах и колледжах

    возможно лишь с некоторыми оговорками. Составление расписания производится

    в рамках комплекса условий, которые определяются на шагах ввода исходных

    данных. Полный перечень возможных условий приведен ниже:

    - Ограничен максимальный номер урока – т.е. количество уроков,

    максимально допустимое в день;

    - Равномерность распределения нагрузки преподавателей между днями

    расписания;

    - Равномерность распределения нагрузки классов между днями

    расписания;

    - Контроль окон в расписании преподавателей;

    - Программа учитывает то обстоятельство, что классы могут

    произвольно объединяться и дробиться (классы могут объединяться

    в потоки или же дробиться на более мелкие подгруппы, причем эти

    подгруппы, в свою очередь, могут служить основой для объединения

    в более крупные группы. Пример: в школе №1859 есть 2 старших

    класса, но в каждом из этих классов есть две подгруппы по

    специализации, занятия по общеобразовательным предметам

    проводятся сразу для всего класса, а предметы по специализации –

    отдельно. Но поскольку подгруппы по специализации слишком малы,

    а преподавателей не хватает, по некоторым предметам подгруппы

    11а и 11б также могут объединяться (например, на ин.яз.) – это

    усложняет обеспечении непрерывности расписания для классов

    (необходимо обеспечивать непрерывность расписания для каждой из

    подгрупп);

    - Наличие нескольких смен – в этом случае отдельные классы должны

    приходить позже, чем группы первой смены, кроме этого,

    усложняется контроль окон в расписании преподавателей, если есть

    преподаватели, работающие в обе смены – в этом случае в

    расписании этих преподавателей их занятия необходимо “стягивать”

    вокруг пересечения смен;

    - Условие привязки преподавателей к аудитории – отдельные

    преподаватели имеют “свою” аудиторию, в которой проводят все

    свои занятия;

    - Наличие “плавающей” смены – когда время начала первого урока

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

    зависимости от освобождения связанных с соответствующим классов,

    преподавателей, аудиторий;

    - Контроль вхождения расписания объекта (класс, преподаватель,

    аудитория) в допустимый рабочий диапазон (в карту временных

    ограничений). Например, для преподавателя в карте временных

    ограничений обычно указываются методические дни, иногда,

    отдельные номера уроков – словом, указываются те позиции, на

    которые установка занятий с участием данного объекта невозможна;

    - Наличие комбинированных предметов – типа “ин.яз./информатика”

    “информатика/труд” и т.п. - когда класс разбивается на

    подгруппы;

    - Условие привязки предметов к аудиториям – проведения занятий по

    отдельным предметам возможно лишь в строго определенной

    аудитории или списке аудиторий (физкультура, труд и т.п.);

    - Составление расписания с учетом того обстоятельства, что по

    некоторым предметам на занятия приходит не целый класс, а его

    подгруппа. Чтобы другая подгруппа в это время не гуляла по

    школе, такие занятия могут ставиться строго только первыми или

    последними занятиями в расписании класса;

    - “Выдержать параллели” – для некоторых преподавателей необходимо

    учитывать то обстоятельство, что для проведения занятий

    требуется длительная подготовка (например, занятия по химии), в

    этом случае занятия в дневном расписании преподавателя стараются

    поставить блоками параллелей, например, сначала 5-ые классы,

    затем 7-ые и т.п., или же при распределении между днями разнести

    занятия в разных параллелях на разные дни;

    - Иногда при составлении расписания требуется учитывать тот нюанс,

    что по некоторым предметам расписание известно заранее –в этом

    случае такие занятия вводятся как неперемещаемые

    (фиксированные);

    - Контроль запрещенных комбинаций предметов, приходящихся на один

    день расписания класса – например, нежелательно, чтобы

    “физическая культура” и “труд” проводились в один и тот же день;

    - Выполнение условия требуемых последовательностей предметов –

    когда необходимо обеспечивать установку групп занятий, в которых

    занятия должны идти в определенной последовательности, например,

    физика-астрономия и т.п.;

    - Наличие классов, привязанных к аудиториям – основная масса

    занятий для таких классов проводится именно в этой аудитории, за

    исключением тех занятий, для которых требуется

    специализированная аудитория;

    - Необходимость расстановки занятий по отдельным предметам по два

    занятия подряд (“парами”, “спарками”), причем это условие может

    быть жестким (ни в коем случае не разрывать “спарки” занятий), а

    может носить предпочтительный характер (если не получается

    перемещать по два занятия, “спарку” можно разрывать);

    - Учитывается то обстоятельство, когда по некоторым предметам

    расстановка допустима лишь одиночными занятиями.

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

    Выпускается в двух версиях.

    Версия virtual.

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

    Возможности версии virtual:

    - быстрый поиск в списках преподавателей, аудиторий, классов (групп),

    дисциплин, корпусов;

    - получение справочной информации по каждому найденному элементу списка

    (вместимость аудитории, все ауд. корпуса Х, адрес и тел.

    преподавателя, список кафедры, кол-во часов по дисциплине, учебная

    нагрузка преподавателя и мн. др.);

    - контроль и возможность перераспределения часов между неделями по любой

    дисциплине уч. группы;

    - автоматическая проверка возможных ошибок ввода данных (соответствие

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

    подгруппам, бюджет времени уч. группы и преподавателя, несоответствие

    часов в группах потока и мн. др.);

    - возможность систематизированного хранения (и быстрого поиска)

    дополнительной (не обязательной для составления расписания)

    информации: фото преподавателей, кураторы учебных групп (классные

    руководители), данные о представителях родительских комитетов,

    должности, ученые степени и звания, ответственные за аудиторию, ...

    - быстрое получение полной информации по сочетанию факторов (все группы

    потока, все дисциплины преподавателя Х с указанием нагрузки по неделям

    и видам занятий, какие дисциплины разрешено проводить в компьютерном

    классе, личные пожелания к проведению занятий любого преподавателя,

    перечень праздничных дат в сирийской группе и мн. др.);

    - возможность просмотра, печати и редактирования готового расписания с

    проверкой корректности изменений (занятость ауд., преп.,

    групп/подгрупп, ...);

    - в любой момент можно заказать модуль формирования расписания для

    подготовленных данных;

    - расписание формируется на вашем компьютере с возможностью изменения

    настроек, контроля, правки и т.п. (без возможности изменения часов,

    дисциплин, преподавателей, ...);

    - если обнаружена необходимость незначительного (до 10%) изменения

    исходных данных (обнаружены ошибки, внезапные дополнения), возможен

    повторный заказ модуля формирования расписания за незначительную

    плату;

    - в любой момент можно перейти на версию стандарт;

    Методист – стандарт.

    Помимо возможностей версии virtual включает в себя:

    - Модуль автоматического составления расписания;

    - Распределение и контроль учебной нагрузки ;

    - Учет методических рекомендаций и личных пожеланий преподавателей

    ("окна", метод. дни, теннис по четвергам, день рождения сына, ...);

    - Cтрогое выдерживание последовательности прохождения дисциплины (лекции

    - 2 час., практические - 4 час., лабораторные ...);

    - Составление расписания для любого типа учебного заведения: недельное

    или семестровое (от 1 до 23 недель);

    - Учет объединения групп (классов) в потоки и/или разбиение их на

    подгруппы;

    - Закрепление специальных аудиторий (компьютерные классы, лингафонные

    кабинеты, бассейн, ...);

    - Учет занятости преподавателей и аудиторий (совместительство,

    использование общей учебной базы);

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

    - Выходные и праздничные дни - общие и для отдельных учебных групп

    (национальные, религиозные, государственные праздники);

    - Указание причин "неудачного назначения" занятий (занята аудитория,

    преподаватель назначен в нежелательный для него день недели) с

    возможностью их "ручного" исправления;

    - Возможность многократного автоматического "улучшения" расписания;

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

    расписания факторов;

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

    индивидуальных пожеланий;

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

    - многосменные расписания ограничены максимальным кол-вом уроков в день

    – 7;

    - занятия всегда начинаются с первого урока / пары (при необходимости

    возможно назначение на первую пару "свободного занятия" );

    - не учитывется время перемен (например для проверки возможности

    перехода между корпусами);

    - не учитывается "уровень сложности" занятий для их рационального

    распределения по неделе (хотя имеется возможность делать это косвенным

    образом) ;

    - продолжительность занятий постоянна (невозможно составление расписания

    для 30 мин. урока в младших и 45 мин. - в старших классах).

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

    автоматического составления расписания

    uses

    SysUtils;

    type MyArray= array of array of real;

    MyArray_X = array of longint;

    procedure Step_Dual_simplex(var a:MyArray; m,n,i1,j1:integer);

    {производит один шаг двойственного симплекс-метода,

    ведущий элемент - a[i1,j1]}

    var i,j:integer;

    b,b1:array of real;

    begin

    SetLength(b,m);Setlength(b1,n);

    for i:=0 to m-1 do b[i]:=a[i,j1];

    for i:=0 to n-1 do b1[i]:=a[i1,i];

    for i:=0 to m-1 do

    for j:=0 to n-1 do begin

    if (i=i1) and (j=j1) then a[i,j]:=1/b[i1]

    else

    if (i=i1) then a[i,j]:=b1[j]/b[i1]

    else

    if (j=j1) then a[i,j]:=-b[i]/b[i1]

    else a[i,j]:=a[i,j]-b[i]*b1[j]/b[i1];

    end;

    for i:=0 to n-1 do a[i1,i]:=0;a[i1,j1]:=-1;

    Finalize(b);Finalize(b1);

    end;

    function Lexikogr_few(a:MyArray; m,n:integer;i,i1:integer):boolean;

    {первый столбец лексикографически меньше второго}

    var j:integer;

    begin

    Lexikogr_few:=false;

    j:=0;

    while (a[j,i]=a[j,i1]) and (j0) then Find_nu:=Round(Int(a[j,i1]/a[j,i]));

    end;

    procedure Full_Integer_Simplex(var x:MyArray_X; a:MyArray; m,n:integer);

    {Полностью целочисленный алгоритм задачи линейного целочисленного

    программирования,

    см. Ху Т. "Целочисленное программирование и потоки в сетях", стр. 300-

    309,

    a - матрица размером m+n+2*n+1, по аналогии:

    Требуется найти максимум

    z= - 10x1 - 14x2 - 21x3

    2x1 + 2x2 + 7x3 >= 14

    8x1 + 11x2 + 9x3 >= 12

    9x1 + 6x2 + 3x3 >=10,

    тогда матрица а будет выглядеть:

    1 10 14 21

    0 -1 0 0

    0 0 -1 0

    0 0 0 -1

    -14 -2 -2 -7

    -12 -8 -11 -9

    -10 -9 -6 -3

    0 0 0 0,

    процедура возвращает вектор X, первые m компонент которого - искомое

    решение,

    если последняя компонента вектора = 1, то решения не существует или

    оно = бесконечности}

    var i,i1:integer;

    j,j1:integer;

    alfa:real;

    begin

    repeat

    i:=1;

    while (i=0) do Inc(i); {производящая строка}

    if i=0) do Inc(j);

    if j0) and (-a[i,i1]/j1>alfa) then alfa:=-a[i,i1]/j1;

    end;

    {writeln(alfa,' ',i,' ',j);readln;}

    {получение отсечения Гомори}

    for i1:=0 to n-1 do if a[i,i1]>0 then a[m-1,i1]:=round(Int(a[i,i1]/alfa))

    else begin

    a[m-1,i1]:=round(Int(a[i,i1]/alfa));

    if Frac(a[i,i1]/alfa)<>0 then a[m-1,i1]:=a[m-1,i1]-1;

    end;

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

    end;

    end;

    until (i>=m-1) or (j>=n);

    for i:=0 to m-1 do x[i]:=round(a[i,0]);

    if j>=n then x[m-1]:=1 else x[m-1]:=0;

    end;

    procedure Step_One_Simplex(var a:MyArray; m,n,i:integer);

    var i1,i2:integer;

    {Один шаг прямого целочисленного метода (производящая строка - последняя

    i - производящий столбец)}

    begin

    for i1:=0 to m-2 do a[i1,i]:=a[i1,i]/(-a[m-1,i]);

    for i2:=0 to n-1 do

    for i1:=0 to m-2 do

    if i2<>i then a[i1,i2]:=a[i1,i2]+a[i1,i]*a[m-1,i2];

    end;

    procedure Direct_Integer_Simplex(var x:MyArray_X; a:MyArray; m,n:integer);

    {Прямой целочисленный алгоритм задачи целочисленного линейного

    программирования,

    см. Ху Т. "Целочисленное программирование и потоки в сетях", стр. 344-

    370,

    a - матрица размером m+n+3*n+1 по аналогии:

    требуется максимизировать

    z = x1 + x2 + x3

    -4x1 + 5x2 + 2x3 =0

    возвращает вектор X - на месте единичной матрицы искомое решение,

    если в последней компоненте единица - ошибка при расчетах}

    var i,j,i1,j1:integer;

    bool:boolean;

    b,b1,b2:array of byte;

    r:real;

    begin

    SetLength(b,m);SetLength(b1,m);

    for i:=0 to m-1 do b1[i]:=0;

    {проверка условия оптимальности}

    bool:=false;

    for j:=1 to n-1 do if a[0,j]0 then

    begin

    for i:=0 to m-3 do a[i,j]:=a[i,j]/a[m-2,j];

    if not bool then begin j1:=j;bool:=true;end else if

    Lexikogr_few(a,m,n,j,j1)

    then j1:=j;

    end;

    end;

    {поиск производящей строки}

    for j:=1 to n-1 do

    if a[m-2,j]>0 then

    for i:=0 to m-3 do a[i,j]:=a[i,j]*a[m-2,j];

    for i:=0 to m-1 do b[i]:=0;

    i:=1; while (i0) and (a[i,0]/a[i,j1]0) and (a[i,0]/a[i,j1]0 then a[m-

    1,i]:=round(Int(a[i1,i]/a[i1,j1]))

    else begin

    a[m-1,i]:=round(Int(a[i1,i]/a[i1,j1]));

    if Frac(a[i1,i]/a[i1,j1])<>0 then a[m-1,i]:=a[m-1,i]-1;

    end;

    Step_One_Simplex(a,m,n,j1);

    end;

    bool:=false;

    if i1=m-1 then x[m-1]:=1 else x[m-1]:=0;

    Finalize(b);Finalize(b1);

    end;

    -----------------------

    1, если на потоке r лекцию sr читает преподаватель p;

    0 – в противном случае;

    [pic]

    [pic]

    1, если в группе kr практическое занятие qkr проводит преподаватель p;

    0 – в противном случае;

    [pic]

    1, если на потоке r в день t на паре j читается лекция sr;

    0 – в противном случае;

    [pic]

    1, если на потоке r в день t на паре j у группы kr проводится практическое

    занятие qkr;

    0 – в противном случае;

    (1)

    (2)

    [pic]

    [pic]

    (3)

    [pic]

    (4)

    (5)

    (6)

    (7)

    (8)

    (9)

    (10)

    (11)

    (12)

    (13)

    (15)

    (14)

    (16)

    (17)

    (18)

    (19)

    (20)

    (21)

    (22)

    (23)

    (24)

    (25)

    (26)

    Н_пр-ля (pk)

    Имя

    Фамилия

    Отчество

    Адрес

    Телефон

    Уч. степень

    Уч. звание

    Кафедра

    Н_группы(pk)

    Название

    Количество

    Н_потока(pk)

    Описание

    Н_потока(pk,fk)

    Н_группы(pk,fk)

    .

    1

    M

    M

    1

    1

    M

    M

    1

    .

    Н_ауд-ии(pk,fk)

    Н_об-ия (pk,fk)

    Описание

    Н_ауд-ии(pk)

    Н_пр-та(pk)

    Описание

    Н_об-ия (pk)

    Число часов

    Название

    1

    Н_записи (pk)

    Н_пр-ля (fk)

    Н_потока (fk)

    Н_пр-та (fk)

    Н_об-ия (fk)

    Пара

    Нач_неделя

    Кон_неделя

    .

    M

    M

    M

    M

    .

    1

    1

    1

    A Xa B Xb C Xc D Xd E

    Страницы: 1, 2, 3, 4


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.