Составление учебных планов на основе генетических алгоритмов

Автор работы: Пользователь скрыл имя, 10 Ноября 2011 в 11:33, дипломная работа

Краткое описание

С оптимизацией человек сталкивается постоянно в своей жизни, порой даже не замечая этого. Он выбирает, на каких станциях метро нам лучше пересесть в другой поезд, чтобы добраться до места назначения быстрее и с меньшим числом пересадок. Казалось бы, простая задача, с которой каждый справляется с большим или меньшим успехом. Но даже это простой пример показывает, как неоднозначен выбор. Приходиться проводить оптимизацию по двум критериям – время и количество пересадок. А если таких критериев не 2, а несколько десятков, причём один критерий зависит от определённого количества других, то тут уже не так просто справиться с задачей, найти лучшее сочетание значений этих критериев. Не помогает даже большой опыт человека в области, в которой решается задача оптимизации.

Содержание работы

ВВЕДЕНИЕ 3
1. ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ 7
1.1. История появления эволюционных алгоритмов 7
1.2. Общие сведения о ГА 9
1.3. Модели генетических алгоритмов 13
1.4. Другие пути решения задач оптимизации 17
1.5. Применение генетических алгоритмов 21
1.6. Постановка задачи 24
2. ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ДЛЯ ЗАДАЧ СОСТАВЛЕНИЯ УЧЕБНЫХ ПЛАНОВ 25
2.1. Учебные планы нового поколения. Общие сведения 25
2.2. Формирование рабочих учебных планов 27
2.3. Формирование учебных планов на основе генетических алгоритмов 31
2.4. Соответствие терминов биологии и предметной области 34
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ДЛЯ ГЕНЕРАЦИИ УЧЕБНЫХ ПЛАНОВ 36
3.1. Выбор языка программирования. Pascal ABC 36
3.2. Функциональная схема работы программы 38
3.3. Описание fitness-функции 42
3.4. Генерация вариативных наборов 44
3.5. Описание констант и переменных программы 46
3.6. Описание функций программы 47
3.7. Результат работы программы 49
ЗАКЛЮЧЕНИЕ 51
Список используемой литературы 52

Содержимое работы - 1 файл

диплом на печать.docx

