автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.16, диссертация на тему:Моделирование структуры социально-экономической системы методами автоматической классификации

кандидата технических наук
Новгородцева, Татьяна Юрьевна
город
Иркутск
год
1999
специальность ВАК РФ
05.13.16
Диссертация по информатике, вычислительной технике и управлению на тему «Моделирование структуры социально-экономической системы методами автоматической классификации»

Оглавление автор диссертации — кандидата технических наук Новгородцева, Татьяна Юрьевна

ВВЕДЕНИЕ

1. МОДЕЛИ, МЕТОДЫ И СРЕДСТВА ПРОЕКТИРОВАНИЯ, АНАЛИЗА, ВЫЯВЛЕНИЯ СТРУКТУРЫ СОЦИАЛЬНО-ЭКОНОМИЧЕСКОЙ СИСТЕМЫ

1.1. Модели структуры социально-экономической системы (СЭС)

1.2. Методы и средства проектирования структуры СЭС

1.3. Методы и средства анализа структуры СЭС

1.4. Выявление реальной структуры самоорганизующейся социально -экономической системы (ССЭС)

1.5. Постановка задачи

2. МОДЕЛИ И МЕТОДЫ ВЫЯВЛЕНИЯ РЕАЛЬНОЙ СТРУКТУРЫ ССЭС

2.1. Модель структуры и структурного элемента социально -экономической системы

2.2. Способы выявления структурных элементов по принципу схожести

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

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

2.3. Процедуры (методы) выявления структуры

2.3.1. Совместное использование компонентного и дискриминант-ного анализов для выявления неиерархической структуры

2.3.2. Совместное использование кластерного анализа и матриц рассеяния для выявления иерархической структуры

2.4. Выводы по главе

3. ДИАЛОГОВАЯ СИСТЕМА "МЕТОДЫ АВТОМАТИЧЕСКОЙ КЛАССИФИКАЦИИ" (МАК) - СРЕДСТВО МОДЕЛИРОВАНИЯ СТРУКТУРЫ СИСТЕМЫ

3.1. Назначение и структура

3.2. Описание исходных данных

3.3 Предварительная обработка данных

3.4. Процедуры разбиения

3.5. Способы графического представления структуры

3.5.1. Представление иерархической структуры

3.5.2. Представление неиерархической структуры

4. ПРИМЕНЕНИЕ МЕТОДОВ КЛАССИФИКАЦИИ ДЛЯ МОДЕЛИРОВАНИЯ СТРУКТУРЫ ССЭС

4.1. Методика моделирования структуры ССЭС 4.1.2. Постановка задачи выявления модели реальной структуры системы

4.1.2. Сбор исходных данных и их предварительная обработка

4.1.3. Выбор и применение процедуры моделирования

4.1.4. Интерпретация результатов моделирования

4.2. Модель организационной структуры транспортной системы города (на примере автобусных маршрутов г.Иркутска)

4.3. Модель конструктивно-технологической структуры производства изделий сборного железобетона

Введение 1999 год, диссертация по информатике, вычислительной технике и управлению, Новгородцева, Татьяна Юрьевна

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

Исследование структуры (внутреннего строения) любой системы, в том числе социально-экономической, позволяет выяснить правила и границы ее функционирования, качество выполняемых задач и степень достижения целей. Влияние структуры на эффективность работы системы осуществляется через особенности технологических, экономических, информационных и других взаимосвязей отдельных элементов. Различные комбинации взаимосвязей элементов влияют на реализацию полезных свойств каждого из них и создают новые и уникальные качества системы в целом.

В современных условиях перехода к рыночной экономике проблемы и вопросы исследования структур приобретают особую актуальность. Переходный период требует тщательного подхода к преобразованию существующей (организационной, производственной, технологической, информационной и т.д.) структуры и скрупулезного анализа ее функций, позволяющих выработать наиболее эффективные, эластичные направления преобразования.

Существующие направления исследования структур социально-экономической системы можно условно разделить на две группы: проектирование и совершенствование структуры; анализ структуры существующей системы. При этом первое- направление связано- с решением. 6 задачи формирования формальной структуры системы, второе - с определением основных характеристик при некоторой фиксированной структуре.

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

Цель работы состоит в создании методико-инструментальной базы моделирования структуры социально-экономической системы методами автоматической классификации.

В теоретическом и методическом плане цель работы заключается в обосновании нового подхода к исследованию социально-экономической системы - моделирование реальной структуры с использованием методов многомерного статистического анализа: компонентного, кластерного, дискриминантного. В техническом плане целью является реализация программного обеспечения, позволяющего осуществлять моделирование структуры системы.

Реализация цели предполагает:

- изучение основных направлений исследования структур социально-экономической системы;

- разработку моделей структуры системы и структурного элемента;

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

- применение разработанной методики моделирования на практике.

Научная новизна заключается в следующем.

1) Обоснован метод моделирования (выявления) реальной структуры социально-экономической системы, основанный на методах автоматической классификации.

2) Впервые предложена методика моделирования структуры социально-экономической системы с использованием аппарата автоматической классификации.

3) Разработан программный комплекс, позволяющий эффективно проводить исследования, связанные с моделированием структуры.

4) Предложенная методика и средства моделирования апробированы в задачах: моделирование организационной структуры транспортной системы города; выявление конструктивно-технологической структуры производства изделий сборного железобетона.

Разработанные в диссертации методика и программный комплекс прошли практическую проверку в ходе научно-исследовательских работ, выполненных автором для следующих организаций: комбинат панельного домостроения г. Иркутска, транспортный отдел администрации г. Иркутска, отдел анализа здоровья и окружающей среды при Иркутском городском центре Госсанэпиднадзора (ИГЦГСЭН), отдел по делам несовершеннолетних УВД Иркутской области. Работа выполнялась в рамках госбюджетных исследований кафедры "Информатика и кибернетика" Иркутской государственной экономической академии по теме "Вероятностный процессор" (К Г-60).

Теоретические и практические результаты работы докладывались и обсуждались на Региональной конференции «Опыт и основные направления использования вычислительной техники и экономико-математических методов в управлении производством» (Иркутск, 1986), Всесоюзной научно-практической конференции «Совершенствование управления и планирования транспорта» (Иркутск, 1987), Всесоюзной научно-технической конференции "Идентификация, измерение- характеристик и имитация- случайных - сигналов" 8

Новосибирск, 1994г.), Региональной школе-семинаре "Информационные системы в экономике (опыт, проблемы, перспективы)" (Чита, 1996г.), Региональной конференции «Проблемы медицинской экологии и здоровья человека в Сибири» (Ангарск, 1996г.), Региональной научно-практической конференции «Региональные проблемы гигиены и экологии человека» (Иркутск, 1998г.).

Основные результаты диссертации отражены в 8 работах (2,82 п.л.).

Диссертация состоит из введения, четырех глав, заключения, списка литературы и приложений.

Заключение диссертация на тему "Моделирование структуры социально-экономической системы методами автоматической классификации"

Основные результаты диссертационной работы: 1. Впервые предложена и обоснована необходимость операции выявления модели реальной структуры самоорганизующейся социально-экономической системы (ССЭС), позволяющая из множества! Мг} возможных вариантов модели структуры ССЭС получить, на основании выбранного критерия, модель М* ее реальной структуры.

2. Введен новый класс моделей структуры системы и структурного элемента.

3. Разработана процедура выявления модели реальной структуры ССЭС, включающая оригинальное сочетание известных алгоритмов автоматической классификации и критериев качества результатов классификации. Реализована возможность получения моделей реальных структур двух типов: неиерархической и иерархической.

