Каталог :: Программирование и комп-ры

Курсовая: Эволюция элитных групп в организационных системах

                                СОДЕРЖАНИЕ                                
ВВЕДЕНИЕ                                                                       6
1.ОПИСАНИЕ ПОСТАНОВКИ ЗАДАЧИ                                                   7
1.1. Характеристика задачи                                                     7
1.2. Входная информация                                                        7
1.3. Выходная информация                                                       8
1.4. Математическая постановка задачи                                          8
1.5. Специальные требования к техническому обеспечению                        10
2. ОПИСАНИЕ АЛГОРИТМА                                                         11
2.1. Описание алгоритма многократного выбора “претендент-рекомендатель”       11
2.1.1. Назначение и характеристика алгоритма                                  11
2.1.2. Используемая информация                                                11
2.1.3. Результаты решения                                                     11
2.1.4. Математическое описание                                                11
2.1.5. Алгоритм решения                                                       11
2.2. Описание алгоритмов многократного выбора “прополка”(“снятие урожая”)
12
2.2.1. Назначение и характеристика алгоритма                                  12
2.2.2. Используемая информация                                                12
2.2.3. Результаты решения                                                     12
2.2.4. Математическое описание                                                12
2.2.5. Алгоритм решения                                                       12
2.3. Описание алгоритма многократного выбора “делегирование”                  13
2.3.1. Назначение и характеристика алгоритма                                  13
2.3.2. Используемая информация                                                13
2.3.3. Результаты решения                                                     13
2.3.4. Алгоритм решения                                                       13
2.4. Описание алгоритма нахождения паретовского множества альтернатив         14
2.4.1. Назначение и характеристика алгоритма                                  14
2.4.2. Используемая информация                                                14
2.4.3. Результаты решения                                                     14
2.4.4. Алгоритм решения                                                       14
2.5. Описание алгоритма сведения многокритериальной задачи к
однокритериальной                                                             15
2.5.1. Назначение и характеристика алгоритма                                  15
2.5.2. Используемая информация                                                15
2.5.3. Результаты решения                                                     15
2.5.4. Математическое описание                                                15
2.5.5. Алгоритм решения                                                       15
3. ОПИСАНИЕ ПРОГРАММЫ                                                         16
3.1. Описание программы ELITE.PAS                                             16
3.1.1. Вводная часть                                                          16
3.1.2. Функциональное назначение                                              16
3.1.3. Описание информации                                                    16
3.1.4. Используемые подпрограммы                                              17
3.1.5. Описание логики                                                        17
3.2. Описание подпрограммы PARET                                              18
3.2.1. Вводная часть                                                          18
3.2.2. Функциональное назначение                                              18
3.2.3. Описание информации                                                    18
3.2.4. Используемые подпрограммы                                              18
3.2.5. Описание логики                                                        18
3.3. Описание подпрограммы ELEM                                               19
3.3.1. Вводная часть                                                          19
3.3.2. Функциональное назначение                                              19
3.3.3. Описание информации                                                    19
3.3.4. Используемые подпрограммы                                              19
3.3.5. Описание логики                                                        19
3.4. Описание подпрограммы HELP                                               20
3.4.1. Вводная часть                                                          20
3.4.2. Функциональное назначение                                              20
3.4.3. Описание информации                                                    20
3.4.4. Используемые подпрограммы                                              20
3.4.5. Описание логики                                                        20
3.5. Описание подпрограммы SORT                                               21
3.5.1. Вводная часть                                                          21
3.5.2. Функциональное назначение                                              21
3.5.3. Описание информации                                                    21
3.5.4. Используемые подпрограммы                                              21
3.5.5. Описание логики                                                        21
3.6. Описание подпрограммы PRETENDENT                                         22
3.6.1. Вводная часть                                                          22
3.6.2. Функциональное назначение                                              22
3.6.3. Описание информации                                                    22
3.6.4. Используемые подпрограммы                                              22
3.6.5. Описание логики                                                        22
3.7. Описание подпрограммы PROPOLKA                                           23
3.7.1. Вводная часть                                                          23
3.7.2. Функциональное назначение                                              23
3.7.3. Описание информации                                                    23
3.7.4. Используемые подпрограммы                                              23
3.7.5. Описание логики                                                        23
3.8. Описание подпрограммы DELEGATION                                         24
3.8.1. Вводная часть                                                          24
3.8.2. Функциональное назначение                                              24
3.8.3. Описание информации                                                    24
3.8.4. Используемые подпрограммы                                              24
3.8.5. Описание логики                                                        24
3.9. Описание подпрограммы SHOWQUALITY                                        25
3.9.1. Вводная часть                                                          25
3.9.2. Функциональное назначение                                              25
3.9.3. Описание информации                                                    25
3.9.4. Используемые подпрограммы                                              25
3.9.5. Описание логики                                                        25
3.10. Описание подпрограммы INPUT                                             26
3.10.1. Вводная часть                                                         26
3.10.2. Функциональное назначение                                             26
3.10.3. Описание информации                                                   26
3.10.4. Используемые подпрограммы                                             26
3.10.5. Описание логики                                                       26
4. ОПИСАНИЕ КОНТРОЛЬНОГО ПРИМЕРА                                              28
4.1. Назначение                                                               28
4.2. Исходные данные                                                          28
4.3. Результаты расчета                                                       28
4.4. Результаты испытания программы                                           28
ЗАКЛЮЧЕНИЕ                                                                    43
СПИСОК ЛИТЕРАТУРЫ                                                             44
ПРИЛОЖЕНИЕ 1. ТЕКСТ ПРОГРАММЫ                                                 45
ПРИЛОЖЕНИЕ 2.  РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ ПРОГРАММЫ                              50
ПРИЛОЖЕНИЕ 3.  РУКОВОДСТВО ПРОГРАММИСТА                                       53
ПРИЛОЖЕНИЕ 4 РУКОВОДСТВО ОПЕРАТОРА                                            56
                                 ВВЕДЕНИЕ                                 
Обычно возникающие в технике, селекционной практике задачи отбора групп
объектов, обладающих повышенным в некотором смысле качеством – элитных групп,
решаются методом теории классификации. Процедура отбора считается
законченной, когда группа заданного объёма набрана и критерии, обычно
связанные с ошибками классификации, удовлетворёнными.
Гораздо меньшее внимание уделяется дальнейшей судьбе сформированной элитной
группы – её функционированию. Этот этап формирования элитной группы
оценивается другими, более сложными критериями. С одной стороны, группа
приносит пользу, с другой – изменяет свои свойства, эволюционирует за счёт
того, что изменяются и заменяются её элементы. Формируя, а затем пополняя из
некоторой исходной совокупности элементов элитную группу, можно преследовать
различные цели и располагать различными средствами отбора. Сочетания
определённых целей и средств позволяет формулировать определённые задачи
управления эволюцией групп.
                            РАЗРАБОТКА ЗАДАЧИ                            
           “ЭВОЛЮЦИЯ ЭЛИТНЫХ ГРУПП В ОРГАНИЗАЦИОННЫХ СИСТЕМАХ”           
                       1.ОПИСАНИЕ ПОСТАНОВКИ ЗАДАЧИ                       
                        1.1. Характеристика задачи                        