— 1.30 Мб (Скачать файл)

                             end

                           else begin

                                b3:=num_weeks*2;

             p3:=num_weeks;

                                b4:=num_weeks*3;

             p4:=num_weeks*2;

                              end;

                     end;

           42,51,54 : begin 

             b1:=num_weeks*2;

          p1:=num_weeks;

                            b2:=num_weeks*2;

             p2:=num_weeks*2;

                            if v[1].h_laborat=num_weeks then

                              begin 

               b3:=num_weeks*3;

               p3:=num_weeks*2;

             end

                           else begin

             b3:=num_weeks*3;

             p3:=num_weeks;

             end;

                              b4:=0; p4:=0;

                     end; end;

       N:=n_v; j:=0;

       for i:=1 to N do

         begin

           CopyDisc(v[i],v[N+i+j]); 

         v[N+i+j].number:=N+i+j; inc(n_v);

            v[N+i+j].h_lection:=b1;

         v[N+i+j].h_practical:=p1; inc(j);

           CopyDisc(v[i],v[N+i+j]); 

         v[N+i+j].number:=N+i+j;

         inc(n_v);

           v[N+i+j].h_lection:=b2;

         v[N+i+j].h_practical:=p2;

           writeln (N+i+j,'-', v[N+i+j].h_lection,' ',v[N+i+j].h_practical);

            if b3<>0 then

             begin

                inc(j);

                CopyDisc(v[i],v[N+i+j]);

           v[N+i+j].number:=N+i+j; inc(n_v);

                v[N+i+j].h_lection:=b3;

           v[N+i+j].h_practical:=p3;

             end; 

            if b4<>0 then

             begin

                inc(j);

                CopyDisc(v[i],v[N+i+j]);

                v[N+i+j].number:=N+i+j; inc(n_v);

                v[N+i+j].h_lection:=b4;

           v[N+i+j].h_practical:=p4;

             end;

          end; 

     end;  

    {если лек и лаб+прак  }

   if (v[1].h_laborat<>0)and(v[1].h_practical<>0)then

     begin

      if (v[1].h_lection=num_weeks) and (v[1].h_laborat=num_weeks) and (v[1].h_practical=num_weeks) then

          begin

             b1:=num_weeks*2;

           l1:=num_weeks;

           p1:=num_weeks;

             b2:=0; l2:=0; p2:=0;

             b3:=0; l3:=0; p3:=0;

          end;

        if (v[1].h_lection=num_weeks*2) and (v[1].h_laborat=num_weeks)

         and (v[1].h_practical=num_weeks) then

          begin

             b1:=num_weeks;

           l1:=num_weeks;

           p1:=num_weeks;

             b2:=num_weeks*3;

           l2:=num_weeks;

           p2:=num_weeks;

             b3:=0; l3:=0; p3:=0;

          end;

        if (v[1].h_lection=num_weeks*3) and (v[1].h_laborat=num_weeks)

      and (v[1].h_practical=num_weeks) then

          begin

             b1:=num_weeks*2;

           l1:=num_weeks;

           p1:=num_weeks;

             b2:=0; l2:=0; p2:=0;

             b3:=0; l3:=0; p3:=0;

          end;

        if (v[1].h_lection=num_weeks*3) and (v[1].h_laborat=num_weeks*2)

         and (v[1].h_practical=num_weeks) then

          begin

             b1:=num_weeks*2;

           l1:=num_weeks;

           p1:=num_weeks;

             b2:=num_weeks*3; l2:=num_weeks; p2:=num_weeks;

             b3:=num_weeks*3; l3:=num_weeks; p3:=num_weeks*2;

          end;

        if (v[1].h_lection=num_weeks*3) and (v[1].h_laborat=num_weeks)

         and (v[1].h_practical=num_weeks*2) then

          begin

             b1:=num_weeks*2;

           l1:=num_weeks;

           p1:=num_weeks;

             b2:=num_weeks*3;

           l2:=num_weeks;

        p2:=num_weeks;

             b3:=num_weeks*3; l3:=num_weeks*2; p3:=num_weeks;

          end;

        N:=n_v; j:=0;

        for i:=1 to N do

         begin

             CopyDisc(v[i],v[N+i+j]);

           v[N+i+j].number:=N+i+j; inc(n_v);

             v[N+i+j].h_lection:=b1;

           v[N+i+j].h_laborat:=l1;

           v[N+i+j].h_practical:=p1;

             if b2<>0 then

              begin

                 inc(j);

                 CopyDisc(v[i],v[N+i+j]);

             v[N+i+j].number:=N+i+j;inc(n_v);

                 v[N+i+j].h_lection:=b2;

             v[N+i+j].h_laborat:=l2; v[N+i+j].h_practical:=p2;

              end;

             if b3<>0 then

              begin

                 inc(j);

                 CopyDisc(v[i],v[N+i+j]);

             v[N+i+j].number:=N+i+j; inc(n_v);

                 v[N+i+j].h_lection:=b3;

             v[N+i+j].h_laborat:=l3;

             v[N+i+j].h_practical:=p3;

              end;

          end;

    end;  

     end;