4. Создана диалоговая система "Методы автоматической классификации", позволяющая в интерактивном режиме проводить исследования, связанные с построением модели реальной структуры СЭС.

5. Разработана методика выявления модели реальной структуры системы методами автоматической классификации и рекомендации по основным направлениям ее практического использования.

6. На основании разработанной методики моделирования реальной структуры системы и с помощью диалоговой системы «Методы автоматической классификации» получены: а) модель организационной структуры автобусной транспортной системы города Иркутска с точки зрения качества обслуживания пассажиров и проведен ее анализ. (Результаты моделирования использованы при обосновании нормирования работы траисд к>рта);

97 б) модель конструктивно-технологической структуры производства изделий сборного железобетона, служащая основой для формирования производственных подразделений предприятия; в) модель медико-экологического состояния города Иркутска с точки зрения уровня загрязнения атмосферного воздуха. Результаты моделирования использованы при анализе санитарно-эпидемиологической обстановки города. (Имеется акт о внедрении).

98

ЗАКЛЮЧЕНИЕ

Библиография Новгородцева, Татьяна Юрьевна, диссертация по теме Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)

1. Акофф Р., Эмери Ф. О целеустремленных системах.-М.: Сов. радио, 1974. 180с.: ил.

2. Акофф Р.Д. Планирование в больших экономических системах /Пер. с англ. М.: Сов. радио, 1972. - 119с.: ил.

3. Ассонов Г.Ф., Бурлакова Л.В. Оргструктуры управления в условиях рынка. Киев: УкрНИИНТИ Госкомэкономики УССР, 1991.-32с.: ил.

4. Моделирование и управление в развивающихся системах. -М.: Наука, 1978. -262с.:ил.

5. Нечипоренко В.И. Структурный анализ и методы построения сложных систем. -М.: Сов. радио, 1968.: ил.

6. Янг С. Системное управление организацией/Пер. с англ.-М.: Сов. радио, 1972,-455с.:ил.

7. Общая теория систем. -М.: Мир, 1966, ил.

8. Системный анализ в экономике и управлении производством; Под общ. ред. С.А. Валуева, В.Н. Волковой. Л.: Политехника, 1991. - 398с.: ил.

9. Системный анализ и структуры управления. -М.: Экономика, 1975. -213с.:ил.

10. Растригин Л.А. Современные принципы управления сложными объектами. -М.: Сов. радио, 1980. -232с.:ил.

11. Саати Т., Керне К. Аналитическое планирование. Организация систем / Пер. с англ. -М.: Радио и связь, 1991. -224с.:ил.

12. Тутубалин В.Н. Статистическая обработка рядов наблюдений. -М.: Наука, 1973. е.: ил.

13. Бир Ст. Кибернетика и управление производством / Пер. с англ. В.Я. Алтаева; под ред. А.Б. Челюсткина. М., Государственное издательство физико-математической литературы, 1963. - 274с.: ил.

14. Винер Н. Кибернетика или управление и связь в животном и машине. М., Советское радио, 1968,- 325с.: ил.99

15. Базилевич JI.А. Моделирование организационных структур. -Л.: ЛГУ, 1978.-159с.: ил.

16. Лагоша Б. А. Методы и модели совершенствования организационных структур. -М.: Наука, 1988.-199с.:ил.

17. Методы и модели совершенствования организационных структур / Б.А. Лагоша, В.Г. Шаркович, Т.Г. Дегтярева. -М.: Наука, 1988. -189с.:ил.

18. Модин A.A., Яковенко Е.Г. Организация и управление производственным процессом на промышленном предприятии. -М.: Наука, 1972. -296с.:ил.

19. Овсиевич Б.Л. Модели формирования организационных структур. -Л.: Наука, 1979.-157с.:ил.

20. Португал В.М. и др. Организационная структура оперативного управления производством. -М.: Наука, 1986. -223с.:ил.

21. Щукин В.И., Архипенкр С.М. Экономико-математические модели производственной структуры предприятия. -М.: Экономика, 1973. -151с.:ил.

22. Аганбегян А.Г. Анализ и формирование организационной структуры промышленного предприятия. Новосибирск: Наука, 1983. -182с.:ил.

23. Анализ и формирование организационной структуры промышленного предприятия (вопросы методологии и методики) /Г.В. Гранбэк, В.Г. Басарева, В.Л. Куперштох, Т.А. Сильченко. Новосибирск: Наука, 1983,- 182с.: ил.

24. Беленький П.Е. Проблемы совершенствования производственной структуры промышленных предприятий. -М.: Экономика, 1976.-94с.: ил

25. Казарновский A.C., Перлов П.А., Радченко В.Т. Совершенствование организационных структур промышленных предприятий: вопросы методологии. Киев: Наук, думка, 1981, 310с.:ил.

26. Лехциер Л.И. Структура управления производственными организациями. -М.: МГУ, 1982.-125с.:ил.100

27. Методические вопросы совершенствования производственных и организационных структур. -М.: 1980. 68с.: ил.

28. Олтяну И. Организационные структуры современного предприятия. -М., Экономика, 1971. -87с. :ил.

29. Организационные структуры управления производством /Под общ. ред. Б.З. Мильнера -М.: Экономика, 1975. -320с.:ил.

30. Оргструктура, управление и маркетинг на предприятиях. Барнаул, 1990.-122с.:ил.

31. Сатановский PJL Анализ и проектирование организационного уровня производства. -М.: Экономика, 1982. -151с.:ил.

32. Франчук В.И. Основы построения организационных систем. -М.: Экономика, 1991. -111с.:ил.

33. Шичкин П.В. Методологические основы организационно-экономического проектирования систем управления объединением (предприятием). -Саратов: 1983.-155с.:ил.

34. Ефремов A.B. Формирование производственных структур предприятий и отрасли. -Киев: Наук, думка, 1980,- 154с.: ил.

35. Завьялов О.В. Проектирование производственной структуры цехов с использованием математических методов и ЭЦВМ.-Л.: Прогресс, 1971,-311с.:ил.

36. Щукин В.Н. Оптимизация производственной структуры. -Новосибирск, 1973.-106с. :ил.

37. Лехциер Л.И. Производственные объединения: новая модель организации. -М.: Экономика, 1989.-143с.:ил.

38. Мильнер Б.З. Системный подход к организации управления /Мильнер Б.З., Евенко Л.И., Рапопорт B.C. -М.: Экономика, 1983. 224с.:ил.

39. Мильнер Б.З. Организация программно-целевого уравления. М.: Экономика, 1980. - 376с.:ил.

40. Беленький П.Е. Методы системного анализа производственного процесса. -М.: Экономика, 1972.-151с.: ил.101

41. Мельник М.В. Анализ и оценка систем управления на предприятиях. -М.: Финансы и статистика, 1990. -136с.:ил.

42. Цвиркун А.Д. Структура сложных систем. -М.: Сов. радио, 1975.-200с. :ил.

43. Айвазян С.А., Бежаева З.И., Староверов О.В. Классификация многомерных наблюдений. -М.: Статистика, 1974.-238с.: ил.

44. Кендалл М. Дж., Стьюард А. Многомерный статистический анализ и временные ряды. М., Наука, т.З, 1976. - 736с.: ил.

45. Классификация и кластер. -М.: Мир, 1980. -389с.:ил.

46. Статистические методы классификации и измерения связей. -М., 1977. -144с.:ил.

47. Воронин Ю.А. Теория классифицирования и ее приложения /Под ред. М.М. Лаврентьев. -Новосибирск: Наука, 1985.-231с.: ил.

