Курсовая: Эволюция элитных групп в организационных системах
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 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. Задается эталонное значение параметра
А={А1,А2
,¼,А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 и (i
k>j
k);
3. BмB и (i
k<j
k);
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+i
k;
3. BмB+j
k;
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 - 240 | 1. Рост (в см.) |
0 - 100 | 2. Результативность бросков по воротам (в %) |
0 - 100 | 3. Количество проигранных матчей (в %) |
1 - 5 | 4. Степень игры в пас (по 5-ти балльной системе) |
0 - 200 | 5. Коэффициент интеллекта |
Таблица 5.
№ | Начальные показатели | Приоритет |
1 | 194.000000 | 1 |
2 | 51.150000 | 2 |
3 | 48.550000 | -1 |
4 | 2.800000 | 1 |
5 | 89.600000 | 1 |
4.3. Результаты расчета
В результате расчёта выяснилось, что критерии 1,2,4,5 должны возрасти, а 3 -
уменьшится.
4.4. Результаты испытания программы
При сравнении контрольных результатов (см. табл. 6) с полученными (см.
Приложение 2) обнаруживаем, что контрольные результаты совпадают с
полученными. Вывод: программа работает правильно.
Выберите режим: |
Справка Претендент-рекомендатель Прополка Сбор урожая Делегирование Выход |
Рис. 1. Основное меню
Выберите режим: |
Критерии Значения Размер элитной группы Размер делег. группы Количество циклов жизни Выход |
Рис. 2. Неосновное меню
| Процедура УПретендент-рекомендательФ Среднее арифметическое показателей элитной группы по различным критериям до и после моделирования | |
№ | Начальные показатели | После отбора | |
1 | 194.000000 | 206.100000 | |
2 | 51.150000 | 69.250000 | |
3 | 48.550000 | 40.100000 | |
4 | 2.800000 | 2.900000 | |
5 | 89.600000 | 134.750000 | |
| | | | | |
Рис. 3. Таблица полученных результов
| | | | | |
| |
|
| | Рис. 4. Блок-схема функции PARET. |
|
|
| | |
|
| Рис. 5. Блок-схема функции ELEM |
|
|
| Рис. 6. Блок-схема подпрограммы HELP |
|
|
| Рис. 7. Блок-схема подпрограммы SORT |
|
|
| Рис. 8. Блок-схема подпрограммы PRETENDENT |
|
|
| Рис. 9. Блок-схема подпрограммы PROPOLKA |
|
| | | | | | | |
| | |
| | |
|
| | | |
|
|
| |
|
| | Рис. 10. Блок-схема подпрограммы DELEGATION |
|
|
| Рис. 11. Блок-схема подпрограммы SHOWQUALITY |
|
|
| Рис. 12. Блок-схема программы |
|
ЗАКЛЮЧЕНИЕ
В данной работе была построена чрезвычайно упрощенная модель эволюции элитной
группы. Однако несмотря на всю её простоту, можно проследитьЮ что элитные
группы не всегда прогрессируют. Причины этого Ц правила выбытия элементов из
элитной группы и вхождение в неё.
Результаты решения данной задачи имеют аналоги в общественных процессах. Пока
что это есть наипростейшая модель, но даже её анализ показывает, что возможно
построение элитных групп, не подверженных деградации.
СПИСОК ЛИТЕРАТУРЫ
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
| Процедура УПретендент-рекомендательФ Среднее арифметическое показателей элитной группы по различным критериям до и после моделирования | |
№ | Начальные показатели | После отбора | |
1 | 194.000000 | 206.100000 | |
2 | 51.150000 | 69.250000 | |
3 | 48.550000 | 40.100000 | |
4 | 2.800000 | 2.900000 | |
5 | 89.600000 | 134.750000 | |
| | | | | |
| Процедура УПрополкаФ Среднее арифметическое показателей элитной группы по различным критериям до и после моделирования | |
№ | Начальные показатели | После отбора | |
1 | 194.000000 | 204.550000 | |
2 | 51.150000 | 75.050000 | |
3 | 48.550000 | 33.200000 | |
4 | 2.800000 | 2.550000 | |
5 | 89.600000 | 156.450000 | |
| | | | |
| Процедура УСбор урожаяФ Среднее арифметическое показателей элитной группы по различным критериям до и после моделирования | |
№ | Начальные показатели | После отбора | |
1 | 194.000000 | 183.000000 | |
2 | 51.150000 | 13.500000 | |
3 | 48.550000 | 59.000000 | |
4 | 2.800000 | 2.650000 | |
5 | 89.600000 | 50.100000 | |
| | | | |
Введите размер делегирующей группы(до 400):20
| Процедура УДелегированиеФ Среднее арифметическое показателей элитной группы по различным критериям до и после моделирования | |
№ | Начальные показатели | После отбора | |
1 | 194.000000 | 208.200000 | |
2 | 51.150000 | 78.900000 | |
3 | 48.550000 | 27.200000 | |
4 | 2.800000 | 2.650000 | |
5 | 89.600000 | 149.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>. |