Реализовать четыре алгоритма многократного выбора в некоторую группу
элементов(элитную), превосходящих по своим некоторым  характеристикам
элементы из исходной совокупности. В исходной совокупности присутствуют
элементы с любыми значениями некоторой величины Х, тогда как в элитную группу
отбираются элементы с критерием Х не ниже какой-либо величины А. Необходимо
сформировать элитную группу элементов из исходной совокупности, а также
проследить изменения в группе на протяжении некоторого цикла времени, за
которое в силу любых причин(старения, разрушения, изъятия, смерти и т.д.)
какое-то количество элементов выбывают из элитной группы и вакантные места
пополняются из исходной совокупности при следующих условиях:
- среднее значение критерия Х в исходной совокупности не меняется;
- правило отсева из элитной группы происходит случайным образом.
- при многокритериальном выборе используется выбор множества Парето, и из
этого множества выбирается единственное с помощью сведения множества
критериев к одному.
Исходными данными являются размер элитной группы, количество критериев,
размер делегирующей выборки, сами критерии и приоритеты этих критериев для
сведения(при необходимости) многих критериев к одному.
     

Определение предметной области

В качестве конкретной предметной области для рассматриваемой задачи возьмем, скажем, необходимость формирования сильной национальной сборной по хоккею, что особенно актуально в свете недавно прошедшего первенства мира в Питере. Мы должны произвести качественный отбор конкурсантов по широкому спектру различных критериев: Опыт, степень патриотизма т.е. способность отдать все силы игре за Россию, личный уровень мастерства и т.д. Во внимание примем тот факт, что состав сборной должен постоянно изменяться, в зависимости от состояния игроков. Это позволит нам обеспечить оптимальное качество в любой ситуации. 1.2. Входная информация Разработанная программа осуществляет ввод данных с клавиатуры с помощью меню и непосредственных запросов. Входной информацией задачи является таблица параметров задачи, структура которой представлена в таблице 1. Данные нужно вводить в виде целых чисел. Таблица1.
НазваниеРасшифровкаТип
КритерииКоличество критериев выборацелое, больше 0
Разброс зна­чений2 значения, 1-е всегда меньше второго - в пределах каких значений изменяется критерийцелые, больше 0
ПриоритетПриоритет данного значения (чем больше, тем выше приоритет)целое
Размер элитной группыКоличество элементов в элитной группецелое, больше 0
Размер делегирующей группыКоличество элементов в делеги­рующей выборкецелое, больше 0
Количество циклов жизниКоличество выбывших из элитной группы элементовцелое, больше 0
1.3. Выходная информация Выходная информация представлена несколькими вещественными числами(по 2 числа для каждого критерия), выводимых в виде таблицы, структура которых представлена в таблице 2. Таблица 2.
Условное обозначениеРасшифровка обозначениий
Начальные показателиСредние показатели данного критерия по группе до проведения отбора
После отбораСредние показатели данного критерия по группе после проведения отбора
Используются следующие видеограммы: 1. Видеограмма – основное меню. Служит для выбора алгоритма отбора в элитную группу. Пример данной видеограммы приведен на рис. . 2. Видеограмма – неосновное меню. Служит для выбора параметров эволюции элитной группы. Пример данной видеограммы приведен на рис. . 3. Видеограмма – таблица полученных результатов. Служит для вывода результатов на экран. Пример данной видеограммы приведен на рис. . 1.4. Математическая постановка задачи Имеется некоторая исходная совокупность элементов Е, характеризуемых множеством параметров X={X1,X2,¼,Xm}, каждый из параметров представляет собой набор характеристик Xi =<xi, ki, di, ai, bi >, где xi-значение параметра Xi, случайная величина, ki-коэффициент значимости параметра Xi среди множества параметров X, di-направление возрастания качества группы с увеличением значения параметра xi (di=1), либо с уменьшением значения параметра (di=-1), ai-нижняя граница значения xi, bi-верхняя граница значения xi, m-количество параметров. Элитная группа G={G1,G2,¼,Gn} является совокупностью элементов, обладающих по отношению к элементам из Е в некотором смысле повышенным качеством и отобранных из Е по определенному правилу. Введем правила формирования элитной группы G: 1. Задается эталонное значение параметра А={А12 ,¼,Аm}, которое не обязательно является значением случайной величины Х. 2. Из Е случайно, с равной вероятностью, выбираются элементы и сравниваются с эталоном. В элитную группу G при этом попадают те элементы, значение параметра которых удовлетворяет элитному свойству x i³Ai. 3. При сравнении элемента с эталоном возможна ошибка, в результате которой элемент из Е, не обладающий элитным свойством, попадет в элитную группу G. Величина такой ошибки задана и равна q. 4. Элитная группа G считается сформированной, когда отобрано заданное количество элементов n. Эталон A используется только для формирования элитной группы G, в дальнейшем он не используется. Плотность распределения параметра Х элементов, попавших в элитную группу, имеет вид: aэ находится из условия нормировки: и определяется равенством: Будем считать, что в силу некоторых причин (старение, разрушение, изъятие и т.п.) некоторые элементы Gi выбывают из элитной группы G . В этом случае возникает задача повторного выбора элементов из оставшейся совокупности Е и включения их в состав элитной группы G. Изменение свойств элитной группы G при многократном повторении этого действия зависит от правила отсева из элитной группы (происходит ли это случайно, без учета величины xi, либо выбывают лучшие или худшие элементы). Рассмотрим некоторые правила отсева и включения новых элементов в элитную группу: 1. Правило “Претендент-рекомендатель” Это правило состоит в том, что при наличии вакансии в элитной группе G взятый наугад из общей совокупности Е элемент Еi сравнивается с наугад взятым элементом Gj из элитной группы G. Если элемент Еi лучше элемента Gj, то элемент Ei включается в элитную группу G, иначе образуется новая пара Ei-Gj. Исключение элемента Gk из элитной группы G происходит случайным образом. 2. Правило “Прополка” Это правило состоит в исключении m наихудших элементов из элитной группы G и замене их взятыми наугад m элементами из общей совокупности Е. При этом в элитную группу могут попасть как лучшие, чем удаленные элементы, так и худшие. 3. Правило “Снятие урожая” Это правило состоит в исключении m наилучших элементов из элитной группы G и замене их взятыми наугад m элементами из общей совокупности Е. При этом в элитную группу могут попасть как лучшие, чем удаленные элементы, так и худшие. 4. Правило “Делегирование” Это правило состоит в следующем: 1) Из общей совокупности Е выбирают случайным образом N элементов - делегирующую выборку V={V1,V2,¼,V N}; 2) Находят лучший элемент Vi из делегирующей выборки V и включают его в элитную группу G. Исключение элемента Gk из элитной группы G происходит случайным образом. 1.5. Специальные требования к техническому обеспечению Разработанная программа может успешно работать на компьютерах фирмы IBM (IBM PC/AT/ или PS/2) под управлением операционной системы MS-DOS версии 3.3 и выше. Минимально необходимое количество свободной основной оперативной памяти 64 килобайта, максимально допустимое - неограниченно. Необходимо наличие процессора i80286 фирмы Intel или совместимого с ним процессора. Желательно присутствие математического сопроцессора i80287 или совместимого с ним. В конфигурации ЭВМ обязательно наличие накопителя на магнитных дисках (DD или HD) с 15 килобайтами свободной дисковой памяти. Наличие принтера необязательно. Реализация данной программы на других типах ЭВМ не представляется возможной. 2. ОПИСАНИЕ АЛГОРИТМА 2.1. Описание алгоритма многократного выбора “претендент-рекомендатель” 2.1.1. Назначение и характеристика алгоритма Алгоритм предназначен для заполнения вакантной должности в элитной группе. Его суть состоит в том, что при наличии вакансии в элитной группе взятый наугад элемент из общей совокупности элемент(“претендент”) сравнивается с наугад взятым элементом из элиты(“рекомендателем”). Если при сравнении этих двух элементов элемент-“претендент” не хуже элемента-”рекомендателя”, то “претендент” занимает вакантное место, иначе возникает новая пара “претендент-рекомендатель”. 2.1.2. Используемая информация В данном алгоритме используется следующая информация: N - размер элитной группы; random(0,N) - функция, генерирующая случайные числа в диапазоне от [0,N); i - номер вакантного места в группе; j - номер “рекомендателя”. 2.1.3. Результаты решения Результатом решения данного алгоритма будет прием в элитную группу нового элемента на место выбывшего и прогресс качества элитной группы. 2.1.4. Математическое описание Номер “рекомендателя” вычисляется по следующей формуле: NR=random(N+1), где NR - номер “рекомендателя”; N - размер элитной группы. Номер “рекомендателя” не должен совпадать с номером вакантного места в элитной группе. 2.1.5. Алгоритм решения 1. j:=random(N+1); 2. Если i<>j, то переход к п. 3, иначе к п. 1; 3. Выбор элемента-“претендента” из общей совокупности; 4. Если (“претендент”>=“рекомендатель”), то переход к п. 5, иначе к п. 1; 5. Заменить выбывший элемент “претендентом”. 6. Конец. 2.2. Описание алгоритмов многократного выбора “прополка”(“снятие урожая”) 2.2.1. Назначение и характеристика алгоритма Алгоритм предназначен для улучшения качества элитной группы. Этот алгоритм действует следующим образом: из элитной группы удаляются m наихудших (наилучших) элементов и заменяются взятыми наугад элементами из общей совокупности. Наиболее эффективная стратегия при данном алгоритме - замена на каждом шаге только одного элемента из элитной группы. 2.2.2. Используемая информация В данном алгоритме используется следующая информация: N - размер элитной группы; Num - количество изымаемых элементов; SORT - сортировка элитной группы(плохие элементы имеют меньший номер). 2.2.3. Результаты решения Результатом решения данного алгоритма будет прием в элитную группу нового элемента на место выбывшего и прогресс(регресс) качества элитной группы. 2.2.4. Математическое описание При m<N худшие в элитной группе не задерживаются, а лучшие из новых остаются. В результате группа прогрессирует. 2.2.5. Алгоритм решения Алгоритм “Прополки”: 1. SORT; 2. i=0; 3. Принятие в элиту нового элемента; 4. i¬i+1; 5. Если i<m, то переход к п. 3; 6. Конец. Алгоритм “Снятия урожая”: 1. SORT; 2. i=N-m; 3. Принятие в элиту нового элемента; 4. i¬i+1; 5. Если i<N, то переход к п. 3; 6. Конец. 2.3. Описание алгоритма многократного выбора “делегирование” 2.3.1. Назначение и характеристика алгоритма Алгоритм предназначен для заполнения вакантной должности в элитной группе. Данный метод основан на следующем: из исходной совокупности случайным образом выбирают некоторое количество элементов - делегирующую выборку. Наилучший элемент из этой выборки зачисляют в элитную группу на вакантное место. 2.3.2. Используемая информация В данном алгоритме используется следующая информация: К - размер делегирующей выборки; Max - номер наилучшего элемента в делегирующей выборке; Num - номер выбывшего элемента в элитной группе; i - промежуточная переменная. 2.3.3. Результаты решения Результатом решения данного алгоритма будет прием в элитную группу нового элемента на место выбывшего. 2.3.4. Алгоритм решения 1. Набор делегирующей выборки; 2. Нахождение наилучшего в делегирующей выборке; 3. Замена выбывшего элемента на выбранного из делегирующей группы; 4. Конец. 2.4. Описание алгоритма нахождения паретовского множества альтернатив 2.4.1. Назначение и характеристика алгоритма Данный алгоритм предназначен для оценки нескольких альтернатив по многим критериям. Алгоритм основан на отказе от выделения единственной наилучшей альтернативы и соглашении о том, что предпочтение одной альтернативе перед другой можно отдать только если первая по всем критериям лучше второй. Если же предпочтение хотя бы по одному критерию расходится с предпочтением по другому, то такие альтернативы признаются несравнимыми. в результате попарного сравнения все худшие по всем критериям альтернативы отбрасываются, а несравнимые остаются, образуя множество Парето и из них с помощью алгоритма сведения многокритериальной задачи к однокритериальной выбирается единственная альтернатива. 2.4.2. Используемая информация В данном алгоритме используется следующая информация: A,B - логические переменные; N - количество критериев; i - номер первого сравниваемого элемента; j - номер второго элемента. 2.4.3. Результаты решения Результатом решения данного алгоритма будет вывод - какая-либо из альтернатив лучше по всем параметрам или же они несравнимы. 2.4.4. Алгоритм решения 1. k=0; A=истина; B=истина; 2. A¬A и (ik>jk); 3. B¬B и (ik<jk); 4. k¬k+1; 5. Если k<N, то переход к п. 2; 6. Если A, то 1-ый элемент лучший; переход к п. 9; 7. Если B, то 2-ой элемент лучший; переход к п. 9; 8. Элементы несравнимы. 9. Конец. 2.5. Описание алгоритма сведения многокритериальной задачи к однокритериальной 2.5.1. Назначение и характеристика алгоритма С помощью данного алгортма можно свести многокритериальную задачу к однокритериальной путем введения суперкритерия. Суперкритерий позволяет упорядочить величины по величине и выбрать наилучшую. 2.5.2. Используемая информация В данном алгоритме используется следующая информация: A,B - суперкритерии первой и второй переменной; N - количество критериев; i - номер первого сравниваемого элемента; j - номер второго элемента. 2.5.3. Результаты решения Результатом решения данного алгоритма будет выбор из паретовского множества единственной наилучшей альтернативы. 2.5.4. Математическое описание Суперкритерий - скалярная функция векторного аргумента: q0(x)=q0(q1(x),q2(x), ¼ ,qp(x) ). В данном алгоритме используется аддитивная функция: При данном способе задача сводится к максимизации суперкритерия: 2.5.5. Алгоритм решения 1. k=0; A=0; B=0; 2. A¬A+ik; 3. B¬B+jk; 4. k¬k+1; 5. Если k<N, то переход к п. 2; 6. Если A>B, то 1-ый элемент лучший, иначе 2-ой элемент лучший; 7. Конец. 3. ОПИСАНИЕ ПРОГРАММЫ 3.1. Описание программы ELITE.PAS 3.1.1. Вводная часть Программа ELITE.PAS предназначена для наблюдения за формированием и развитием элитной группы с большим количеством критериев отбора. Программа написана на языке прграммирования Borland Pascal 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.1.2. Функциональное назначение Данная программа моделирует процесс отбора в элитную группу и эволюцию этой группы. Для функционирования данной программы может быть использован любой персональный компьютер, совместимый с IBM PC с минимальным объемом свободной оперативной памяти не менее 128К. 3.1.3. Описание информации Выводимые сообщения описаны в таблице 3. Таблица 3.
СообщениеОписание
Введите количество критериев отбора(до 20)Запрос на ввод количества критериев
Введите разброс значений критерияЗапрос на ввод разброса значений каждого критерия
Введите приоритет критерияЗапрос на ввод приоритета каждого критерия
Введите размер элитной группы(до 200)Запрос на ввод размера элитной группы
Введите количество циклов жизни элитной группы(до 4000)Запрос на ввод количества циклов жизни
Введите размер делегирующей группы(до 400)Запрос на ввод размера делегирующей группы
Сколько элементов удалять на каждом шагеЗапрос на ввод количества удаляемых на каждом шаге элементов из элитной группы при использовании процедур “прополка” и “делегирование”
Среднее арифметическое показателей элитной группы по различным критериямЗаголовок таблицы, показывающей среднее ариф­мети­чес­кое показателей по элитной группе до и после моделирования
После запуска программа выводит основное меню программы, содержащее следующие пункты: 1. Справка 2. Претендент-рекомендатель 3. Прополка 4. Сбор урожая 5. Делегирование 6. Выход При выборе 1-го пункта выводится сообщение об авторах программы. Необходимо нажать любую клавишу для возврата в меню. При выборе пунктов 2-5 будет выведено следующее меню: 1. Критерии 2. Значения 3. Размер элитной группы 4. Размер делег. группы 5. Количество циклов жизни 6. Выход При выборе пункта 1 будет выведен запрос на ввод количества критериев. После ввода произойдет возврат в меню. При выборе пункта 2 будет выведены запросы на ввод разброса значений критериев и их приоритет. После ввода произойдет возврат в меню. При выборе пункта 3 будет выведен запрос на ввод размера элитной группы, и если была выбрана процедура “прополка” или “сбор урожая” - то и запрос на количество удаляемых элементов. После ввода произойдет возврат в меню. При выборе пункта 4 будет выведен запрос на ввод размера делегирующей группы. После ввода произойдет возврат в меню. При выборе пункта 5 будет выведен запрос на ввод количества циклов жизни. После ввода произойдет возврат в меню. При выборе пункта 6 в любом меню произойдёт выход из программы или в предыдущее меню. 3.1.4. Используемые подпрограммы Данная программа , кроме стандартных подпрограмм библиотеки языка программирования Borland PASCAL версии 7.0 фирмы Borland International, использует следующие подпрограммы: help - для вывода на экран сообщения об авторах программы; input - для моделирования элитных групп; menu - для вывода меню. 3.1.5. Описание логики 1. n:=0; b:=false; 2. Если not B, то переход к п. 9; 3. nm:=menu(1); 4. Если nm=1, то переход к п. 5, иначе к п. 6; 5. Вызов подпрограммы HELP; переход к п. 8; 6. Если (nmÌ[2..5]), то вызов подпрограммы INPUT(nm); переход к п. 8; 7. Если (nmÌ[0,6]), то b:=true; 8. переход к п. 2; 9. Конец Блок-схема программы приведена на рис.1 . 3.2. Описание подпрограммы PARET 3.2.1. Вводная часть Синтаксис: function paret(kol:byte;x,y:word):shortint; Подпрограмма используется в программе ELITE.PAS. Подпрограмма написана на языке программирования Borland Pascal версии 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.2.2. Функциональное назначение Подпрограмма PARET предназначена для попарного многокритериального сравнения двух альтернатив и выбора одной из них. 3.2.3. Описание информации Входные данные: Kol - количество критериев; x - номер первого элемента; y - номер второго элемента. Выходные данные: Возвращает 0, если элемент с номером х превосходит элемент с номером у; возвращает 1, если элемент у превосходит х. 3.2.4. Используемые подпрограммы Данная подпрограмма paret не использует других подпрограмм, кроме стандартных функций и процедур библиотеки языка программирования Borland Pascal версии 7.0 фирмы Borland International. 3.2.5. Описание логики Описание блок-схемы подпрограммы PARET. 1. a:=true; b:=true; i:=0; j:=0; 2. k:=0; 3. a:=a & (otb[x,k]*ran[2,k]>otb[y,k]*ran[2,k]); b:=b & otb[x,k]*ran[2,k]<otb[y,k]* ran[2, k]); k:=k+1; 4. Если k<Kol, то переход к п. 3; 5. Если not(a or b), то переход к п. 6, иначе к п. 15; 6. k:=0; 7. i:=i+otb[x,k]*ran[2,k]; j:=j+otb[x,k]*ran[2,k]; k:=k+1; 8. Если k<Kol, то переход к п. 7; 9. a:=(i>j); 10. Если A, то переход к п. 11, иначе к п. 12; 11. paret:=0. Переход к п. 15; 12. Если B, то переход к п. 13, иначе к п. 14; 13. paret:=1; переход к п. ; 14. paret:=-1; 15. Конец. Блок-схема подпрограммы приведена на рис.2 . 3.3. Описание подпрограммы ELEM 3.3.1. Вводная часть Синтаксис: procedure elem(kol,Num:word); Подпрограмма используется в программе ELITE.PAS. Подпрограмма написана на языке программирования Borland Pascal версии 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.3.2. Функциональное назначение Подпрограмма ELEM предназначена для моделирования элемента из общей совокупности элементов. 3.3.3. Описание информации Входные данные: Kol - количество критериев отбора; Num - номер элемента. Выходные данные: Не имеет. 3.3.4. Используемые подпрограммы Данная подпрограмма elem не использует других подпрограмм, кроме стандартных функций и процедур библиотеки языка программирования Borland Pascal версии 7.0 фирмы Borland International. 3.3.5. Описание логики Описание блок-схемы подпрограммы ELEM 1. i:=0; 2. otb[Num,i]:=random(ran[1,i]-ran[0,i])+ran[0,i]; i:=i+1; 3. Если i<Kol, то переход к п. 2; 4. Конец. Блок-схема подпрограммы приведена на рис. 3. 3.4. Описание подпрограммы HELP 3.4.1. Вводная часть Синтаксис: procedure help; Подпрограмма используется в программе ELITE.PAS. Подпрограмма написана на языке программирования Borland Pascal версии 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.4.2. Функциональное назначение Подпрограмма HELP используется для вывода сообщения об авторах программы. 3.4.3. Описание информации Входные данные: Не имеет. Входные данные: Выводит сообщение об авторах программы. 3.4.4. Используемые подпрограммы Данная подпрограмма paret не использует других подпрограмм, кроме стандартных функций и процедур библиотеки языка программирования Borland Pascal версии 7.0 фирмы Borland International. 3.4.5. Описание логики Описание блок-схемы подпрограммы HELP 1. Вывод “Эволюция элитных групп”; 2. Вывод “ Создана студентами гр. 6-19-2”; 3. Конец. Блок-схема подпрограммы приведена на рис. 4. 3.5. Описание подпрограммы SORT 3.5.1. Вводная часть Синтаксис: procedure sort; Подпрограмма используется в программе ELITE.PAS. Подпрограмма написана на языке программирования Borland Pascal версии 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.5.2. Функциональное назначение Подпрограмма SORT предназначена для сортировки элементов в элитной группе по возрастанию их качеств. В своей основе имеет сортировку методом обмена. 3.5.3. Описание информации Входные данные: Неотсортированный массив otb. Выходные данные: Отсортированный массив otb. 3.5.4. Используемые подпрограммы Данная программа , кроме стандартных подпрограмм библиотеки языка программирования Borland PASCAL версии 7.0 фирмы Borland International, использует следующие подпрограммы: paret - для попарного сравнения элементов массива. 3.5.5. Описание логики Описание блок-схемы подпрограммы SORT; 1. i:=0; 2. k:=i; 3. j:=i+1; 4. Если paret(M,K,j)=0, то переход к п. 5, иначе к п. 6; 5. k:=j; 6. l:=0; j:=j+1; 7. pr:=otb[i,l]; otb[i,l]:=otb[k,l]; otb[k,l]:=pr; l:=l+1; 8. Если l<M, то переход к п. 7; 9. Если ,j<N, то переход к п. 4; 10. Если i<N, то переход к п. 2; 11. Конец. Блок-схема подпрограммы приведена на рис. 5. 3.6. Описание подпрограммы PRETENDENT 3.6.1. Вводная часть Синтаксис: procedure pretendent(Kol:word); Подпрограмма используется в программе ELITE.PAS. Подпрограмма написана на языке программирования Borland Pascal версии 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.6.2. Функциональное назначение Подпрограмма PRETENDENT реализует алгоритм “претендент-рекомендатель”. 3.6.3. Описание информации Входные данные: Kol - количество критериев отбора. Выходные данные: Не имеет. 3.6.4. Используемые подпрограммы Данная программа , кроме стандартных подпрограмм библиотеки языка программирования Borland PASCAL версии 7.0 фирмы Borland International, использует следующие подпрограммы: paret - для попарного сравнения элементов массива; elem - для моделирования нового элемента. 3.6.5. Описание логики Описание блок-схемы подпрограммы PRETENDENT 1. j:=0; num:=random(N+1); 2. Если not(k=0 or j>3*N), то переход к п. 9; 3. Если Num=Num1, то переход к п. 6; 4. num1:=random(N+1); 5. переход к п. 3; 6. elem(Kol,Num); k:=paret(Kol,Num,Num1); 7. j:=j+1; 8. переход к п. 2; 9. Конец. Блок-схема подпрограммы приведена на рис. 6. 3.7. Описание подпрограммы PROPOLKA 3.7.1. Вводная часть Синтаксис: procedure propolka(Num,Kol,typ:word); Подпрограмма используется в программе ELITE.PAS. Подпрограмма написана на языке программирования Borland Pascal версии 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.7.2. Функциональное назначение Подпрограмма PROPOLKA реализует алгоритмы “прополка” и “сбор урожая”. 3.7.3. Описание информации Входные данные: Num - количество изымаемых за один шаг элементов; Kol - количество критериев отбора; typ - тип используемого в данный момент алгоритма(0 - “прополка”, 1 - “сбор урожая”). Выходные данные: Не имеет. 3.7.4. Используемые подпрограммы Данная программа , кроме стандартных подпрограмм библиотеки языка программирования Borland PASCAL версии 7.0 фирмы Borland International, использует следующие подпрограммы: sort - для сортировки элитной группы; elem - для моделирования нового элемента. 3.7.5. Описание логики Описание блок-схемы подпрограммы PROPOLKA 1. Если Num>N, то переход к п. 2, иначе к п. 3; 2. num:=n-1; переход к п. 4; 3. num:=num-1; 4. Вызов подпрограммы SORT; 5. Если typ=0, то переход к п. 6, иначе к п. 7; 6. m:=0; j:=num; переход к п. 8; 7. m:=N-Num; j:=N; 8. i:=m; 9. Вызов подпрограммы ELEM(Kol, i); i:=i+1; 10. Если i>j, то переход к п. 9; 11. Конец. Блок-схема подпрограммы приведена на рис. 7. 3.8. Описание подпрограммы DELEGATION 3.8.1. Вводная часть Синтаксис: procedure delegation(Num,Kol,Kk:word); Подпрограмма используется в программе ELITE.PAS. Подпрограмма написана на языке программирования Borland Pascal версии 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.8.2. Функциональное назначение Подпрограмма DELEGATION реализует алгоритм “делегирование”. 3.8.3. Описание информации Входные данные: Kol - количество критериев отбора; Num - номер изымаевого элемента; Kk - размер делегирующей выборки. Выходные данные: Не имеет. 3.8.4. Используемые подпрограммы Данная программа , кроме стандартных подпрограмм библиотеки языка программирования Borland PASCAL версии 7.0 фирмы Borland International, использует следующие подпрограммы: paret - для попарного сравнения элементов элитной группы; elem - для моделирования нового элемента. 3.8.5. Описание логики Описание блок-схемы подпрограммы DELEGATION 1. i:=0; 2. Вызов подпрограммы ELEM(Kk,i+N); i:=i+1; 3. Если i<Kol, то переход к п. 2; 4. mx:=0; 5. i:=1; 6. Если paret(Kk,i+N,mx+n)=0, то переход к п. 7, иначе к п. 8; 7. mx:=i; 8. Если i<kol, то переход к п. 6; 9. i:=0; 10. otb[Num,i]:=otb[mx,i]; i:=i+1; 11. Если i<Kk, то переход к п. 10; 12. Конец. Блок-схема подпрограммы приведена на рис. 8. 3.9. Описание подпрограммы SHOWQUALITY 3.9.1. Вводная часть Синтаксис: procedure showquality(typ,kol,Num:word); Подпрограмма используется в программе ELITE.PAS. Подпрограмма написана на языке программирования Borland Pascal версии 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.9.2. Функциональное назначение Подпрограмма ShowQuality предназначена для вывода в табличной форме результатов моделирования эволюции элитной группы. 3.9.3. Описание информации Входные данные: typ - вывод данных элитной группы в таблицу(0 - до моделирования, 1 - после); Num - размер элитной группы; Kol - количество критериев отбора. Выходные данные: Выводит на экран данные элитной группы в табличной форме. Пример видеограммы приведен на рис. . 3.9.4. Используемые подпрограммы Данная подпрограмма не использует других подпрограмм, кроме стандартных функций и процедур библиотеки языка программирования Borland Pascal версии 7.0 фирмы Borland International. 3.9.5. Описание логики Описание блок-схемы подпрограммы ShowQuality; 1. Если typ=0, то переход к п. 2, иначе к п. 4; 2. Вывод “Среднее арифм. критериев”; 3. Вывод таблицы; 4. s:=0; i:=0; 5. Если i>=Kol, то переход к п. 12; 6. j:=0; 7. s:=s+otb[j,i]; j:=j+1; 8. Если j<N, то переход к п. 7; 9. f:=S/(N+1); 10. Вывод t; 11. i:=i+1; 12. Конец. Блок-схема подпрограммы приведена на рис. 9. 3.10. Описание подпрограммы INPUT 3.10.1. Вводная часть Синтаксис: procedure input(Num:byte); Подпрограмма используется в программе ELITE.PAS. Подпрограмма написана на языке программирования Borland Pascal версии 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. 3.10.2. Функциональное назначение Подпрограмма INPUT предназначена для тестирования всех остальных подпрограмм. 3.10.3. Описание информации Входные данные: Num - номер тестируемой подпрограммы: 2 - PRETENDENT; 3,4 - PROPOLKA; 5 - DELEGATION. Выходные данные: Не имеет. 3.10.4. Используемые подпрограммы Данная программа , кроме стандартных подпрограмм библиотеки языка программирования Borland PASCAL версии 7.0 фирмы Borland International, использует следующие подпрограммы: elem - для моделирования нового элемента; pretendent - для тестирования; propolka - для тестирования; delegation - для тестирования; showquality - для вывода результатов тестирования в табличной форме. 3.10.5. Описание логики Описание блок-схемы подрограммы INPUT. 1. Если flag=15 &(nm2=0 or nm2=6), то переход к п. 40; 2. Вызов подпрограммы nm2:=menu(2); 3. Если nm2<>6 & nm2<>0, то переход к п. 4, иначе к п. 5; 4. test:=1; 5. Если nm2=2, то переход к п. 13, иначе, если nm2=3, то переход к п. 20, иначе если nm2=4, то переход к п. 25, иначе если nm2=5, то переход к п. 32, иначе если nm2=6 or nm2=0, то переход к п. 55, иначе если nm2=1, то переход к п. 6; 6. Вывод “Колич. критериев”; 7. Ввод t; 8. Если t>=20, то переход к п. 9, иначе к п. 10; 9. t:=20; 10. Если t<1, то переход к п. 11, иначе к п. 12; 11. t:=1; 12. t:=t-1; flag:=flag or 1; переход к п. 55; 13. j:=0; 14. Вывод “Разброс значений”; 15. Ввод ran[0,j], ran[1,j]; 16. Вывод “Приоритет критерия”; 17. Ввод ran[2,j]; 18. flag:=flag or 2; j:=j+1; 19. Если j<t, то переход к п. 14, иначе к п. 55; 20. Вывод “Размер группы”; 21. Ввод N; 22. Если N>200, то переход к п. 23, иначе к п. 24; 23. n:=200; 24. flag:=flag or 4; переход к п. 55; 25. Если Num=5, то переход к п. 26, иначе к п. 55; 26. Вывод “Делегирующая группа”; 27. Ввод dl; 28. Если dl>400, то переход к п. 29, иначе к п. 30; 29. dl:=400; 30. Если dl<1, то переход к п. 31, иначе к п. 32; 31. dl:=1; переход к п. 55; 32. Вывод “Циклы жизни”; 33. Ввод f; 34. Если f>4000, то переход к п. 35, иначе к п. 36; 35. f:=4000; 36. Если f<1, то переход к п. 37, иначе к п. 38; 37. f:=1; 38. f:=f-1; flag:=flag or 8; переход к п. 55; 39. переход к п. 1; 40. Если test=1, то переход к п. 41, иначе к п. 49; 41. i:=0; 42. Вызов подпрограммы elem(t,i); i:=i+1; 43. Если i<N, то переход к п. 42; 44. i:=0; 45. j:=0; 46. otb[i+n+ck,j]:=otb[i,j]; j:=j+1; 47. Если j<T, то переход к п. 46; i:=i+1; 48. Если i<N, то переход к п. 45, иначе к п. 54; 49. i:=0; 50. j:=0; 51. otb[i,j]:=otb[i+n+ck,j]; j:=j+1; 52. Если j<T, то переход к п. 51; i:=i+1; 53. Если i<N, то переход к п. 50; 54. Вызов подпрограммы ShowQuality(0,t,n); 55. i:=1; 56. Если num=2, то переход к п. 57, иначе к п. 58; 57. Вызов подпрограммы pretendent(t); переход к п. 61; 58. Вызов подпрограммы propolka(1,t,0); переход к п. 61; 59. Вызов подпрограммы propolka(1,t,1); переход к п. 61; 60. Вызов подпрограммы delegation(dl,j,t); 61. Если readkey=27, то переход к п. 64; 62. i:=i+1; 63. Если i<f, то переход к п. 56; 64. Вызов подпрограммы ShowQuality(1,t,0); 65. Конец. Блок-схема подпрограммы приведена на рис. 10. 4. ОПИСАНИЕ КОНТРОЛЬНОГО ПРИМЕРА 4.1. Назначение Контрольный пример предназначен для оценки правильности работы программы. В данном случае, контрольный пример предназначен для оценки корректности моделирования эволюции элитных групп. 4.2. Исходные данные Исходными данными являются данные о критериях оценки элитной группы до моделирования. Эти данные представлены в таблице 4. Список приоритетов и начальные значения представлены в таблице 5. Таблица 4.
Пределы изме­ненияНазвание критерия
160 - 2401. Рост (в см.)
0 - 1002. Результативность бросков по воротам (в %)
0 - 1003. Количество проигранных матчей (в %)
1 - 54. Степень игры в пас (по 5-ти балльной системе)
0 - 2005. Коэффициент интеллекта
Таблица 5.
Начальные показателиПриоритет
1194.0000001
251.1500002
348.550000-1
42.8000001
589.6000001
4.3. Результаты расчета В результате расчёта выяснилось, что критерии 1,2,4,5 должны возрасти, а 3 - уменьшится. 4.4. Результаты испытания программы При сравнении контрольных результатов (см. табл. 6) с полученными (см. Приложение 2) обнаруживаем, что контрольные результаты совпадают с полученными. Вывод: программа работает правильно.
Выберите режим:

Справка

Претендент-рекомендатель

Прополка

Сбор урожая

Делегирование

Выход

Рис. 1. Основное меню
Выберите режим:

Критерии

Значения

Размер элитной группы

Размер делег. группы

Количество циклов жизни

Выход

Рис. 2. Неосновное меню

Процедура “Претендент-рекомендатель”

Среднее арифметическое показателей элитной группы

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

Начальные показателиПосле отбора

1194.000000206.100000

251.15000069.250000

348.55000040.100000

42.8000002.900000

589.600000134.750000

Рис. 3. Таблица полученных результов

Рис. 4. Блок-схема функции PARET.

Рис. 5. Блок-схема функции ELEM

Рис. 6. Блок-схема подпрограммы HELP

Рис. 7. Блок-схема подпрограммы SORT

Рис. 8. Блок-схема подпрограммы PRETENDENT

Рис. 9. Блок-схема подпрограммы PROPOLKA

Рис. 10. Блок-схема подпрограммы DELEGATION

Рис. 11. Блок-схема подпрограммы SHOWQUALITY

Рис. 12. Блок-схема программы

Рис. 13. (продолжение)

Рис. 13. (продолжение)

Рис. 13. (окончание)
ЗАКЛЮЧЕНИЕ В данной работе была построена чрезвычайно упрощенная модель эволюции элитной группы. Однако несмотря на всю её простоту, можно проследитьЮ что элитные группы не всегда прогрессируют. Причины этого – правила выбытия элементов из элитной группы и вхождение в неё. Результаты решения данной задачи имеют аналоги в общественных процессах. Пока что это есть наипростейшая модель, но даже её анализ показывает, что возможно построение элитных групп, не подверженных деградации. СПИСОК ЛИТЕРАТУРЫ 1. Ф.И. Перегудов, Ф.П. Тарасенко "Введение в системный анализ", -М.: Высшая Школа. 1989. 2. А.Н. Ефимов "Элитные группы, их возникновение и эволюция", Знание-сила. 1988. №1, С. 56-64. 3. А.Н. Ефимов, В.М. Кутеев "Исследование и моделирование некоторых свойств элитных групп", Изв. АН СССР. Техническая кибернетика. 1980. №3, С. 177-185. 4. А.Н. Ефимов, В.М. Кутеев "Ранговые процедуры управления эволюцией элитных групп", Изв. АН СССР. Техническая кибернетика. 1980. №6, С. 3-12. 5. В.Н. Кучуганов, В.П. Соболева "Методические указания по оформлению курсовых и дипломных работ для студентов спец. 22.04 "Программное обеспечение вычислительной техники и автоматизированных систем", -Ижевск: ИжГТУ. 1992. 6. С. В. Почерняев "Методические указания к выполнению курсовой работы по курсу "Системное программное обеспечение"", -Ижевск: ИжГТУ. 1993. ПРИЛОЖЕНИЕ 1. ТЕКСТ ПРОГРАММЫ {$N+,E-} uses crt,elitem,win; type tbyte=longint; const Number=200; M=19; cK=400; t:tbyte=0; flag:byte=0; dl:tbyte=2; z:word=1; var otb:array [0..2*Number+cK,0..M] of tbyte; ran:array [0..2,0..M] of tbyte; i,k,j,l,f,n,p:word; nm:byte; c:char;b:boolean; function Paret(Kol:byte;x,y:word):shortint; {Kol - количество критериев выбора} var i,j:tbyte; a,b:boolean; k:word; begin a:=true; b:=true; i:=0; j:=0; for k:=0 to Kol do begin a:=a and (otb[x,k]*ran[2,k]>otb[y,k]*ran[2,k]); b:=b and (otb[x,k]*ran[2,k]<otb[y,k]*ran[2,k]); end; if not(a or b) then begin for k:=0 to Kol do begin i:=i+otb[x,k]*ran[2,k]; j:=j+otb[y,k]*ran[2,k]; end; a:=(i>j); end; if a then paret:=0 else if b then paret:=1 else paret:=-1; end; procedure elem(Kol,Num:word); var i:word; {Kol - количество критериев Num - номер элемента } begin for i:=0 to Kol do otb[Num,i]:=random(ran[1,i]-ran[0,i])+ran[0,i]; end; procedure SORT; var i,j,k,l:word; pr:tbyte; begin for i:=0 to N do begin k:=i; for j:=i+1 to N do if paret(M,k,j)=0 then k:=j; for l:=0 to M do begin pr:=otb[i,l]; otb[i,l]:=otb[k,l]; otb[k,l]:=pr; end; end; end; procedure Pretendent(Kol:word);{ Kol - количество критериев } var num,num1:word; k:shortint; begin num:=random(N+1); {номер удаляемого элемента } j:=0; repeat repeat num1:=random(N+1); { номер рекомендателя } until num<>num1; elem(Kol,Num); k:=paret(Kol,Num,Num1); inc(j); until (k=0) or (j>3*N); end; procedure Propolka(Num,Kol,typ:word); { Num - количество изымаемых элементов Kol - количество критериев typ=0 - прополка; typ=1 - сбор урожая;} var i,m,j:word; begin SORT; if typ=0 then begin m:=0; j:=Num; end else begin m:=N-Num; j:=N; end; for i:=m to j do elem(Kol,i); end; procedure Delegation(Kol,Num,Kk:word); { Kol - количество элементов в делегирующей группе Num - номер делегата в элитной группе } var i,j,mn,mx:word; begin for i:=0 to Kol do elem(Kk,i+N); mx:=0; for i:=1 to kol do if paret(Kk,i+N,mx+N)=0 then mx:=i; for i:=0 to Kk do otb[Num,i]:=otb[mx+N,i]; end; procedure ShowQuality(typ,Kol,Num:word); var i,j:word;S:tbyte; f:extended; begin if typ=0 then begin clrscr; write(' Процедура '); case Num of 2: writeln('"Претендент-рекомендатель"'); 3: writeln('"Прополка"'); 4: writeln('"Сбор урожая"'); 5: writeln('"Делегирование"'); 0:; end; writeln; writeln('Среднее арифметическое показателей элитной группы'); writeln(' по различным критериям до и после моделирования.'); writeln('+—————————————————————+'); writeln('¦NN¦Начальные показатели¦ После отбора ¦'); writeln('+—+——————————+—————————¦'); end; for i:=0 to Kol do begin if typ=0 then begin gotoxy(1,i+7); write('¦',i+1:2,'¦ ','¦':19,'¦':22); end; gotoxy(6+typ*23,i+7); s:=0; for j:=0 to N do S:=S+otb[j,i]; f:=S/(N+1); write(f:9:6); end; writeln; writeln('+—————————————————+'); if typ=1 then c:=readkey; end; procedure input(Num:byte); var nm2,test:byte; begin test:=0; repeat nm2:=menu(2); if (nm2<>6) and (nm2<>0) and (nm2<>4) then test:=1; case nm2 of 1: begin writeln('Введите количество критериев отбора(до 20): '); readln(t); if t>=20 then t:=20; if t<1 then t:=1; dec(t); flag:=0; flag:=flag or 1; end; 2: if (flag and 1)=1 then for j:=0 to t do begin writeln('Введите разброс значений ',(j+1):-3,' критерия '); readln(ran[0,j],ran[1,j]); writeln('Введите приоритет ',(j+1):-3,' критерия'); readln(ran[2,j]); flag:=flag or 2; end; 3: begin writeln('Введите размер элитной группы(до 200)'); readln(N); if N>=200 then n:=200; if N<1 then n:=1; dec(n); if (num in [3,4]) then begin writeln('Сколько элементов удалять на каждом шаге'); readln(z); if z>n then z:=n-1; if z<1 then z:=1; end; flag:=flag or 4; end; 4: if Num=5 then begin writeln('Введите размер делегирующей группы(до 400)'); readln(dl); if dl>=400 then dl:=400; if dl<1 then dl:=1; end; 5: begin writeln('Введите количество циклов жизни элитной группы (до 4000)'); readln(f); if f>=4000 then f:=4000; if f<1 then f:=1; flag:=flag or 8; end; 0,6: ; end; until (flag=15) and ((nm2=0) or (nm2=6)); if test=1 then begin for i:=0 to n do elem(t,i); for i:=0 to n do for j:=0 to t do otb[i+n+ck,j]:=otb[i,j]; end else for i:=0 to n do for j:=0 to t do otb[i,j]:=otb[i+n+ck,j]; ShowQuality(0,t,Num); for i:=1 to f do begin case Num of 2: pretendent(t); 3: propolka(z,t,0); 4: propolka(z,t,1); 5: begin j:=random(N); delegation(dl,j,t); end; end; gotoxy(75,1);write(i:4); if keypressed then if readkey=#27 then break; end; Showquality(1,t,0); end; procedure help; const attr=blue*16+Lightgreen; begin window(23,7,56,18); highvideo; FrameWin('Справка',DoubleFrame,Attr,Attr); textbackground(blue); textcolor(Lightgreen); gotoxy(2,1); clrscr; writeln(' Эволюция элитных групп'); writeln; writeln(' Создана студентами '); writeln(' группы 6-19-2'); writeln; writeln(' Авторы:'); writeln(' Григорьев Максим'); writeln(' Леонидович'); writeln(' Руденко Виталий Николаевич'); textbackground(black); textcolor(white); normvideo; window(1,1,80,25); readln; end; begin clrscr; n:=0;b:=false; repeat nm:=menu(1); case nm of 1: help; 2,3,4,5: input(nm); 0,6: b:=true; end; clrscr; until b; end. ПРИЛОЖЕНИЕ 2. РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ ПРОГРАММЫ
Выберите режим:

Справка

Претендент-рекомендатель

Прополка

Сбор урожая

Делегирование

Выход

Справка

Эволюция элитных групп

Создана студентами

группы 6-19-2

Авторы:

Григорьев Максим

Леонидович

Руденко Виталий Николаевич

Выберите режим:

Справка

Претендент-рекомендатель

Прополка

Сбор урожая

Делегирование

Выход

Выберите режим:

Критерии

Значения

Размер элитной группы

Размер делег. Группы

Количество циклов жизни

Выход

Введите количество критериев отбора(до 20): 5
Выберите режим:

Критерии

Значения

Размер элитной группы

Размер делег. группы

Количество циклов жизни

Выход

Введите разброс значений 1 критерия 160 240 Введите приоритет 1 критерия 1 Введите разброс значений 2 критерия 0 100 Введите приоритет 2 критерия 2 Введите разброс значений 3 критерия 0 100 Введите приоритет 3 критерия -1 Введите разброс значений 4 критерия 1 5 Введите приоритет 4 критерия 1 Введите разброс значений 5 критерия 0 200 Введите приоритет 5 критерия 1 Введите размер элитной группы(до 200) 20 Введите количество циклов жизни элитной группы (до 4000) 100

Процедура “Претендент-рекомендатель”

Среднее арифметическое показателей элитной группы

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