48. Гранбэк Г.В., Куперштох В.Л., Трофимов В.А. Применение алгоритма классификации взаимодействующих объектов к анализу структуры управления промышленным предприятием // Методы моделирования и обработки информации. -Новосибирск: 1976.-С.135-197.

49. Андерсон Т. Введение в многомерный статистический анализ. -М.: Физматгиз, 1963. -500с.: ил.

50. Афифи А., Эйзен С. Статистический анализ. Подход с использованием ЭВМ. -М.: Мир, 1982.-488с.: ил.

51. Болч Б., Хуань К. Дж. Многомерные статистические методы для экономики / Пер. с англ. А. Д. Плитмана; Под ред. и с предисл. С.А. Айвазяна,-М.: Статистика, 1977.-317с.: ил.

52. Pao С.Р. Линейные статистические методы и их применение. -М.: Наука, 1968, :ил.

53. Дубров А.М. Обработка статистических данных методом главных компонент. -М.: Статистика, 1978.-134с.: ил.

54. Дэвис Дж. С. Статистический анализ данных в геологии /Пер. с англ.; Под ред. Д.А. Родионова. -М.: Недра, 1990.-427с.:ил.102

55. ИберлаК. Факторный анализ. -М.: Статистика, 1980. -398с.:ил.

56. Новгородцева Т.Ю., Чебышева Б.П. Метод главных компонент как один из подходов к решению задачи классификации. ИГЭА,- Иркутск, 1994.//Деп. в ВИНИТИ 20.06.94 №1539-В-94, 13с.

57. Окунь Я. Факторный анализ. -М.: Статистика, 1974.-200с.:ил.

58. Плюта В. Сравнительный многомерный анализ в эконометрическом моделировании / Пер. с польск. В.В. Иванова. -М.: Финансы и статистика, 1989. -175с.:ил.

59. Факторный, дискриминантный и кластерный анализ / Пер. с англ.; Под ред. И.С. Енюкова. -М.: Финансы и статистика, 1989.-215с.:ил.

60. Харман Г. Современный факторный анализ. -М.: Статистика, 1972. -486с.:ил.

61. Hotelling Н. (1993). Analysis of a Complex of Statistical Variable into Principal Components Johrnal of Educational Psichology, vol 24, p.417-441.

62. Акназарова Р.Б., Исаев И.В. Некоторые методы обработки информации для решения задач распознавания образов в системе "человек-ЭВМ". -М.: 1984.-24с.: ил.

63. Алгоритмы обучения распознаванию образов/ Под ред. В. Н. Вапника. -М.: Сов. радио, 1973. 167с.: ил.

64. Дорофеюк А.А. Алгоритмы автоматической классификации (обзор) // Проблемы расширения возможности автоматов. -М.: Труды ИПУ АН СССР, Вып.1., 1971.-С.З-41.

65. Дюкова Е.В., Рязанов В.В. О решении прикладных задач алгоритмами распознавания, основанными на принципе голосования. -М.: Наука, 1986.-26с.: ил.103

66. Дюран Б. Кластерный анализ. -М.: Статистика, 1977.-128с.: ил.

67. Жамбю М. Иерархический кластер-анализ и соответствия. -М.: Финансы и статистика, 1988.-342с.:ил.

68. Загоруйко Н.Г., Елкина В.Н., Лбов Г.С. Алгоритмы обнаружения эмпирических закономерностей. -Новосибирск: Наука, 1985.-110с.:ил.

69. Загоруйко Н.Г. Методы обнаружения закономерностей. -М.: Наука, 1981.-115с.:ил.

70. Игнатьев H.A. Комбинированные алгоритмы распознавания, основанные на методе локальной коррекции: Дис. . канд. физ. мат. Наук:-Свердловск, 1987.-101с.:ил.

71. Мандель И.Д. Кластерный анализ. -М.: Финансы и статистика, 1988.-176с.:ил.

72. Ту Дж., Гонсалес Р. Принципы распознавания образов / Пер. с англ. И.Б. Гуревича, под ред. Ю. И. Журавлева. М., Мир, 1978. - 411с.: ил.

73. Фукунага К. Введение в статистическую теорию распознавания образов. -М.: Наука, 1979.-368с.:ил.

74. Енюков И.С. Методы, алгоритмы, программы многомерного статистического анализа: Пакет ППСА.-М.: Финансы и статистика, 1986,-232с.:ил.

75. Задачи классификации и их программное обеспечение (пакет КВАЗАР) /Под ред. B.C. Казанцева. -М.: Наука, 1990.-136с.:ил.

76. Пакет прикладных программ для решения задач распознавания образов (общ. описание и метод, указания). М.: 1981.-21с.:ил.

77. Пакет прикладных программ КОД-2 /И. Б. Сироджа, Е.М. Крылов,

78. B.А. Дискант и др. Харьков: 1982.-219с.:ил.

79. Пакет прикладных программ ОТЭКС/ Н.Г. Загоруйко, В.Н., Елкина,

80. C.B. Емельянов, Г.С. Лбов. -М.: Финансы и статистика, 1986.-160с.:ил.

81. Пикялис В., Раудис Ш. Общее описание пакета СОРРА-2.Входной язык. Условия применения // Статистические проблемы управления. -Вильнюс: 1982. Вып.58,- С.9-25.104

82. Математическая энциклопедия/ Гл. ред. И.М. Виноградов. М., Советская энциклопедия, т.З., 1984. - 1217с.: ил.

83. Организационно-экономические измерения в планировании и управлении. -JL: 1988. -143с.:ил.

84. Сборник научных программ на фортране: Руководство для программиста / Пер. с англ. С.Я. Виленкина. М.: Статистика, 1974.-Вып. 1 -316с.:ил.

85. Дэйвисон M.J1. Многомерное шкалирование: методы наглядного представления данных/ Пер. с англ. B.C. Каменского. -М.: Финансы и статистика, 1988. -253с.: ил.

86. Большаков A.M., Кравченко Е.А., Черликова C.JI. Повышение качества обслуживания пассажиров и эффективность работы автобусов. -М.: Транспорт, 1981.-206с.: ил.

87. Новгородцева Т.Ю., Рудакова Т.В. Использование методов классификации в оценке качества обслуживания населения. Иркутск, ИГЭА,1996 // Деп. в ВИНИТИ 5.05.96 №1459 В96. - Юс.

88. Новгородцева Т.Ю., Рудакова Т.В. Моделирование организационной структуры транспортной системы города. Иркутск, ИГЭА,1997 //Деп. в ВИНИТИ 11.02.97 №417 В97. - 16с.

89. Островский Н.Б. Пассажирские автомобильные перевозки. -М.: Транспорт, 1986. -222с.:ил.

90. Спиркин И.В. Городские автобусные перевозки. -М.: Транспорт, 1991.-238с.:ил.

91. Гокун В.Б. Технологические основы конструирования машин. -М.: Машиностроение, 1963.-215с.: ил.105

92. Карлик Е.М., Градов А.П. Экономическая эффективность концентрации и специализации производства в машиностроении: Основы теории и методики. -2-е изд., перераб. и доп. -Л.: Машиностроение, 1983.-216с.:ил.

93. Климов А.Н., Оленев И.Л., Соколицын С.А. Организация и планирование производства на машиностроительном предприятии. -Л.: Машиностроение, 1973.-496с. :ил.

94. Новгородцева Т.Ю. Решение задачи анализа степени однородности изделий методами автоматической классификации // Вестник Иркутского института народного хозяйства. Иркутск, 1992. - №3. - С. 13-20.

