ЛР-7:
"Идентификация и классификация
натуральных чисел по их свойствам"

 

Краткая теория

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

Задание

1. Формализовать задачу.

1.1. Сконструировать классификационные шкалы и градации.

1.2. Сконструировать описательные шкалы и градации.

1.3. Сгенерировать обучающую выборку.

2. Осуществить синтез и верификацию (измерение адекватности) семантической информационной модели.

3. Провести системно-когнитивный анализ модели:

3.1. Решить задачи идентификации и прогнозирования.

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

3.3. Провести кластерно-конструктивный анализ классов и факторов (результаты отобразить в форме семантических сетей классов и факторов).

3.4. Осуществить содержательное сравнение классов и факторов (результаты отобразить в форме когнитивных диаграмм классов и факторов).

3.5. Построить нелокальные нейроны и интерпретируемые нейронные сети.

3.6. Построить классические когнитивные модели (отобразить в форме когнитивных карт).

3.7. Построить интегральные когнитивные модели (отобразить в форме интегральных когнитивных карт).

 

Пример решения

1. Формализовать задачу.

Для этой цели используем 5-ю функцию 5-го режима 1-й подсистемы системы "Эйдос" (реальный исходный текст программы приводится ниже).

 

***************************************************************

*** Формирование модели для исследования свойств чисел ********

*** Луценко Е.В., 11/06/05 09:11am ****************************

***************************************************************

 

FUNCTION Div_chis()

 

scr23 = SAVESCREEN(0,0,24,79)

 

SHOWTIME(0,58,.T.,"rb/n")

 

Titul(.T.)

 

Mess = "=== ГЕНЕРАЦИЯ ИСХОДНЫХ ДАННЫХ ДЛЯ МОДЕЛИ ИССЛЕДОВАНИЯ СВОЙСТВ ЧИСЕЛ ==="

@5,40-LEN(Mess)/2 SAY Mess COLOR "rg+/rb"

*    0123456789012345678901234567890123456789012345678901234567890123456789012345678

*    0         10        20        30        40        50        60        70

@10,24 SAY                  "Задайте максимальное число: #####" COLOR "w+/rb"

N_Obj = 99

@10,52 GET N_Obj PICTURE "#####" COLOR "rg+/r"

SET CURSOR ON;READ;SET CURSOR OFF

IF LASTKEY()=27

   RESTSCREEN(0,0,24,79,scr23)

   SHOWTIME()

   RETURN

ENDIF

 

*** Формирование справочника первичных признаков

 

A_Pr  := {}

FOR j=1 TO N_Obj

    AADD(A_Pr, "Делится на:"+ALLTRIM(STR(j,4)))        && 1*N_Obj

NEXT

FOR j=1 TO N_Obj

    AADD(A_Pr, "Не дел.на : "+ALLTRIM(STR(j,4)))       && 2*N_Obj

NEXT

FOR j=1 TO N_Obj

    AADD(A_Pr, "Делителей : "+ALLTRIM(STR(j,4)))       && N_Del+2*N_Obj

NEXT

FOR j=1 TO N_Obj

    AADD(A_Pr, "Степ.числа: "+ALLTRIM(STR(j,4)))       && 4*N_Obj

NEXT

FOR j=1 TO N_Obj

    AADD(A_Pr, "Чис.в степ: "+ALLTRIM(STR(j,4)))       && 5*N_Obj

NEXT

 

USE Priz_per EXCLUSIVE NEW

ZAP

FOR j=1 TO LEN(A_Pr)

    APPEND BLANK

    REPLACE Kod  WITH j

    REPLACE Name WITH A_Pr[j]

NEXT

GenNtxPrp(.F.)

CLOSE ALL

 

*** Формирование справочника классов распознавания

USE Object EXCLUSIVE NEW

ZAP

FOR j=1 TO N_Obj

    APPEND BLANK

    REPLACE Kod  WITH j

    REPLACE Name WITH ALLTRIM(STR(j,3))

NEXT

GenNtxObj(.F.)

CLOSE ALL

 

*** Формирование обучающей выборки

 

USE ObInfZag EXCLUSIVE NEW;ZAP

USE ObInfKpr EXCLUSIVE NEW;ZAP

@24,0 SAY REPLICATE("█",80) COLOR "rb/n"

 