Приложение 2

     При количестве 36 часов

     1 1 Интелектуальные_системы СД.Ф. 36 18 18 140 54 54 5 TRUE TRUE FALSE FALSE TRUE FALSE .

     1 2 Интелектуальные_системы СД.Ф. 36 18 18 140 54 54 5 TRUE FALSE FALSE FALSE TRUE FALSE .

     1 3 Интелектуальные_системы СД.Ф. 36 18 18 104 54 54 4 FALSE TRUE FALSE FALSE TRUE FALSE .

     1 4 Интелектуальные_системы СД.Ф. 36 18 18 140 54 54 5 TRUE TRUE TRUE FALSE FALSE FALSE .

     1 5 Интелектуальные_системы СД.Ф. 36 18 18 140 54 54 5 TRUE TRUE FALSE TRUE FALSE FALSE .

     1 6 Интелектуальные_системы СД.Ф. 36 18 18 140 54 54 5 TRUE TRUE FALSE FALSE FALSE TRUE .

     1 7 Интелектуальные_системы СД.Ф. 36 18 18 140 54 54 5 TRUE FALSE TRUE FALSE FALSE FALSE .

     1 8 Интелектуальные_системы СД.Ф. 36 18 18 140 54 54 5 TRUE FALSE FALSE TRUE FALSE FALSE .

     1 9 Интелектуальные_системы СД.Ф. 36 18 18 140 54 54 5 TRUE FALSE FALSE FALSE FALSE TRUE .

     1 10 Интелектуальные_системы СД.Ф. 36 18 18 104 54 54 4 FALSE TRUE TRUE FALSE FALSE FALSE .

     1 11 Интелектуальные_системы СД.Ф. 36 18 18 104 54 54 4 FALSE TRUE FALSE TRUE FALSE FALSE .

     1 12 Интелектуальные_системы СД.Ф. 36 18 18 104 54 54 4 FALSE TRUE FALSE FALSE FALSE TRUE .

     1 13 Интелектуальные_системы СД.Ф. 18 18 18 140 54 54 5 TRUE TRUE FALSE FALSE TRUE FALSE .

     1 14 Интелектуальные_системы СД.Ф. 54 18 18 140 54 54 5 TRUE TRUE FALSE FALSE TRUE FALSE .

     1 15 Интелектуальные_системы СД.Ф. 18 18 18 140 54 54 5 TRUE FALSE FALSE FALSE TRUE FALSE .

     1 16 Интелектуальные_системы СД.Ф. 54 18 18 140 54 54 5 TRUE FALSE FALSE FALSE TRUE FALSE .

     1 17 Интелектуальные_системы СД.Ф. 18 18 18 104 54 54 4 FALSE TRUE FALSE FALSE TRUE FALSE .

     1 18 Интелектуальные_системы СД.Ф. 54 18 18 104 54 54 4 FALSE TRUE FALSE FALSE TRUE FALSE .

     1 19 Интелектуальные_системы СД.Ф. 18 18 18 140 54 54 5 TRUE TRUE TRUE FALSE FALSE FALSE .

     1 20 Интелектуальные_системы СД.Ф. 54 18 18 140 54 54 5 TRUE TRUE TRUE FALSE FALSE FALSE .

     1 21 Интелектуальные_системы СД.Ф. 18 18 18 140 54 54 5 TRUE TRUE FALSE TRUE FALSE FALSE .

     1 22 Интелектуальные_системы СД.Ф. 54 18 18 140 54 54 5 TRUE TRUE FALSE TRUE FALSE FALSE .

     1 23 Интелектуальные_системы СД.Ф. 18 18 18 140 54 54 5 TRUE TRUE FALSE FALSE FALSE TRUE .

     1 24 Интелектуальные_системы СД.Ф. 54 18 18 140 54 54 5 TRUE TRUE FALSE FALSE FALSE TRUE .

     1 25 Интелектуальные_системы СД.Ф. 18 18 18 140 54 54 5 TRUE FALSE TRUE FALSE FALSE FALSE .

     1 26 Интелектуальные_системы СД.Ф. 54 18 18 140 54 54 5 TRUE FALSE TRUE FALSE FALSE FALSE .

     1 27 Интелектуальные_системы СД.Ф. 18 18 18 140 54 54 5 TRUE FALSE FALSE TRUE FALSE FALSE .

     1 28 Интелектуальные_системы СД.Ф. 54 18 18 140 54 54 5 TRUE FALSE FALSE TRUE FALSE FALSE .

     1 29 Интелектуальные_системы СД.Ф. 18 18 18 140 54 54 5 TRUE FALSE FALSE FALSE FALSE TRUE .

     1 30 Интелектуальные_системы СД.Ф. 54 18 18 140 54 54 5 TRUE FALSE FALSE FALSE FALSE TRUE .

     1 31 Интелектуальные_системы СД.Ф. 18 18 18 104 54 54 4 FALSE TRUE TRUE FALSE FALSE FALSE .

     1 32 Интелектуальные_системы СД.Ф. 54 18 18 104 54 54 4 FALSE TRUE TRUE FALSE FALSE FALSE .

     1 33 Интелектуальные_системы СД.Ф. 18 18 18 104 54 54 4 FALSE TRUE FALSE TRUE FALSE FALSE .

     1 34 Интелектуальные_системы СД.Ф. 54 18 18 104 54 54 4 FALSE TRUE FALSE TRUE FALSE FALSE .

     1 35 Интелектуальные_системы СД.Ф. 18 18 18 104 54 54 4 FALSE TRUE FALSE FALSE FALSE TRUE .

     1 36 Интелектуальные_системы СД.Ф. 54 18 18 104 54 54 4 FALSE TRUE FALSE FALSE FALSE TRUE .

     1 37 Интелектуальные_системы СД.Ф. 36 18 18 140 54 81 5 TRUE TRUE FALSE FALSE TRUE FALSE .

     1 38 Интелектуальные_системы СД.Ф. 36 18 18 140 54 108 5 TRUE TRUE FALSE FALSE TRUE FALSE .

     1 39 Интелектуальные_системы СД.Ф. 36 18 18 140 54 135 5 TRUE TRUE FALSE FALSE TRUE FALSE .

     1 40 Интелектуальные_системы СД.Ф. 36 18 18 140 54 162 5 TRUE TRUE FALSE FALSE TRUE FALSE .

     1 41 Интелектуальные_системы СД.Ф. 36 18 18 140 54 81 5 TRUE FALSE FALSE FALSE TRUE FALSE .

     1 42 Интелектуальные_системы СД.Ф. 36 18 18 140 54 108 5 TRUE FALSE FALSE FALSE TRUE FALSE .

     1 43 Интелектуальные_системы СД.Ф. 36 18 18 140 54 135 5 TRUE FALSE FALSE FALSE TRUE FALSE .

     1 44 Интелектуальные_системы СД.Ф. 36 18 18 140 54 162 5 TRUE FALSE FALSE FALSE TRUE FALSE .

     1 45 Интелектуальные_системы СД.Ф. 36 18 18 104 54 81 4 FALSE TRUE FALSE FALSE TRUE FALSE .

     1 46 Интелектуальные_системы СД.Ф. 36 18 18 104 54 108 4 FALSE TRUE FALSE FALSE TRUE FALSE .

     1 47 Интелектуальные_системы СД.Ф. 36 18 18 104 54 135 4 FALSE TRUE FALSE FALSE TRUE FALSE .

     1 48 Интелектуальные_системы СД.Ф. 36 18 18 104 54 162 4 FALSE TRUE FALSE FALSE TRUE FALSE .

     1 49 Интелектуальные_системы СД.Ф. 36 18 18 140 54 81 5 TRUE TRUE TRUE FALSE FALSE FALSE .

     1 50 Интелектуальные_системы СД.Ф. 36 18 18 140 54 108 5 TRUE TRUE TRUE FALSE FALSE FALSE .

     1 51 Интелектуальные_системы СД.Ф. 36 18 18 140 54 135 5 TRUE TRUE TRUE FALSE FALSE FALSE .

     1 52 Интелектуальные_системы СД.Ф. 36 18 18 140 54 162 5 TRUE TRUE TRUE FALSE FALSE FALSE .

     1 53 Интелектуальные_системы СД.Ф. 36 18 18 140 54 81 5 TRUE TRUE FALSE TRUE FALSE FALSE .

     1 54 Интелектуальные_системы СД.Ф. 36 18 18 140 54 108 5 TRUE TRUE FALSE TRUE FALSE FALSE .

     1 55 Интелектуальные_системы СД.Ф. 36 18 18 140 54 135 5 TRUE TRUE FALSE TRUE FALSE FALSE .

     1 56 Интелектуальные_системы СД.Ф. 36 18 18 140 54 162 5 TRUE TRUE FALSE TRUE FALSE FALSE .

Информация о работе Составление учебных планов на основе генетических алгоритмов