95. Новгородцева Т.Ю., Чебышева Б.П. Решение задачи анализа степени однородности изделий методом главных компонент // Идентификация, измерение характеристик и имитация случайных сигналов: Тез. докл.межд.науч.-техн.конф. Новосибирск, 1994. - С.120-121.

96. Sum:=ArrayKoli,j.+Sum; Dis :=Sqr(ArrayKol[i,j])+Dis; end;dis :=Sqrt( (dis-Sqr(Sum)/NumbObj) / NumbObj); for j:=l to NumbObj do1. dis<>0 then ArrayKolfi, j .:=(ArrayKoli,j]-Sum/NumbObj)/di else ArrayKol[i, j]: =0 ;end;

97. Writeln(mth,'НОРМИРОВАНИЕ СРЕДНЕКВАДРАТИЧ. ОТКЛОНЕНИЕМ'); Writeln(mth,' ' ) ;

98. MatrToFile(ArrayKol,NumbObj,KolKol); End; { N1 }1. Procedure Norm2; Beginfor i:=l to KolKol do begin Sum:=0;for j:=l to NumbObj do Sum:=ArrayKoli,j.+Sum;1. Sum:=Sum/NumbObj;for j:=l to NumbObj do

99. Sum<>0 then ArrayKoli,j.:=ArrayKol[i,j]/Sum else ArrayKol[i,j]:=0;end;

100. Writeln(mth,'НОРМИРОВАНИЕ СРЕДНИМ ЗНАЧЕНИЕМ'); Writeln(mth,'');

101. Sum:=Sum/NumbObj; m:=(max-min);for j:=l to NumbObj do If m<>0 then ArrayKoli,j.:=(ArrayKol[ielse ArrayKoli, j.:=0;end;

102. Writeln(mth,'НОРМИРОВАНИЕ ЕДИНИЧНЬМ ИНТЕРВАЛОМ'); Writeln(mth,' ' ) ;

103. Writeln (mth, 'НОРМИРОВАНИЕ МАКСИМАЛЬНЫМ ЗНАЧЕНИЯМ'); Writeln(mth,'');

104. MatrToFile(ArrayKol,NumbObj,KolKol); End; { N4 }1. Procedure Norm5; Beginfor i:=l to KolKol do begin1. S urn: = 0 ;for j:=l to NumbObj do Sum:=Sum+ArrayKoli,j.; for j:=l to NumbObj do

105. SumoO then ArrayKol i, j . :=ArrayKol [i, j ]/Sum else ArrayKol[i,j]:=0;end;

106. Writeln(mth,'НОРМИРОВАНИЕ СУММАРНЫМ ЗНАЧЕНИЕМ'); Writeln(mth, ' ' ) ;

107. MatrToFile(ArrayKol,NumbObj,KolKol); End; { N5 }1. Procedure Norm6; Beginfor i:=l to KolKol do begin1. Sum:=0;for j:=l to NumbObj do Sum:=Sum+Sqr(ArrayKoli, j.); for j:-1 to NumbObj do

108. Sqrt(Sum)<>0 then ArrayKoli,j.:=ArrayKol[i,j] else ArrayKol[i,j]:=0;end;

109. Writeln(mth,'НОРМИРОВАНИЕ КВАДРАТИЧЕСКИМ ЗНАЧЕНИЕМ'); Writeln(mth, ' ') ;

110. MatrToFile(ArrayKol,NumbObj,KolKol); End; { N6 }1. END.109

111. Предварительная обработка данных (примеры вычисления некоторых мер сходства)»

112. Модуль Simular предназначен для рассчета мер *)сходства : *)

113. Евклидово, Манхеттенское, *)~ Махаланобиса, *)

114. Коэффициент корреляции; *)

115. Коэффициенты совстречаемости, Жаккарда, *)1. Хемминга *)*) (*--------------------------------------------------------*)1. Входные параметры *)

116. Xk,j. значение k-го признака для j-ro объекта; *)

117. DMAi,j. значение меры сходства между i-м и j-м *)объектами; *)

118. Процедура NormRast не требует нормированных данных *)остальные процедуры рекомендуется использовать *)только после нормированния данных *)*)1. Unit Simular; Interface1.---------------------------------------------------------}1. Uses Constant;

119. Procedure Evklid(Var X : KolType; m, n : Integer); { Вычислеление матрицы мер сходства, используя Евклидово расстояние }

120. Procedure Manhetten(Var X : KolType; m, n : Integer); { Вычислеление матрицы мер сходства, используя Манхеттенское расстояние }

121. Procedure Correlation(Var X : KolType; m, n : Integer); { Вычислеление корреляционной матрицы мер сходства }

122. Procedure Hemming(Var X : KolType; m, n : Integer); { Вычислеление матрицы мер сходства, используя Хемминга расстояние )

123. Procedure Mahlanobis(Var X : KolType; m, n : Integer); { Вычислеление матрицы мер сходства, используя расстояние Махланобиса }

124. Procedure KoffVstr(X : KachType; m, n : Integer; Var XM : KolType); { Вычислеление матрицы мер сходства по качественным признакам, используя коэффициент совстречаемости }110

125. Procedure KoffJackar(X : KachType; m, n : Integer; Var XM { Вычислеление матрицы мер сходства по качественным признакам, используя коэффициент Жаккарда }1. KolType)1.plementation {-------------1. Type1. Massiv TypePointer

126. Array 1.NObj. of Single; = лKolType;1. Var1. Sum : Single;

127. DM : TypePointer; { вспомогательный динамический массив }

128. Procedure CalcKofffm, n : integer;

129. Var a, b, c, d { Вспомогательная процедурадля вычисления коэффициентов ассоциативности Varinteger;integer; Massiv; Boolean;t, f XBar Flag Beginfor t:=l to n do begin

130. Xk,p.=l) (X[k,p]=l) (X[k,p]=0) (X[k,p]=0)and and and and

131. Xk,q.=l) (X[k,q]=0) (X[k,q]=l) (X [ k, q] =0)1. Flag := False;then inc(a) then inc(c) then inc(b) then inc(d)

132. Xk,p.>=XBar[k]) and (X[k,q]>=XBar[k]) theninc(a)

133. Xk,p.>=XBar[k]) and (X[k,q]<XBar[k]) then inc(c)

134. Xk,p.<XBar[k]) and (X[k,q]>=XBar[k]) theninc(b)

135. Xk,p.<XBar[k]) and (X[k,q]<XBar[k]) then inc(d)1.l

136. Function FastExp (Value : Single; St : Integer) : Si { вспомогательная функциявозвращает Value в степени St } Varb : Single; Flag : Boolean ; с : Integer; Begin

137. Flag := False; If St<0 then begin

138. Flag := True; St := Abs(St) ; end; b := 1; While St>0 do Beginс := St div 2;if ( c+c < st ) then b := b*Value; St := c;1. Value := Sqr(Value); end;if Flag then FastExp := 1/b Else FastExp := b;1. End;

139. Function CalcRoot (Value : Single; Root : Integer) : { вспомогательная функция }возвращает корень степени Root числа Value ) Varb, с : Single; Flag : Boolean ; Beginif Root=0 then CalcRoot := 1elsebegin

140. Flag := False; If Root<0 then begin

141. Flag := True; Root := Abs(Root); end;b := (Value+Root-1)/Root; Repeat с : = b;b := (Value/FastExp(b,Root-1)+(Root-1)*b)/Root Until b>=c;if Flag then CalcRoot := 1/b Else CalcRoot := b;end; End;1. Procedure Evklid; Begin1. New(DM);

142. For i:=l to m-1 do For j:=i + l to in do begin1. Sum:=0;