FOR s=1 TO N_Obj

 

    ****** Подготовка записей

    SELECT ObInfZag

    APPEND BLANK

    REPLACE Kod_ist  WITH s

    REPLACE Name_ist WITH ALLTRIM(STR(s,4))

    REPLACE Obj_1    WITH s

    SELECT ObInfKpr

    APPEND BLANK

    REPLACE Kod_ist  WITH s

    p=0                   && Позиция для записи в БД

    N_Del=0               && Кол-во делителей

 

    *** Проверка делимости

    FOR j=1 TO N_Obj

        IF s-j*INT(s/j) = 0

           Kod = j

           ++N_Del

           IF p+1 <= 11

              FIELDPUT(++p+1, Kod)

           ELSE

              APPEND BLANK

              REPLACE Kod_ist  WITH s

              p=0

              FIELDPUT(++p+1, Kod)

           ENDIF

        ENDIF

    NEXT

    ************ Занесение количества делителей

    Kod = N_Del+2*N_Obj

    IF p+1 <= 11

       FIELDPUT(++p+1, Kod)

    ELSE

       APPEND BLANK

       REPLACE Kod_ist  WITH s

       p=0

       FIELDPUT(++p+1, Kod)

    ENDIF

 

    *** Проверка не делимости

    FOR j=1 TO N_Obj

        IF s-j*INT(s/j) <> 0

           Kod = j+1*N_Obj

           IF p+1 <= 11

              FIELDPUT(++p+1, Kod)

           ELSE

              APPEND BLANK

              REPLACE Kod_ist  WITH s

              p=0

              FIELDPUT(++p+1, Kod)

           ENDIF

        ENDIF

    NEXT

 

    *** Проверка, является ли данное число s

    *** целой степенью j некоторого натурального числа n

    FOR j=1 TO N_Obj

        FOR n=1 TO N_Obj

            IF s=n^j

               *** Степень числа n

               Kod = n+3*N_Obj

               IF p+1 <= 11

                  FIELDPUT(++p+1, Kod)

               ELSE

                  APPEND BLANK

                  REPLACE Kod_ist  WITH s

                  p=0

                  FIELDPUT(++p+1, Kod)

               ENDIF

               *** Число в степени j

               Kod = j+4*N_Obj

               IF p+1 <= 11

                  FIELDPUT(++p+1, Kod)

               ELSE

                  APPEND BLANK

                  REPLACE Kod_ist  WITH s

                  p=0

                  FIELDPUT(++p+1, Kod)

               ENDIF

            ENDIF

        NEXT

    NEXT

 

    p=s/N_Obj*100;p=IF(p<=100,p,100)

    @24,0 SAY STR(p,3)+"%" COLOR "rg+/r+"

    @24,4 SAY REPLICATE("█",p*0.76) COLOR "rg+/g"

 

NEXT

GenNtxOin(.F.)

 

@24,0 SAY REPLICATE("█",80) COLOR "rb/n"

Mess = " ПРОЦЕСС ГЕНЕРАЦИИ ШКАЛ И ОБУЧАЮЩЕЙ ВЫБОРКИ ЗАВЕРШЕН УСПЕШНО !!! "

@24,40-LEN(Mess)/2 SAY Mess COLOR "rg+/rb"

nj=INKEY(0)

 

RESTSCREEN(0,0,24,79,scr23)

SHOWTIME()

 

RETURN(nj)

 

1.1. Сконструировать классификационные шкалы и градации.

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

 

1.2. Сконструировать описательные шкалы и градации.

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

 

Таблица 44 – ОПИСАТЕЛЬНЫЕ ШКАЛЫ И ГРАДАЦИИ (ФРАГМЕНТ)

Код

Наименование

признака

Код

Наименование

признака

Код

Наименование

признака

1

Делится на 1

31

Не делится на 1

61

Делителей: 1

2

Делится на 2

32

Не делится на 2

62

Делителей: 2

3

Делится на 3

33

Не делится на 3

63

Делителей: 3

4

Делится на 4

34

Не делится на 4

64

Делителей: 4

5

Делится на 5

35

Не делится на 5

65

Делителей: 5

6

Делится на 6

36

Не делится на 6

66

Делителей: 6

7

Делится на 7

37

Не делится на 7

67

Делителей: 7

8

Делится на 8

38

Не делится на 8

68

Делителей: 8

9

Делится на 9

39

Не делится на 9

69

Делителей: 9

10

Делится на 10

40

Не делится на 10

70

Делителей: 10

---

---

---

---

---

---

28

Делится на 28

58

Не делится на 28

88

Делителей: 28

29

Делится на 29

59

Не делится на 29

89

Делителей: 29

30

Делится на 30

60

Не делится на 30

90

Делителей: 30

 

1.3. Сгенерируем обучающую выборку.

Обучающая выборка генерируется автоматически вместе с шкалами и градациями и здесь не приводится из-за ее большого объема.

 

2. Осуществить синтез и верификацию (измерение адекватности) семантической информационной модели.