Начальные показателиПосле отбора

1194.000000206.100000

251.15000069.250000

348.55000040.100000

42.8000002.900000

589.600000134.750000

Процедура “Прополка”

Среднее арифметическое показателей элитной группы

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

Начальные показателиПосле отбора

1194.000000204.550000

251.15000075.050000

348.55000033.200000

42.8000002.550000

589.600000156.450000

Процедура “Сбор урожая”

Среднее арифметическое показателей элитной группы

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

Начальные показателиПосле отбора

1194.000000183.000000

251.15000013.500000

348.55000059.000000

42.8000002.650000

589.60000050.100000

Введите размер делегирующей группы(до 400):20

Процедура “Делегирование”

Среднее арифметическое показателей элитной группы

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

Начальные показателиПосле отбора

1194.000000208.200000

251.15000078.900000

348.55000027.200000

42.8000002.650000

589.600000149.200000

Выберите режим:

Справка

Претендент-рекомендатель

Прополка

Сбор урожая

Делегирование

Выход

ПРИЛОЖЕНИЕ 3. РУКОВОДСТВО ПРОГРАММИСТА П3.1. Назначение программы Программа ELITE.PAS предназначена для наблюдения за формированием и развитием элитной группы с большим количеством критериев отбора. Программа написана на языке прграммирования Borland Pascal 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. П3.2. Условия применения программы Данная программа реализованна для работы под операционной системой MS-DOS v.3.3 и выше. В состав операционной системы должны быть включены транслятор языка PASCAL (TPC.EXE v.7.0), обязательно наличие модуля WIN.TPU. К выше перечисленным программам должны быть добавлены программы, входящиt в состав языка программирования Borland PASCAL 7.0. Программа ELITE представляет собой пакет программ, состоящий из 2-x файлов: WIN.TPU и ELITE.PAS которые должны быть оттранслированы при помощи TPC.EXE или в интегрированной среде языка программирования BORLAND PASCAL. Модуль ELITE.PAS содержит основную программу. В модуле WIN.TPU содержаться подпрограммы, необходиме для создания меню и диалог с пользователем. Для функционирования данной программы может быть использован любой персональный компьютер совместимый с IBM PC AT 286 или выше, с объемом оперативной памяти не меньше 640К. Минимальный объем памяти внешних устройств - около 1230К с учетом размещения на них транслятора, компановщика, компилятора и библиотек. Из программного обеспечения необходима операционная система MS-DOS версии не ниже 3.30 (или PC DOS) под управлением которой работает программа и комплекс программ, входящих в состав языка программирования Borland Pascal версии 7.0 фирмы Borland International. П3.3. Характеристика программы Объём исполнимого файла программы (ELITE.EXE) около 15 кБ. Скорость работы порграммы зависит как от скорости ввода данных, так и от быстродействия компьютера. П3.4. Обращение к программе Программа ELITE представляет собой файл на диске с именем ELITE.EXE. Для запуска программы необходимо в командной строке DOS набрать имя программы с указанием пути к файлу и нажать клавишу <ENTER>. П3.5. Входная и выходная информация Разработанная программа осуществляет ввод данных с клавиатуры с помощью меню и непосредственных запросов. Входной информацией задачи является таблица параметров задачи, структура которой представлена в таблице 6. Данные нужно вводить в виде целых чисел. Таблица6.
НазваниеРасшифровкаТип
КритерииКоличество критериев выборацелое, больше 0
Разброс зна­чений2 значения, 1-е всегда меньше второго - в пределах каких значений изменяется критерийцелые, больше 0
ПриоритетПриоритет данного значения (чем больше, тем выше приоритет)целое
Размер элитной группыКоличество элементов в элитной группецелое, больше 0
Размер делегирующей группыКоличество элементов в делеги­рующей выборкецелое, больше 0
Количество циклов жизниКоличество выбывших из элитной группы элементовцелое, больше 0
Выходная информация представлена несколькими вещественными числами(по 2 числа для каждого критерия), выводимых в виде таблицы, структура которых представлена в таблице 7. Таблица 7.
Условное обозначениеРасшифровка обозначениий
Начальные показателиСредние показатели данного критерия по группе до проведения отбора
После отбораСредние показатели данного критерия по группе после проведения отбора
П3.6. Сообщения Сообщения, а также действия программиста при их появлении описаны в таблице 8. Таблица 8.
СообщениеДействия программиста
Введите количество критериев отбора(до 20)Необходимо ввести количество критериев оценки. Не следует вводить числа больше 20 или меньше 1.
Введите разброс значений критерияВведите разбросы значений критериев отбора. Сначала необходимо вводить меньшую границу, а затем большую. Числа должны бать целыми и положительными.
Введите приоритет критерияВведите приоритет критерия. Если введено отрицательное число, то при отборе будут предпочитаться элементы с меньшим значением данного критерия. Чем больше по модулю значение приоритета, тем большую роль он будет играть при выборе элемента.
Введите размер элитной группы (до 200)Необходимо ввести размер элитной группы. Не следует вводить числа больше 200 или меньше 1.
Введите количество циклов жизни элитной группы(до 4000)Необходимо ввести количество циклов жизни. Не следует вводить числа больше 4000 или меньше 1. При слишком больших значениях данного параметра возможна задержка привычислениях.
Введите размер делегирующей группы(до 400)Необходимо ввести размер делегирующей группы. Не следует вводить числа больше 400 или меньше 1.
Сколько элементов удалять на каждом шагеВведите количество удаляемых на каждом шаге элементов из элитной группы при использовании процедур “прополка” и “делегирование”.
Меню “Режим”Выберите необходимый пункт меню с помощью клавиш ”вверх” и “вниз” движения курсора и нажать клавишу <Enter>.
ПРИЛОЖЕНИЕ 4 РУКОВОДСТВО ОПЕРАТОРА П4.1. Назначение программы Программа ELITE.PAS предназначена для наблюдения за формированием и развитием элитной группы с большим количеством критериев отбора. Программа написана на языке прграммирования Borland Pascal 7.0 фирмы Borland International на ПЭВМ IBM PC AT 486DX/50. П4.2. Условия применения программы Для функционирования данной программы может быть использаван любой персональный компьютер, совместимый с IBM PC AT 286 с математическим сопроцессором 287, с минимальным объёмом оперативной памяти 640К. Желательно иметь накопитель на жестком или гибком магнитном диске, с которого будет производиться запуск программы. Из програмного обеспечения необходима операционная система MS-DOS версии не ниже 3.3 (или РС-DOS) под управлением которой работает программа. П4.3. Пуск программы Программа ELITE представляет собой файл на диске с именем ELITE.EXE. Для запуска программы необходимо в командной строке DOS набрать имя программы с указанием пути к файлу и нажать клавишу <ENTER>. П4.4. Команды оператора Выполнение программы может быть прервано клавишей Esc или нажатием комбинации клавиш <Ctrl+Break> или <Ctrl+C>. П.4.5. Сообщения оператору Сообщения, а также действия оператора при их появлении описаны в таблице 9. Таблица 9.
СообщениеДействия оператора
Введите количество критериев отбора(до 20)Необходимо ввести количество критериев оценки. Не следует вводить числа больше 20 или меньше 1.
Введите разброс значений критерияВведите разбросы значений критериев отбора. Сначала необходимо вводить меньшую границу, а затем большую. Числа должны бать целыми и положительными.
Введите приоритет критерияВведите приоритет критерия. Если введено отрицательное число, то при отборе будут предпочитаться элементы с меньшим значением данного критерия. Чем больше по модулю значение приоритета, тем большую роль он будет играть при выборе элемента.
Введите размер элитной группы (до 200)Необходимо ввести размер элитной группы. Не следует вводить числа больше 200 или меньше 1.
Введите количество циклов жизни элитной группы(до 4000)Необходимо ввести количество циклов жизни. Не следует вводить числа больше 4000 или меньше 1. При слишком больших значениях данного параметра возможна задержка привычислениях.
Введите размер делегирующей группы(до 400)Необходимо ввести размер делегирующей группы. Не следует вводить числа больше 400 или меньше 1.
Сколько элементов удалять на каждом шагеВведите количество удаляемых на каждом шаге элементов из элитной группы при использовании процедур “прополка” и “делегирование”.
Меню “Режим”Выберите необходимый пункт меню с помощью клавиш ”вверх” и “вниз” движения курсора и нажать клавишу <Enter>.