143. For k:=1 to n do Sum:=Sqr(Xk,i.-X[k,j])+Sum; DIVT [i, j ] :=Sqrt (Sum) ; DMA[j,i] : =DM/4 [i, j ] ; end;

144. For i:=l to m do 0МЛ1,1.:=0.0; For i:=l to m do

145. For j:=1 to m do Xi,j.:=DMA[i,j]; Dispose(DM); End;

146. Procedure Manhetten; Begin1121. New(DM);

147. For i:=l to ru-1 do For j:=i+l to m do begin Sum:=0 ;

148. For k:=1 to n do Sum:=Äbs(Xk,i.-X[k,j])+Sum; DMA[i,j]:=Sum; DMA[j,i]:=Sum; end;

149. For i:=l to m do DMAi,i.:=0.0; For i:=l to m do

150. For j:=1 to m do Xi,j.:=DMA[i,j]; Dispose(DM); End;1. Procédure Hernming; Begin1. New(DM);

151. For i:=l to m-1 do For j:=i+l to m do begin Sum:=0 ;

152. For k:=1 to n do Sum:=Abs(Xk,i.-X[k,j])+Sum; DMA[i,j]:=Sum; DMA[j,i]:=Sum; end;

153. For i:=1 to m do DMAi,i. :=0.0; For i:=l to m do

154. For j:=1 to m do Xi,j.:=DMA[i,j]; Dispose(DM); End;1. Procédure Mahlanobis; Var

155. XBar : Massiv; Cov : Single; Begin

156. Average(m,n,X,Xbar); New(DM);

157. For i:=l to m-1 do For j:=i+l to m do begin Sum:=0 ;1. For k:=l to n do begin

158. Cov := (Xk,i.-XBar1.)*(X[k,j]-XBar[j]); if CovOO then

159. Sum: = (Xk,i.-X[k, j])/Cov+Sum;end;

160. DMAi,j.:=Sum; DMA[j,i]:=Sum; end;

161. For i:=1 to m do DMAi,i. :=0.0 ; For i:=l to m do

162. For j : =1 to m do X. i, j . : =DMA [ i, j ] ; Dispose(DM); End; Begin1. New(DM);

163. For i:=l to m-1 do For j:=i+l to m do begin Sum:=0 ;1. For k:=l to n do begin1. MinMax(k);différence := max-min; if differenceoO then

164. Sum:=Abs(Xk,i.-X[k,j])/difference+Sumend;

165. DMAi,j.:=Sum; DMA[j,i]:=Sum; end;

166. For i:=1 to m do DMAi,i.:=0.0; For i:=l to m do

167. For j:=l to m do Xi,j.:=DMA[i,j]; Dispose(DM); End;

168. Procedure Correlation; VarxBar : Massiv; si, s2 : Single; Begin

169. For i:=l to m do DMAi,i.:=1.0; For i:=1 to m do

170. For j:=1 to m do Xi,j. :=DMA[i, j] ; Dispose(DM); End;1. Procedure KoffVstr; Vara, b, c, d : Integer; Beginfor i:=l to m do for j:=i to m do begin

171. CalcKoff(m, n, X, i, j, a, b, c, d); XMi,j.:=(a+d)/(a+b+c+d); XM[j,i]:=XM[i,j];end;1. End;1. Procedure KoffJackar; Vara, b, c, d : Integer; Beginfor i:=1 to m do for j:=i to m do begin

172. CalcKof f (m, n, X, i, j, a, b, c, d) ; if don then XMi, j . :=a/ (a+b+c)else XMi,j.:=0.0; XM[j,i]:=XM[i,j]; end;1. End;1. END.1141. МЕТОД ГЛАВНЫХ КОМПОНЕНТ

173. Алгоритм метода главных компонент реализован в виде отдельного оверлейного модуля MMC.Pas.

174. Описание основных переменных, используемых в модуле.

175. Root массив размерности m, содержащий значения собственныхвекторов;

176. Vkl массив размерности ш, содержащий значения вкладов компонент в общую дисперсию;

177. Nar массив размерности ш, содержащий значения вкладов компонент в общую дисперсию нарастающим итогом; Vec - вспомогательный динамический массив.

178. Расчет коэффициентов нагрузок для экономии памяти производится в матрице KolArray. Исполь зуемые модули.

179. Кроме стандартных модулей из библиотеки Turbo Pascal 7.0 (CRT, Graph) используются следующие модули программного комплекса: Constant содержит описание глобальных переменных и наиболее часто используемые процедуры;

180. PrintWi содержит процедуру копирования графических результатов с экрана монитора на принтер в фоновом режиме;

181. Discr модуль, реализующий алгоритм дискриминантного анализа (см. Приложение 4);1.foWin содержит процедуру построения информационных окон;

182. Chelp содержит процедуры вызова информационного окна помощи.

183. Замечания. Размерность матрицы исходных данных не должнапревышать 8 0 х 80.1. Текст программы.$о+,F+}$N+}1. Unit ММС;1.terface

184. Uses Crt, Graph, Constant, PrintWi, Discr, InfoWin, CHelp;1. Procedure Components;1.plementation1. Type1. TypePointer = AKolType;1. Var1. Root,Vkl,Nar : BType;

185. Vec : TypePointer; { вспомогательный динамический массив }

186. Procedure Components; Label 12; Varcount, i, j, k : Integer;

187. XI, Xm, Xo, St, Ct, V : Single;1. Procedure OutResult; Var1151. Spase : Byte;

188. Hig,Wid,X,Y,Hal,Ha2, XForPrint,YForPrint, WidForPrint,HigForPrint : Word;

189. Procedure SaveOt; Var i : Byte; Begin