Синтез модели осуществляется в 5-й функции 3-го режима 2-й подсистемы системы "Эйдос", а верификация (после копирования обучающей выборки в распознаваемую и распознавания со 2-м интегральным критерием сходства) – во 2-м режиме 6-й подсистемы. При этом получен результат, представленный на рисунке 79, который говорит о высокой степени адекватности модели и корректности выводов, полученных путем ее исследования.

Рисунок 79. Экранная форма режима измерения
адекватности СИМ

 

3. Провести системно-когнитивный анализ модели:

3.1. Решить задачи идентификации и прогнозирования.

Идентификация проводится во 2-м режиме 4-й подсистемы системы "Эйдос". Результаты идентификации выводятся в форме карточек в 1-й и 2-й функциях 3-го режима 4-й подсистемы системы "Эйдос" (примеры карточек на рисунке 80).

 

Рисунок 80. Пример карточки идентификации
объекта с классами

 

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

Информационные портреты классов генерируются и отображаются в 1-й функции 1-го режима 5-й подсистемы системы "Эйдос" (рисунок 81).

 

Рисунок 81. Пример информационного портрета класса
в форме круговой диаграммы

 

 

Двухмерные и трехмерные профили классов и признаков генерируются и отображаются в 4-м режиме 6-й подсистемы системы "Эйдос" (рисунок 82).

Информационные портреты признаков (факторов) генерируются и отображаются в 1-й функции 2-го режима 5-й подсистемы системы "Эйдос" (рисунок 83). Размеры секторов в круговой диаграмме соответствуют относительному вкладу признаков в общее количество информации, содержащейся в информационном портрете.

 

Рисунок 82. Пример профиля класса

 

Рисунок 83. Экранная форма информационного портрета фактора в форме таблицы

 

Из рисунка 83 видно, что система способна выявить простые числа по признаку: "Число делителей 2".

3.3. Провести кластерно-конструктивный анализ классов и факторов (результаты отобразить в форме семантических сетей классов и факторов).

Этот анализ проводится в во 2-й функции 1-го и 2-го режимов 5-й подсистемы системы "Эйдос" (рисунок 84).

 

Рисунок 84. Примеры семантических сети классов и признаков

 

Семантические сети отражают сходство классов по характеризующим их признакам и сходство признаков по тем классам, о принадлежности к которым они несут информацию.

3.4. Осуществить содержательное сравнение классов и факторов (результаты отобразить в форме когнитивных диаграмм классов и факторов).

Структуру любой линии в семантических сетях классов или признаков можно детально увидеть в когнитивных диаграммах классов и признаков (рисунок 85).

 

 

 

 

 

Рисунок 85. Примеры когнитивных диаграмм
классов и признаков

 

3.5. Построить нелокальные нейроны и интерпретируемые нейронные сети.

 

Нелокальные нейроны отражают систему детерминации состояний факторами т отображаются в 5-м режиме 6-й подсистемы системы "Эйдос", а нейронные сети представляют собой совокупность нейронов и отображаются в 6-м режиме той же подсистемы (рисунок 86).

 

Рисунок 86. Примеры нелокального нейрона
и Паретто-подмножества нейронной сети

 

3.6. Построить классические когнитивные модели (отобразить в форме когнитивных карт).

Классическая когнитивная модель отражает структуру детерминации состояния с указанием сходств и различий между факторами и отображается в 7-м режиме 6-й подсистемы системы "Эйдос"  (рисунок 87).

 

Рисунок 87. Пример классической когнитивной карты

 

3.7. Построить интегральные когнитивные модели (отобразить в форме интегральных когнитивных карт).

Интегральная когнитивная модель отражает структуру детерминации нескольких состояний с указанием сходств и различий между состояниями по их системам детерминации, между факторами, по влиянию, которое они оказывают на поведение объекта управления, отображаются в 7-м режиме 6-й подсистемы системы "Эйдос" (рисунок 88).

 

Рисунок 88. Пример интегральной когнитивной карты

 

Контрольные вопросы

1. Какие свойства натуральных чисел мы рассматривали в качестве их признаков?

2. Какие образом выполняется когнитивная структуризация предметной области?

3. В чем состоит формализацию предметной области и как ее осуществить в системе "Эйдос" при изучении свойств натуральных чисел?

4. Какие средства формирования обучающей выборки используются в системе "Эйдос" при изучении свойств натуральных чисел?

Литература по лабораторной работе

1. Луценко Е.В. Автоматизированный системно-когнитивный анализ в управлении активными объектами (системная теория информации и ее применение в исследовании экономических, социально-психологических, технологических и организационно-технических систем): Монография (научное издание). – Краснодар:  КубГАУ. 2002. – 605 с.