190. WriteLn(mth,'************************************************************ 1) •

191. WriteLn(mth,'********************Метод главных компонент*****************')"

192. WriteLn(mth,'************************************************************' ) ;

193. WriteLn(mth,' Вклад компонент в общую дисперсию (наростающимитогом)');

194. For i:=1 to NumbObj do Write(mth,Nar1.:10:3); WriteLn(mth,'');

195. WriteLn(mth,1 Характеристические корни1);

196. For i:=1 to Numb Obj do Write(mth,Vkl1.:10:3); WriteLn(mth,'');

197. WriteLn(mth,1 Коэффициенты aij');

198. MatrToFile(ArrayKol,NumbObj,NumbObj); SaveComp:=False; End;

199. Procedure LabelOsi(Direct Boolean);1. Var J,K : Word;

200. Step : Extended; S : String;1. Begin1. Direct='X' thenbegin1.=N1;1. K:=X;

201. Step:=(N2-N1)/Int; For J:=l to Int do begin

202. MoveTo(K,Y); LineRel(0,3); If Lab Or (J=l) then begin

203. Str(L:2:1,S) ; OutTextXY(K-12,Y+10,S); end;

204. K:=X+Round(Len*J/Int); L:=L+Step; end;

205. MoveTo(K,Y); LineRel(0,3); Str(L:2:1,S); OutTextXY(K-12,Y+10,S); end else begin L:=N1; K:=Y+Len;

206. Step:=(N2-N1)/Int; For J:=l to Int do begin

207. MoveTo(X,K); LineRel(3,0); If Lab Or (J=l) then begin

208. Str(L:2:1, S) ; OutTextXY(X-34,K,S); end;

209. Char; X,Y,Len,Int : Word; N1,N2 : Real; Lab :

210. K:=Y+Len-Round(Len*J/Int) ; L:=L+Step; end;

211. MoveTo(X,K); LineRel(3,0) ; Str(L:2: I,S) ; OutTextXY(X-34,K,S); end End;

212. Procedure Osi(Start,I,Y : Word); Var j,K : Integer;1. S : String; Begin K:=Y-I;1.ne(Start+27,K,Start+29,K); OutTextXY(Start+6, K-3, '1') ; for j:=9 downto 1 do begin1. K:=Y-Round(I * J / 10);1. Str(j,s);

213. OutTextXY(Start,K-3,' 0') ; OutTextXY(Start+6,K-3,'.!+s); Line(Start+2 7,K,Start+2 9,K); end;

214. OutTextXY(Start+6,Y+5,'0'); End;

215. Procedure OsiX(StartX,Y,W : Word); Begin

216. MoveTo(StartX,Y); LineRel(W,0); MoveTo(StartX+W, Y) ; LineRel(-4,2); MoveTo(StartX+W,Y); LineRel(-4,-2) ; End;

217. Procedure OsiY(X,StartY,H : Word); Begin

218. MoveTo(X,StartY); LineRel(0,H); MoveTo(X,StartY); LineRel(-2,4); MoveTo(X,StartY); LineRel(2,4); End;

219. Procedure PlotHistogram( X,Y : Word ); Var1.: Byte;

220. Un,Step : Word; XYVar : String10.; Begin

221. Step:=GetMaxX-2*Spase-X; Step:=(Step Div NumbObj); For I := 1 To NumbObj Do begin

222. MoveTo(X+I*Step, Y); LineRel(0, 2); end;1. Str(1,XYVar);1. OutTextXY(-30,5,XYVar);

223. SetFillStyle(1{InterleaveFill},LightG1. Un:=Hig-8*Spase;1. X:=X+1;

224. For I := 1 To NumbObj Do begin1171. SetColor(White);

225. Bar3D(X+2+(1-1)*Step,Y,X-l+I*Step,Y-Round(Un*Nar1./100) , 0, False); SetColor(Bukv);1. (I>9) and (NumbObj>33) Then begin1. Str(I div 10,XYVar);

226. OutTextXY(X-Round(Step/2)-4+I*Step,MaxHelpY-20,XYVar); Str(I mod 10,XYVar);

227. OutTextXY(X-Round(Step/2)-4+1*Step,MaxHelpY-12,XYVar); end else begin1. Str(I,XYVar);

228. OutTextXY(X-Round(Step/2)-6+1*Step,MaxHelpY-2 0,XYVar); end;1. (Round(Vkl1.*100)>9) and (NumbObj>20) Then begin

229. Str(Round(Vkl1.*100) div 10,XYVar);

230. OutTextXY(X-Round(Step/2)-4+I*Step,Y-20-Round(Un*Nar1./100),XYVar); Str(Round(VklI.*100) mod 10,XYVar);

231. OutTextXY(X-Round(Step/2)-4+1*Step,Y-12-Round(Un*Nar1./100),XYVar); endelse begin

232. Str(Round(Vkl1.*100),XYVar);

233. OutTextXY(X-Round(Step/2)-6+1*Step,Y-2 0-Round(Un*Nar1./100),XYVar) ; end; end;1. Osi(X-3 0,Un,Y); End;

234. Procedure OutArray(X0,Y0,U1,U2 : Word); Var X,Y : Word; i : Byte; NOb : String; Begin

235. For i:=l to NumbObj do begin

236. X: =Round(X0+ArrayKoli,1.*U1) ;

237. OsiX(X+Spase,Y+Hig-3*Spase,Wid-2 *Spase-l0); OsiY(X+3*Spase,Y+2*Spase-10,Hig-4*Spase+5); PlotHistogram(X+3*Spase,Y+Hig-3*Spase); XForPrint:=X+Spase; YForPrint:=Y+2 0; WidForPrint:=Wid-2* Spase-10; HigForPrint:=MaxHelpY-YForPrint-2; X:=X-5;

238. OsiY(X+Round(Wid/2),Y+Round((Hig-Ha2)/2)-Spase,Ha2+2*Spase); LabelOsi('YX+Round(Wid/2),Y+Round((Hig-Ha2)/2),Ha2,20,-1,1,False); OutArray(X+Round(Wid/2),Y+Round(Hig/2),Round(Hal/2),Round(Ha2/2)); XForPrint:=X+4*Spase;

239. YForPrint:=Y+Round((Hig-Ha2)/2)-Spase; WidForPrint:=Wid-8*Spase; HigForPrint:=Ha2+2*Spase;

240. WHelp('Fl-Справка Р2-Печать FS-Вклад FS-АнализЗКомп Рб-Инфо Р7-ДисАнализ1. M,l)1. End;1. Procedure ThreComp;

241. Procedure V3Komp; Var i : Byte;1. X,Wid,H : Word;

242. Procedure Osi(Start,I,Y Var j,K : Integer;

243. S : String; Begin Y:=Y-5; K:=Y-I;1. Str(Max:2:1,S);

244. OutTextXY(Start+30-Spase,K-15,S); Line(Start+27,K,Start+29,K); for j:=10 downto 0 do begin

245. K:=Y-Round(I * J / 10); Line(Start+27,K,Start+29,K); end; End;1. Word; Max : Single);

246. Procedure PlotHistogram( X,Y,0 : Word ); Var1.k,j,z : Byte;1. Un,Step : Word;1. XYVar : String10.;

247. Max : Array 1.3. of Single;1. Begin

248. Step:=GetMaxX-2*Spase-X; Step:=(Step Div NumbObj); For I := 1 To NumbObj Do begin MoveTo(X+I*Step, Y); LineRel(0, 2); end;

249. Str(1,XYVar); OutTextXY(-30,5,XYVar) ;

250. SetFillStyle (1{InterleaveFill},LightGray) ; SetColor(White); Un:=H-10; X:=X+1;

251. For I := 1 To NumbObj Do begin1. (I>9) and (NumbObj>25) Then begin1. Str(I div 10,XYVar);

252. OutTextXY(X-Round(Step/2)-4+I*Step,MaxHelpY-2 0,XYVar); Str(I mod 10,XYVar);

253. OutTextXY(X-Round(Step/2)-4+I*Step,MaxHelpY-12, XYVar); end119else begin1. Str(I,XYVar);

254. OutTextXY(X-Round(Step/2)-4+I*Step,MaxHelpY-20,XYVar); end; end;1. Max1. := 0;1. Max2.:=0;1. Max3.:=0;for J:=l to 3 dofor I:=1 to NumbObj dobegin

255. Abs(Maxj.)<Abs(ArrayKol[i,j]) Then Max[j]:=ArrayKol[i,j]; end;1. =1;1. Un:=Un div 2; k:=l;if MaxO.=0 Then Max[0]:=1; for J:=l to NumbObj do begin

256. Bar3D(X+2+(k-1)*Step,Y,X-l+k*Step, Y-Round(Un*(ArrayKolj,О./ABS(Max[0]))),0,False); Inc(k) end;1. SetColor(Bukv);

257. Osi(X-3 0,Un*2,Y+H div 2,Max0.); End; Begin X: =0;1. Wid:=GetMaxX;

258. H:=Round((GetMaxY-2*(GetMaxY-MaxHelpY)-4 *Spase)/3);1. For i:=l to 3 dobegin

259. OsiX(X+Spase,Spase+Spase*i+(i-1)*H+H div 2,Wid-2*Spase-10); OsiY(X+2*Spase,Spase+Spase*i+(i-1)*H,H);

260. PlotHistogram(X+2*Spase,Spase+Spase*i+(i-1)*H+H div 2,i); end; End; Begin1.foWindow(X,Y,Hig,Wid,Spase,'Результаты классификации по 3 компонентам'); V3 Komp;1. XForPrint:=Spase;1. YForPrint:=Y+2 0;

261. WidForPrint:=Wid-2*Spase-10;

262. HigForPrint:=MaxHelpY-YForPrint-4;

263. WHelp('Fl-Справка F2-rie4aTb FS-Вклад Р4-Анализ2Комп F5-АнализЗКомп F7-ДисАнализ ',' ',' 1,1,1); End; Begin

264. Spase:=17; Hig:=GetMaxY; Wid:=GetMaxX; X: =0; Y: =0;1. SaveComp Then SaveOt;1. Histo;1. Repeatmo:=ReadKey;1201. Case шо of #59: begin

265. SaveWin(13 0, 80, 600, 250) ;1.foWindow(140,90,140,360,17,'О программе');1. Wait;1. Beep;

266. RestoreWin(130,80,600,250); end;60: PrintGraphWindow(XForPrint,YForPrint,WidForPrint,HigForPrint); #61: Histo; #62: TwoComp; #63: ThreComp; #64: Info; #65: Asan; end;

267. Until (mo=#2 7) or (mo=#65) ; End;

268. MaxAvail<SizeOf(VecA) Then1. Not OutlsOver Thenbegin

269. Xm := 0.5*(ArrayKoli,i.-ArrayKol[j , j]) ; Xo :=X1/Sqrt(Sqr(XI)+Sqr(Xm)); if Xm<0 then Xo := -Xo;

270. St := Xo/(Sqrt(2.0*(1.0+Sqrt(1.O-Sqr(Xo))))); Ct := Sqrt(1.0-Sqr(St)); for k:=l to NumbObj do begin

271. Rootk. := Ct*VecA[k,i]-St*VecA[k,j]; VecA[k,j]:= St*VecA[k,i]+Ct*VecA[k,j]; VecA[k,i] : = Root[k] ; end;

272. Root1. := ArrayKoli,j.; Root[2] := ArrayKol[i,i];

273. ArrayKoli,j. := (ArrayKol[i,i]-ArrayKol[j,j])*St*Ct+Root1.*(Sqr(Ct)-Sqr(St));

274. ArrayKolj,i. := ArrayKol[i, j];1. ДИСКРИМИНАНТНЫЙ АНАЛИЗ

275. Алгоритм дискриминантного анализа реализован в виде отдельного оверлейного модуля Discr.Pas.

276. Описание основных переменных, используемых в модуле.

277. Xbar i , j . массив размерности k х m , содержащий средние арифметические значения j-ой переменной в каждой i-ой группе;

278. С i, j . массив размерности k х (т+1), содержащий значения константы и коэффициентов всех j-ых переменных для каждой i-ой дискриминантной функции;

279. Fk g, i, г . массив размерности k х n х к, содержащий значения g дискриминантных функций для i-ro объекта из r-ой группы;

280. XX k, j, i . динамический массив, содержащий исходные данные, где k - номер группы, j - номер переменной, i - номер наблюдения в соответствующей группе.

281. В двумерном случае массив XX для экономии памяти и увеличения объема обрабатываемой информации производится в матрице KolArray.1. Используемые модули.

282. Кроме стандартных модулей из библиотеки Turbo Pascal 7.0 (CRT, Graph) используются следующие модули программного комплеса:

283. Constant содержит описание глобальных переменных и наиболее часто используемых процедур;

284. PrintWi содержит процедуру копирования графических результатов с экрана монитора на принтер в фоновом режиме;

285. Dialog содержит процедуры построения диалоговых окон; InOut - содержит процедуры взаимодействия с внешними файлами;1.foWin содержит процедуры построения информационныхокон.

286. Замечания. Число групп g =2,7 . Число переменных должно быть больше или равно числе групп. Текст программы.$ F+} {$0+} { $N+}

287. UNIT Discr; (* Дискриминантный анализ *) Interface

288. Uses Crt, Graph, Constant, PrintWi, Dialog, InOut, InfoWin;1. Procedure Asan;1.plementation

289. Type SetOP = Set of l.NObj;

290. For i:=l to NumbObj do If i in SetObj sOrPriz Then begin1. AD1,j.:=i;1.c(j); end; End;--обращение ковариационной матрицы-------------}

291. PROCEDURE AsanN(KolGroup,KolP : byte); Const1. DNOb j = 501. DNKol = 301. Spase = 211. Type

292. AType= array 1.MNGrups,1.DNObj-2. of byte; CType = array [1.MNGrups,1.DNKol+1] of single; ThrType = array [1.MNGrups,1.DNKol,1.DNKol] of Single; ThrTypel= array [1.MNGrups,1.DNKol,1.DNObj-2] of Single; Pointl = AThrtypel;

293. ThrType2= array 1.MNGrups,1.DNObj-2 , 1. .MNGrups. of Single;1. Var1. XX Fkxbar,C,maxindmaxik, j , 1, KolO,MaxG1. Pointl;1. ThrType2;1. Ctype;1. Atype;word;byte;

294. Procedure ReadArray; Var i,j,ss,s,k : Byte;1. Con : Single;1.n : Boolean;

295. Procedure SortN( SetObjsOrPriz : SetOP; Var AD : VecType);

296. Var min,c,index, i, j : Byte;1. Begin1. К: =1;1. Repeatj:=l; Repeatmin:=ADK,j.;for i:=j to NGrk. doif ADK,i.<min then begin min:=AD[K, If min=AD[K,j] then index:=j; c:=AD[K,j]; AD[K,j]:=AD[K,index]; AD[K,index]:=c; inc(j); Until j>=NGr[k]; j:=l;

297. For i:=l to NumbObj do If i in SetObjsOrPriz Then begin

298. ADKolGroup,j. :=i ; Inc(j); end; Inc(K); Until K>=KolGroup; End;1. Begin1. SortN(Objs,ArrayDisO);

299. Sort(NumbPr,Priznaks,ArrayDisP);1. ReadFile(FileName,False);1. Assign(data,FileName);

300. FillChar(XXA,SizeOf(XXA),0);1. For k:=l to KolGroup dobegin

301. ReSet(data); Readln(data,NumbObj); Readln(data,KolKol); Readln(data,KolKach); a:=l;

302. For i:=l to NumbObj do begin1.n:=False;1. For s:=l to NGrk. do1. (i=ArrayDisOk, s. ) Then begin1.n:=True; ss:=1;1. For j:=1 to KolKol do

303. Iln and not(j in Priznaks)1. Thenbegin

304. Read(data,XXAk,ss,a.) ; Inc(ss); end

305. Else Read(data,Con); Inc(a); end; ReadLn(data); end; end;1. Close(data); End;

306. PROCEDURE Mean(var Xbar : ctype); Varsum : single; k,i,j : byte;1. Beginfor k:=l to KolGroup do for j:=1 to KolP do beginsum:=0.0;for i:=l to NGrk. do sum:=sum+xxA[k, j , i] ; Xbar[k,j]:=sum/NGr[k]; end; {xbar[группа,признак]} End;

307. PROCEDURE FkGroup ; Var sum,f : single;k,r,i,j : byte; Beginfor k:=l to KolGroup do for r:=l to KolGroup dofor i:=l to NGrr. do beginsum:=0.0;for j:=1 to KolP do sum:=sum+Ck, (j+1).*XXA [r,j,i]; fk[k,i,r]:=sum+C[k,1]; end; End;

308. MaxAvail>SizeOf(ХХЛ) Then begin1. New(XX); ReadArray;

309. DisConst; DisKof; FkGroup; Dispose(XX);

310. Rasp(indmax); {определение группы для каждого объекта—file} writeln(FScr,' '); j :=l;

311. For i:=l to NumbObj do If i in Obj s Then begin

312. Else Message('Недостаточно памяти!'); end;

313. Классификация') ; в группу');

314. Классификация'); в группу');maxk,i.,' ',max[к,i], '1. Procedure Asan; Label 1;

315. Const FKrit05 : Array 1.32. of Single (199.50,19. 00,9. 55,6. 94,5.79,5.14,4.74,4.24,4.10,3.98,3.89,3.81,3.74,3.63,3.59,3.55,3.52,3.49,3.47,3.42,3.4 0,3.39,3.37,3.35,3.34,

316. FKritOOl : Array 1.16. of Single4.46, 3.68, 3.44,3.33, 3.32,3.26,3.23) ; = (5000.00,99.00,30.82,18.00,13.27, 10.92, 8.65, 7.56, 6.93, 5.85, 5.61, 5.39, 5.18, 4.98, 4.79,4.61);xbar,xbd,xbp, CoorCj,si,s2,nc,OnePart, Spase, Parts

317. SumCoor,MaxCoor,con, d, cl XForPrint,YForPrint, WidForPrint,HigForPrintbtype; String80. KolType; word; Single;1. Byte; Single;1. Word;

318. Procedure Mean ( nO,nl,NPr : Byte;1. AK : KolType;1. Var XBar : BType );1. Varsum : Single; i,j : Byte; Beginfor i:=l to NPr do beginsum:=0.0;for j:=n0 to nl do sum:=sum+AKi,j.; XBar1.:=sum/(nl-nO+1); end; End;

319. Type SetOP = Set of l.N0bj;1. Var i,j,ss,s,k : Byte;1. Begin

320. Sort(NObj FG,Obj s,ArrayDisO) ; Sort(NumbPr,Priznaks,ArrayDisP); Assign(data,FileName); {$1-}

321. Reset(data); Readln(data,NumbObj); Readln(data,KolKol); Readln(data,KolKach); s: =1;ss:=NObjFG+l; For i:=l to NumbObj do If not (i in Objs) Then begin j==l;k : =1 ;1. While k<=NumbPr do begin1. j in Priznaks Then Read(data,Con) Else begin

322. Read(data,ArrayKolk Inc(k); end;1.c(j); end;

323. Readln(data); Inc(s); end Else begin j:=l; k : =1 ;1. While k<=NumbPr do begin1. j in Priznaks Then Read(data,Con) Else begin

324. Read(data,ArrayKolk Inc(k); end;1.c( j ) ; end;

325. Readln(data); Inc(ss); end;1. Close(data); {$1 + } End;

326. Procedure OutOb(Start,Fin,ColorGr : Byte); Var X,Y : Word; j : Byte; NOb : String3.; Begin

327. SetColor(ColorGr); For j:=Start to Fin do begin1. NumbObj<2 0 then begin

328. X : =Round(centr+Round(Coorj.*UPart)-3); Y:=Round(kk-2 0) ; If Start=l Then begin

329. Circle(X,Y,10); FloodFill(X,Y,ColorGr); end else begin

330. Rectangle(X-10,Y-8,X+10,Y+8); FloodFill(X,Y,ColorGr); end;

331. Str(ArrayDisO1,j.,NOb); If j<10 then OutTextXY(X-3,Y-3,NOb) else OutTextXY(X-8,Y-3,NOb);end else

332. Start=l Then OutTextXY(centr+Round(Coo Else OutTextXY(centr+Round(Coo line(X,Y+10,X,kk); end;1. SetColor(Bukv); End;1301. Begintopx := 50; topy := 40;wi := 50+60*8; hi := 100;

333. SetFilistyle(l,BkFilistyle); Bar(topx+5,topy+5,topx+wi+5,topy+hi+5); SetFi11Style(1,Ch);

334. Bar3D(topx,topy,topx+wi,topy+hi,0,True);

335. ReadKol('Введите количество групп : ', 20, 9);if not Esc then ReadKol('Введите кол-во признаков ( k < N-2 ) : ', 35, 11) ;if not Esc then ReadKol('Признак N', 50, 13);if not Esc thenbegin1. NGrGrups.:=NumbObj;

336. AsanN(Grups,NumbPr); Obj s := 1. .NObj.; Priznaks := [l.NKol]; Exit; end Elseif not Esc then begin1. SortArray;1 :1. FillChar(A,SizeOf(A),0);

337. Mean(l,NObjFG,NumbPr,ArrayKol,XBar); {ВЕКТОР ВЫБОРОЧНЫХ СРЕДНИХ ДЛЯ 1 ГРУППЫ}

338. Covar(1,NObjFG,NumbPr,XBar,A); {КОВАРИАЦИОННАЯ МАТРИЦА ДЛЯ 1 ГРУППЫ}for i:=l to NumbPr dobeginxbd1.:=xbari.; xbp [ i] :=xbar[i]; end;

339. Mean(NObjFG+1,NumbObj,NumbPr,ArrayKol,XBar); {ВЕКТОР ВЫБОРОЧНЫХ СРЕДНИХ ДЛЯ 1 ГРУППЫ}

340. R(0) дискриминантная функция, R(i) - центр i-ой группы. ');line(centr,kk-3,centr,kk-53);outtextxy(centr-8,kk-63,'R(O)');outtextxy(centr-3,kk+15,' 0 ' ) ;1. MaxCoor:=0;

341. For i:=l to NumbObj do begincl:=0.0;for j:=l to NumbPr do cl:=cl+xbarj.*ArrayKol[j,i]; cl:=cl-con;

342. Abs(Cl)>MaxCoor then MaxCoor:=Abs(Cl); end;

343. SaveDA Then writeln(mth,' ',ArrayDisO1,i.,' ',cl,nc) ; end;

344. SaveDA Then writeln(mth,'Т-квадр. критическое = ',xbar2.);1. SaveDA:=False;1. Repeat

345. GoTol:=False; С1.:=ReadKey;if С1. = #0 then С1.:=ReadKey; case C[l] of67: begin1.foWindow(0,0,GetMaxY,GetMaxX,Spase,'Результаты дискриминантного анализа');

346. Screen(1FlO-Проекция на дискриминантную ось'); end; #68: GoTo 1; #60:

347. PrintGraphWindow(XForPrint,YForPrint,WidForPrint, HigForPrint); end;

348. GoTol Then GoTo 1; Until (С1.=#27) or Esc; Erase(Fscr); Obj s := 1. .NObj. ; Priznaks := [l.NKol]; exit; end Else begin

349. Obj s := 1. .NObj.; Priznaks := [1.NKol]; Exit; end; End; End.

350. УТВЕРЖДАЮ: Главный врач Центра IСЭН г.ИркутсгеГ199/г.1. АКТоб использовании результатов диссертационной работы

351. Новгородцевой Татьяны Юрьевны «Моделирование реальной структуры социально-экономической системы методами автоматической классификации»

352. Проведённая классификация районов города по уровню загрязнения атмосферного воздуха позволила ориентировочно выделить группы районов по степени экологического неблагополучия.

353. Разработанная методика моделирования и диалоговая система используются при выполнении дипломных работ (проектов) по кафедрам "Информатика и кибернетика", "Экономика и менеджмент на предприятиях транспорта и связи".1. Заведующий кафедрой . \

354. Информатика и кибернетика», 1профессор г Хамитов

355. Заведующий кафедрой "Экономика и менеджмент н;канд. экон. наук, доцент