Прогнозирование урожайности подсолнечника по Краснодарскому краю с применением системно-когнитивного анализа
Синтез и верификация системно-когнитивной модели искусственной экосистемы насаждений подсолнечника Краснодарского края. Прогнозирование сценария изменения урожайности подсолнечника. Научное исследование искусственной экосистемы насаждений подсолнечника.
Рубрика | Сельское, лесное хозяйство и землепользование |
Вид | статья |
Язык | русский |
Дата добавления | 29.04.2017 |
Размер файла | 109,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
УДК 303.732.4 |
UDC 303.732.4 |
|
ПРОГНОЗИРОВАНИЕ УРОЖАЙНОСТИ ПОДСОЛНЕЧНИКА ПО КРАСНОДАРСКОМУ КРАЮ С ПРИМЕНЕНИЕМ СИСТЕМНО-КОГНИТИВНОГО АНАЛИЗА (Часть 2-я: Формальная постановка задачи и преобразование исходных данных в информацию, а ее в знания) |
FORECASTING OF SUNFLOWER YIELD FOR THE KRASNODAR REGION WITH THE USE OF SYSTEM-COGNITIVE ANALYSIS (PART II: Formal statement of the problem and the transformation of raw data into information, and information into knowledge) |
|
Луценко Евгений Вениаминович д.э.н., к.т.н., профессор |
Lutsenko Eugeny Veniaminovich Dr.Sci.Econ., Cand.Tech.Sci., professor |
|
Кубанский государственный аграрный университет, Россия, 350044, Краснодар, Калинина, 13, prof.lutsenko@gmail.com |
Kuban State Agrarian University, Krasnodar, Russia |
|
Познышева Наталья Олеговна |
Poznysheva Natalya Olegovna |
|
Кубанский государственный аграрный университет, Россия, 350044, Краснодар, Калинина, 13 |
Kuban State Agrarian University, Krasnodar, Russia |
|
В данной работе впервые осуществлен синтез и верификация системно-когнитивной модели искусственной экосистемы насаждений подсолнечника Краснодарского края (на уровнях районов и края в целом). На основе созданной модели решены задачи: 1. Прогнозирование сценария изменения урожайности подсолнечника на период от 1 до 5 лет. 2. Научное исследование искусственной экосистемы насаждений подсолнечника Краснодарского края (на уровнях районов и края в целом) |
In this article, for the first time, the synthesis and verification of the system-cognitive model of artificial ecosystems of sunflower crops in the Krasnodar region (at the levels of regions and in the whole region) are carried out. On the basis of the developed models, there are solved tasks: 1. Forecasting scenario of sunflower yield for the period from 1 to 5 years. 2. The scientific study of artificial ecosystems of sunflower crops in the Krasnodar region (at the levels of regions and in the whole region) |
|
Ключевые слова: системный подход, системно-когнитивный анализ, многоотраслевая корпорация, прогнозирование, семантическая информационная модель |
Keywords: system approach, system-cognitive analysis, diversified corporation, forecasting, semantic information model |
Анализ исходных данных и преобразование исходных данных в исходную информацию: когнитивная структуризация и формализация предметной области
Рассмотрим один из вариантов реализации этих этапов.
1-й этап СК-анализа: «Когнитивная структуризация предметной области»
На этом этапе определяется, что мы хотим прогнозировать и на основе чего собираемся это делать. Нами принято решение прогнозировать сценарии изменения урожайности в будущем на основе сценариев ее изменения в прошлом.
2-й этап СК-анализа: «Формализация предметной области»
Данный этап включает: разработку градаций классификационных и описательных шкал (номинального, порядкового и числового типа); использование разработанных на предыдущих этапах классификационных и описательных шкал и градаций для формального описания (кодирования) исходных данных (исследуемой выборки). Исходные данные для решения задачи представляют собой урожайность подсолнечника по районам Краснодарского края и краю в целом за 21 год с 1989 по 2009 годы (табл. 1 и 2):
Таблица 1. Исходные данные об урожайности подсолнечника по районам Краснодарского края и краю в целом за 1989-1998 годы
Код |
Административные единицы |
1989 |
1990 |
1991 |
1992 |
1993 |
1994 |
1995 |
1996 |
1997 |
1998 |
|
1 |
Всего по краю средневзвешенное) |
20,1 |
23,3 |
20,4 |
18,2 |
17,3 |
16,7 |
18,5 |
13,8 |
9,1 |
13,9 |
|
2 |
г. Анапа |
12,7 |
15,7 |
11,2 |
9,9 |
10,7 |
6,7 |
11,5 |
8,2 |
5,4 |
7,2 |
|
3 |
г. Армавир |
17,3 |
20,4 |
19,6 |
16,7 |
15,4 |
18,2 |
18,3 |
12,1 |
7,4 |
14,2 |
|
4 |
г. Белореченск |
14,3 |
14,9 |
13,2 |
9,4 |
10,1 |
11,3 |
11,1 |
6,3 |
1,4 |
5,4 |
|
5 |
г. Краснодар |
18,9 |
23,3 |
15,3 |
14,9 |
16,3 |
17,1 |
12,3 |
14,7 |
7,3 |
11,3 |
|
6 |
г. Крымск |
12,6 |
12,0 |
8,5 |
8,3 |
8,4 |
9,8 |
5,9 |
5,5 |
0,9 |
4,3 |
|
7 |
г. Лабинск |
18,8 |
20,7 |
18,8 |
16,0 |
11,3 |
12,0 |
13,5 |
6,4 |
3,4 |
11,7 |
|
8 |
г. Славянск-на-Кубани |
13,1 |
18,8 |
14,0 |
11,0 |
12,8 |
15,0 |
9,7 |
10,5 |
3,2 |
5,5 |
|
9 |
Абинский |
14,9 |
12,8 |
5,6 |
4,7 |
8,5 |
12,0 |
8,4 |
9,7 |
0,4 |
3,2 |
|
10 |
Белоглиненский |
20,9 |
26,4 |
21,0 |
19,3 |
18,5 |
16,7 |
21,9 |
15,8 |
10,0 |
11,7 |
|
11 |
Брюховецкий |
22,6 |
22,8 |
22,7 |
20,5 |
21,5 |
19,7 |
22,4 |
17,3 |
11,5 |
15,1 |
|
12 |
Выселковский |
21,5 |
25,3 |
22,6 |
19,9 |
18,6 |
18,3 |
23,0 |
18,7 |
12,5 |
17,1 |
|
13 |
Гулькевичский |
18,9 |
25,7 |
20,0 |
20,8 |
18,6 |
20,6 |
20,1 |
15,1 |
11,7 |
18,5 |
|
14 |
Динской |
20,7 |
24,6 |
20,1 |
13,5 |
17,0 |
16,7 |
12,4 |
14,5 |
7,3 |
13,1 |
|
15 |
Ейский |
20,9 |
21,0 |
19,8 |
21,4 |
19,8 |
13,5 |
20,7 |
12,4 |
12,8 |
14,4 |
|
16 |
Кавказский |
18,5 |
21,0 |
18,1 |
16,2 |
16,4 |
16,4 |
17,9 |
15,4 |
9,2 |
13,2 |
|
17 |
Калининский |
21,8 |
24,9 |
22,4 |
16,7 |
19,8 |
20,3 |
16,3 |
14,7 |
5,4 |
13,2 |
|
18 |
Каневский |
22,6 |
25,5 |
21,3 |
19,3 |
19,7 |
17,9 |
20,6 |
16,1 |
12,9 |
17,8 |
|
19 |
Кореновский |
21,3 |
23,6 |
22,9 |
17,4 |
18,9 |
19,6 |
19,9 |
15,5 |
8,9 |
13,7 |
|
20 |
Красноармейский |
21,7 |
25,2 |
15,6 |
17,0 |
22,4 |
18,6 |
12,7 |
13,6 |
5,1 |
10,4 |
|
21 |
Крыловский |
19,8 |
22,6 |
21,1 |
18,2 |
16,1 |
14,3 |
18,0 |
13,7 |
7,1 |
12,7 |
|
22 |
Курганинский |
17,0 |
21,4 |
19,6 |
18,6 |
16,3 |
17,2 |
18,6 |
12,7 |
9,5 |
13,3 |
|
23 |
Кущевский |
20,7 |
25,0 |
22,7 |
18,8 |
14,9 |
14,6 |
17,5 |
9,5 |
6,3 |
10,2 |
|
24 |
Ленинградский |
23,1 |
25,4 |
23,6 |
21,0 |
19,1 |
20,4 |
20,8 |
18,0 |
10,6 |
16,8 |
|
25 |
Мостовский |
15,4 |
18,1 |
16,8 |
9,9 |
9,2 |
11,3 |
10,6 |
6,9 |
2,7 |
3,6 |
|
26 |
Новокубанский |
19,4 |
24,4 |
19,9 |
21,7 |
18,4 |
20,0 |
20,5 |
13,5 |
10,4 |
21,5 |
|
27 |
Новопокровский |
18,2 |
24,3 |
19,8 |
18,1 |
16,4 |
16,1 |
20,7 |
15,7 |
9,0 |
12,6 |
|
28 |
Отрадненский |
14,3 |
18,7 |
16,3 |
10,4 |
8,6 |
10,6 |
12,3 |
4,9 |
2,5 |
7,8 |
|
29 |
Павловский |
19,7 |
22,0 |
22,2 |
19,8 |
18,6 |
17,7 |
20,8 |
16,0 |
9,9 |
16,1 |
|
30 |
Приморско-Ахтарский |
23,1 |
24,9 |
24,3 |
22,8 |
22,1 |
18,0 |
20,1 |
16,1 |
9,1 |
14,1 |
|
31 |
Северский |
16,0 |
14,1 |
9,8 |
9,1 |
7,9 |
11,2 |
6,4 |
6,4 |
0,5 |
8,7 |
|
32 |
Староминский |
22,5 |
25,4 |
23,0 |
20,1 |
18,1 |
17,1 |
20,8 |
16,0 |
11,2 |
17,9 |
|
33 |
Тбилисский |
19,2 |
24,4 |
18,5 |
17,1 |
16,9 |
17,1 |
17,7 |
14,3 |
10,1 |
15,4 |
|
34 |
Темрюкский |
17,6 |
16,8 |
12,0 |
15,0 |
11,6 |
7,0 |
11,2 |
7,6 |
7,0 |
6,0 |
|
35 |
Тимашевский |
22,6 |
24,7 |
21,7 |
16,4 |
19,1 |
21,0 |
18,6 |
17,1 |
8,2 |
15,3 |
|
36 |
Тихорецкий |
19,8 |
22,8 |
22,1 |
18,9 |
18,1 |
18,1 |
17,3 |
14,0 |
8,8 |
12,5 |
|
37 |
Успенский |
17,5 |
22,7 |
18,5 |
19,7 |
16,6 |
18,5 |
20,5 |
12,3 |
8,9 |
7,8 |
|
38 |
Усть-Лабинский |
20,2 |
23,1 |
21,8 |
16,2 |
16,8 |
0,0 |
16,9 |
14,4 |
7,9 |
13,9 |
|
39 |
Щербиновский |
21,5 |
25,5 |
21,0 |
22,2 |
20,5 |
17,5 |
21,8 |
14,2 |
14,9 |
17,2 |
Таблица 2. Исходные данные об урожайности подсолнечника по районам Краснодарского края и краю в целом за 1999-2009 годы
Административные единицы |
1999 |
2000 |
2001 |
2002 |
2003 |
2004 |
2005 |
2006 |
2007 |
2008 |
2009 |
||
Всего по краю средневзвешенное) |
14,0 |
15,2 |
14,5 |
18,5 |
15,0 |
18,2 |
20,9 |
22,5 |
20,7 |
25,3 |
22,4 |
||
1 |
г. Анапа |
8,1 |
7,4 |
7,3 |
6,8 |
4,8 |
6,5 |
9,0 |
13,2 |
13,3 |
18,2 |
14,3 |
|
2 |
г. Армавир |
9,2 |
12,7 |
11,0 |
16,3 |
9,8 |
16,5 |
22,3 |
25,0 |
22,7 |
26,5 |
23,3 |
|
3 |
г. Белореченск |
5,3 |
6,5 |
6,0 |
9,1 |
6,5 |
7,7 |
13,2 |
17,3 |
14,7 |
19,2 |
17,3 |
|
4 |
г. Краснодар |
13,5 |
15,0 |
16,5 |
18,8 |
18,4 |
22,3 |
22,0 |
27,1 |
24,3 |
28,6 |
23,3 |
|
5 |
г. Крымск |
2,3 |
4,1 |
4,2 |
5,7 |
1,7 |
6,0 |
9,8 |
11,1 |
13,3 |
17,0 |
19,0 |
|
6 |
г. Лабинск |
9,8 |
12,3 |
10,4 |
17,2 |
14,9 |
16,6 |
17,9 |
18,4 |
19,5 |
20,5 |
19,8 |
|
7 |
г. Славянск-на-Кубани |
8,0 |
9,4 |
11,2 |
12,7 |
8,3 |
8,8 |
15,3 |
17,4 |
16,4 |
20,2 |
19,2 |
|
8 |
Абинский |
6,0 |
5,8 |
10,1 |
4,0 |
4,1 |
6,9 |
6,2 |
12,3 |
8,0 |
17,1 |
19,2 |
|
9 |
Белоглиненский |
14,0 |
15,1 |
13,3 |
21,4 |
15,4 |
19,1 |
24,1 |
22,3 |
14,2 |
17,6 |
15,2 |
|
10 |
Брюховецкий |
19,0 |
17,1 |
15,3 |
19,0 |
19,3 |
22,9 |
25,5 |
25,6 |
23,9 |
31,2 |
24,7 |
|
11 |
Выселковский |
14,0 |
17,3 |
16,2 |
21,8 |
16,7 |
21,0 |
25,0 |
28,7 |
25,1 |
30,2 |
27,8 |
|
12 |
Гулькевичский |
19,0 |
19,7 |
17,7 |
23,7 |
18,4 |
22,5 |
25,5 |
25,3 |
21,3 |
24,3 |
21,0 |
|
13 |
Динской |
10,0 |
16,3 |
18,4 |
23,8 |
19,0 |
18,8 |
21,5 |
25,0 |
24,7 |
25,6 |
24,8 |
|
14 |
Ейский |
13,0 |
14,2 |
13,6 |
15,9 |
15,0 |
16,4 |
18,4 |
17,0 |
16,2 |
26,8 |
17,8 |
|
15 |
Кавказский |
19,0 |
17,8 |
16,9 |
22,1 |
15,5 |
21,4 |
22,3 |
20,4 |
22,0 |
28,0 |
22,9 |
|
16 |
Калининский |
10,0 |
13,0 |
14,1 |
14,6 |
13,2 |
17,2 |
18,6 |
20,8 |
21,6 |
25,7 |
28,6 |
|
17 |
Каневский |
18,0 |
18,5 |
17,5 |
20,7 |
17,5 |
21,9 |
24,7 |
27,6 |
22,2 |
31,3 |
27,3 |
|
18 |
Кореновский |
19,0 |
16,4 |
14,5 |
18,3 |
16,3 |
19,4 |
22,5 |
25,7 |
22,9 |
29,5 |
27,0 |
|
19 |
Красноармейский |
10,0 |
11,8 |
12,6 |
14,2 |
12,9 |
15,5 |
16,5 |
16,2 |
17,7 |
23,8 |
20,9 |
|
20 |
Крыловский |
14,0 |
13,6 |
11,9 |
15,6 |
8,2 |
12,0 |
16,6 |
17,6 |
16,4 |
23,2 |
15,6 |
|
21 |
Курганинский |
18,0 |
16,9 |
17,2 |
19,1 |
12,1 |
17,4 |
20,4 |
24,7 |
22,1 |
27,8 |
27,4 |
|
22 |
Кущевский |
10,0 |
11,7 |
11,5 |
15,2 |
14,6 |
17,8 |
18,9 |
21,3 |
17,1 |
22,7 |
21,6 |
|
23 |
Ленинградский |
19,0 |
17,9 |
15,4 |
20,4 |
20,0 |
19,9 |
20,8 |
25,4 |
24,5 |
27,5 |
24,5 |
|
24 |
Мостовский |
9,0 |
9,0 |
10,2 |
13,0 |
10,5 |
8,6 |
12,8 |
16,0 |
16,9 |
23,1 |
20,6 |
|
25 |
Новокубанский |
21,0 |
21,9 |
18,8 |
26,1 |
23,1 |
23,1 |
26,6 |
27,5 |
27,9 |
30,8 |
27,4 |
|
26 |
Новопокровский |
14,4 |
14,9 |
13,5 |
19,1 |
13,9 |
18,6 |
22,0 |
21,3 |
15,3 |
19,2 |
15,4 |
|
27 |
Отрадненский |
9,4 |
9,4 |
9,4 |
11,0 |
10,6 |
11,3 |
18,8 |
16,7 |
17,0 |
18,7 |
17,8 |
|
28 |
Павловский |
14,5 |
16,3 |
14,8 |
19,7 |
14,0 |
16,7 |
20,9 |
22,9 |
21Д |
25,2 |
21,3 |
|
29 |
Приморско-Ахтарский |
9,9 |
13,0 |
12,4 |
15,7 |
13,4 |
16,9 |
19,5 |
19,5 |
23,6 |
28,4 |
22,8 |
|
30 |
Северский |
8,4 |
7,5 |
5,8 |
7,0 |
7,4 |
6,2 |
11,8 |
12,5 |
13,8 |
16,0 |
16,7 |
|
31 |
Староминский |
18,2 |
17,4 |
16,5 |
17,1 |
17,3 |
20,5 |
18,2 |
21,5 |
23,1 |
33,4 |
25,9 |
|
32 |
Тбилисский |
16,1 |
19,0 |
19,3 |
25,2 |
17,3 |
20,3 |
23,7 |
28,0 |
26,3 |
24,8 |
26,3 |
|
33 |
Темрюкский |
9,2 |
7,9 |
7,7 |
8,5 |
7,1 |
7,9 |
8,9 |
8,2 |
5,3 |
7,4 |
11,7 |
|
34 |
Тимашевский |
17,0 |
17,0 |
15,8 |
19,9 |
17,4 |
21,5 |
19,7 |
28,0 |
25,1 |
27,8 |
27,0 |
|
35 |
Тихорецкий |
14,0 |
15,6 |
15,8 |
19,9 |
15,2 |
21,0 |
24,6 |
24,0 |
22,0 |
25,4 |
22,9 |
|
36 |
Успенский |
10,0 |
11,5 |
10,6 |
17,7 |
9,7 |
11,3 |
13,9 |
13,5 |
18,5 |
14,8 |
18,5 |
|
37 |
Усть-Лабинский |
17,9 |
18,0 |
18,6 |
21,7 |
20,0 |
25,4 |
26,7 |
26,2 |
28,2 |
28,9 |
28,7 |
|
38 |
Щербиновский |
18,3 |
16,9 |
15,7 |
16,5 |
15,2 |
20,6 |
21,1 |
24,8 |
20,6 |
27,7 |
21,2 |
Для преобразования исходных данных в информацию авторами был разработан программный интерфейс, обеспечивающий представление числовых исходных данных, приведенных в табл.1 и табл.2, в форме интервальных значений, обозначенных лингвистическими переменными: «В», «С», «Н», означающих соответственно, следующие элементарные события: высокая, средняя и низкая урожайность (при этом нулевые значения считаются отсутствием данных):
Транспонирование матрицы исходных данных
и формирование БД для расчета по краю и районам
(c) Луценко Е.В., Познышева Н.О.
05/29/12 03:20pm
Программные интерфейсы для импорта данных
Транспонирование DBF-матриц исходных данных
scr23 = SAVESCREEN(0,0,24,79)
Рекогносцировка
CLOSE ALL
PUBLIC Disk_name := DISKNAME()
PUBLIC Cur_dir := CURDIR()
PUBLIC Disk_dir := Disk_name+":\"+Cur_dir
SET CURSOR OFF
CLS
Создать БД для транспонированной БД Inp_data.dbf
CLOSE ALL
USE Ish_data EXCLUSIVE NEW
SELECT Ish_data
Записать всю базу исходных данных в массив
PRIVATE A_IshData[RECCOUNT(), FCOUNT()]
DBGOTOP()
i=1
DO WHILE .NOT. EOF()
FOR j=1 TO FCOUNT()
A_IshData[i,j] = FIELDGET(j)
NEXT
i++
DBSKIP(1)
ENDDO
Создаем файл структуры БД для транспонированной матрицы
CREATE Struc
APPEND BLANK
REPLACE Field_name WITH "Year",;
Field_type WITH "C",;
Field_len WITH 4 ,;
Field_dec WITH 0
FOR j = 1 TO 39
APPEND BLANK
REPLACE Field_name WITH "R"+STRTRAN(STR(j,2)," ","0"),;
Field_type WITH "N",;
Field_len WITH 4 ,;
Field_dec WITH 1
NEXT
Создаем базу данных объектов
CREATE Inp_data FROM Struc
CLOSE ALL
ERASE Struc.dbf
Заполнить транспонированную БД пустыми записями
CLOSE ALL
USE Inp_data EXCLUSIVE NEW
SELECT Inp_data
FOR i=1 TO 21 // Годы
APPEND BLANK
FIELDPUT(1, STR(A_IshData[1,2+i]),4)
NEXT
Заполнить транспонированную БД данными из БД исходных данных
FOR i=1 TO 21 // Годы
DBGOTO(i)
FOR j=1 TO 39 // Районы, 1-й КК
FIELDPUT(1+j, A_IshData[1+j,2+i])
NEXT
NEXT
Записать транспонированную базу исходных данных в массив
CLOSE ALL
USE Inp_data EXCLUSIVE NEW
PRIVATE A_InpData[RECCOUNT(), FCOUNT()]
DBGOTOP()
i=1
DO WHILE .NOT. EOF()
FOR j=1 TO FCOUNT()
A_InpData[i,j] = FIELDGET(j)
NEXT
i++
DBSKIP(1)
ENDDO
Создание БД для программного интерфейса
по Краснодарскому краю в целом и всем районам края
Создаем базы данных по районам и краю в целом
FOR i=1 TO 39
M_Name = "Inp_R"+STRTRAN(STR(i,2)," ","0")
IF FILEDATE(M_Name,16) = CTOD("//")
DIRMAKE(M_Name)
ENDIF
DIRCHANGE(M_Name)
Создаем файл структуры для числовых БД для программного интерфейса
CLOSE ALL
CREATE Struc
APPEND BLANK
REPLACE Field_name WITH "Year",;
Field_type WITH "C",;
Field_len WITH 4 ,;
Field_dec WITH 0
FOR j = 1 TO 21
APPEND BLANK
REPLACE Field_name WITH "Y_"+STRTRAN(STR(j,2)," ","0"),;
Field_type WITH "N",;
Field_len WITH 4 ,;
Field_dec WITH 1
NEXT
CREATE (M_Name) FROM Struc
DIRCHANGE("..")
NEXT
FOR i=1 TO 39
M_Name= "Inp_R"+STRTRAN(STR(i,2)," ","0")
DIRCHANGE(M_Name)
CLOSE ALL
USE (M_Name) EXCLUSIVE NEW
Создание пустой БД по j-му району
FOR j=1 TO 21
APPEND BLANK
FIELDPUT(1, A_InpData[j,1])
NEXT
DIRCHANGE("..")
NEXT
CLOSE ALL
ERASE Struc.dbf
Создание БД для программного интерфейса
по Краснодарскому краю в целом и всем районам края
FOR i=1 TO 39
M_Name= "Inp_R"+STRTRAN(STR(i,2)," ","0")
DIRCHANGE(M_Name)
CLOSE ALL
USE (M_Name) EXCLUSIVE NEW
Заполнение БД по j-му району
FOR k=1 TO 21
FOR j=k TO 21
DBGOTO(j)
FIELDPUT(1+k, A_InpData[j-k+1,1+i])
NEXT
NEXT
DIRCHANGE("..")
NEXT
CLOSE ALL
Поиск границ интервалов: РАВНЫЕ ИНТЕРВАЛЫ
- высокая урожайность (B)
- средняя урожайность (C)
- низкая урожайность (H)
M_Max = -9999
M_Min = +9999
FOR i=1 TO 21
FOR j=2 TO 40
IF A_InpData[i,j] > 0
M_Max = MAX(M_Max, A_InpData[i,j])
M_Min = MIN(M_Min, A_InpData[i,j])
ENDIF
NEXT
NEXT
Delta = (M_Max - M_Min) / 3 // Величина интервала. Интервалы равные
H1 = M_Min + 0 Delta
H2 = M_Min + 1 Delta
C1 = M_Min + 1 Delta
C2 = M_Min + 2 Delta
B1 = M_Min + 2 Delta
B2 = M_Min + 3 Delta
Печать Мin, Мах, Delta и границ интервалов
SET DEVICE TO PRINT
SET PRINTER TO ("BCH_MMD.txt")
s = 0
@s , 0 SAY "Мin, Мах, Delta и границ интервалов"
@s++, 0 SAY "Мin ="+ALLTRIM(STR(M_Min),3,1)
@s++, 0 SAY "Мax ="+ALLTRIM(STR(M_Max),3,1)
@s++, 0 SAY "Delta="+ALLTRIM(STR(Delta),3,1)
@s++, 0 SAY "H={"+ALLTRIM(STR(H1),3,1)+", "+ALLTRIM(STR(H2),3,1)+"}"
@s++, 0 SAY "C={"+ALLTRIM(STR(C1),3,1)+", "+ALLTRIM(STR(C2),3,1)+"}"
@s++, 0 SAY "B={"+ALLTRIM(STR(B1),3,1)+", "+ALLTRIM(STR(B2),3,1)+"}"
SET PRINTER TO
SET DEVICE TO SCREEN
Формирование границ интервалов таким образом,
чтобы в них было РАВНОЕ количество наблюдений
A_inp := {}
FOR i=1 TO 21
FOR j=1 TO 39
IF A_InpData[i,1+j] > 0
AADD(A_inp, A_InpData[i,1+j])
ENDIF
NEXT
NEXT
ASORT(A_inp)
N_Nabl = LEN(A_inp)
H1---H2C1---C2B1---B2
H = 0
C = 0
B = 0
H1 = A_inp[1]
FOR j=1 TO N_Nabl
IF H+1 <= N_Nabl/3
++H
H2 = A_inp[j]
C1 = A_inp[j]
ELSE
IF C+1 <= N_Nabl/3
++C
C2 = A_inp[j]
B1 = A_inp[j]
ELSE
++B
B2 = A_inp[j]
ENDIF
ENDIF
NEXT
Печать границ интервалов с равным количеством наблюдений
SET DEVICE TO PRINT
SET PRINTER TO ("BCH_KOT.txt")
s = 0
@s , 0 SAY "Печать границ интервалов с примерно РАВНЫМ количеством наблюдений"
@s++, 0 SAY "Всего наблюдений"+ALLTRIM(STR(N_Nabl),15)
@s++, 0 SAY "H={"+ALLTRIM(STR(H1),13,1)+", "+ALLTRIM(STR(H2),13,1)+"}, Интервал="+ALLTRIM(STR(H2-H1,13,1))+", Кол-во набл.низкой урожайности: "+ALLTRIM(STR(H),15)
@s++, 0 SAY "C={"+ALLTRIM(STR(C1),13,1)+", "+ALLTRIM(STR(C2),13,1)+"}, Интервал="+ALLTRIM(STR(C2-C1,13,1))+", Кол-во набл.средней урожайности: "+ALLTRIM(STR(C),15)
@s++, 0 SAY "B={"+ALLTRIM(STR(B1),13,1)+", "+ALLTRIM(STR(B2),13,1)+"}, Интервал="+ALLTRIM(STR(B2-B1,13,1))+", Кол-во набл.высокой урожайности: "+ALLTRIM(STR(B),15)
SET PRINTER TO
SET DEVICE TO SCREEN
Формирование БД с лингвистическими переменными
FOR i=1 TO 39
M_NameR= "Inp_R"+STRTRAN(STR(i,2)," ","0")
M_NameL= "Inp_L"+STRTRAN(STR(i,2)," ","0")
DIRCHANGE(M_NameR)
Создаем файл структуры для лингвистических БД для программного интерфейса
CLOSE ALL
CREATE Struc
APPEND BLANK
REPLACE Field_name WITH "Year",;
Field_type WITH "C",;
Field_len WITH 4 ,;
Field_dec WITH 0
FOR j = 1 TO 21
APPEND BLANK
REPLACE Field_name WITH "Y_"+STRTRAN(STR(j,2)," ","0"),;
Field_type WITH "C",;
Field_len WITH 1 ,;
Field_dec WITH 0
NEXT
APPEND BLANK
REPLACE Field_name WITH "ALL_YEAR",;
Field_type WITH "C",;
Field_len WITH 21 ,;
Field_dec WITH 0
CREATE (M_NameL) FROM Struc
DIRCHANGE("..")
NEXT
FOR i=1 TO 39
M_NameR= "Inp_R"+STRTRAN(STR(i,2)," ","0")
M_NameL= "Inp_L"+STRTRAN(STR(i,2)," ","0")
DIRCHANGE(M_NameR)
CLOSE ALL
USE (M_NameL) EXCLUSIVE NEW
Создание пустой БД по j-му району
FOR j=1 TO 21
APPEND BLANK
FIELDPUT(1, A_InpData[j,1])
NEXT
DIRCHANGE("..")
NEXT
CLOSE ALL
ERASE Struc.dbf
Создание лингвистических БД для программного интерфейса
по Краснодарскому краю в целом и всем районам края
FOR i=1 TO 39
M_NameR= "Inp_R"+STRTRAN(STR(i,2)," ","0")
M_NameL= "Inp_L"+STRTRAN(STR(i,2)," ","0")
DIRCHANGE(M_NameR)
CLOSE ALL
USE (M_NameR) EXCLUSIVE NEW
USE (M_NameL) EXCLUSIVE NEW
Заполнение БД по j-му району
SELECT(M_NameR)
DBGOTOP()
DO WHILE .NOT. EOF()
M_AllYear = ""
M_Recno = RECNO()
FOR j=2 TO FCOUNT()-1
SELECT(M_NameR)
MV = FIELDGET(j)
IF MV > 0
SELECT(M_NameL)
DBGOTO(M_Recno)
DO CASE
CASE B1 <= MV .AND. MV < B2
FIELDPUT(j, "B")
M_AllYear = M_AllYear + "B"
CASE C1 <= MV .AND. MV < C2
FIELDPUT(j, "C")
M_AllYear = M_AllYear + "C"
CASE H1 <= MV .AND. MV <=H2
FIELDPUT(j, "H")
M_AllYear = M_AllYear + "H"
ENDCASE
ENDIF
NEXT
SELECT(M_NameL)
DBGOTO(M_Recno)
REPLACE All_Year WITH M_AllYear
SELECT(M_NameR)
DBSKIP(1)
ENDDO
DIRCHANGE("..")
NEXT
CLOSE ALL
СФОРМИРОВАТЬ КЛАССИФИКАЦИОННЫЕ И ОПИСАТЕЛЬНЫЕ ШКАЛЫ И ГРАДАЦИИ
И ОБУЧАЮЩУЮ ВЫБОРКУ ПО ВСЕМ РАЙОНАМ КРАСНОДАРСКОГО КРАЯ И КРАЮ В ЦЕЛОМ
Создать БД сценариев по районам и краю в целом
CLOSE ALL
CREATE Struc
APPEND BLANK
REPLACE Field_name WITH "Kod",;
Field_type WITH "N",;
Field_len WITH 4 ,;
Field_dec WITH 0
APPEND BLANK
REPLACE Field_name WITH "ALL_YEAR",;
Field_type WITH "C",;
Field_len WITH 21 ,;
Field_dec WITH 0
CREATE Scenario FROM Struc
CLOSE ALL
ERASE Struc.dbf
A_scenario := {}
FOR i=1 TO 39
M_NameR= "Inp_R"+STRTRAN(STR(i,2)," ","0")
M_NameL= "Inp_L"+STRTRAN(STR(i,2)," ","0")
DIRCHANGE(M_NameR)
CLOSE ALL
USE (M_NameL) EXCLUSIVE NEW
DBGOBOTTOM()
AADD(A_scenario, All_Year)
DIRCHANGE("..")
NEXT
CLOSE ALL
USE Scenario EXCLUSIVE NEW
FOR i=1 TO 39
APPEND BLANK
FIELDPUT(1, i)
FIELDPUT(2, A_scenario[i])
NEXT
CLOSE ALL
Скопировать БД классификационных и описательных шкал и градаций
и обучающей выборки в директории всех моделей
FOR i=1 TO 39
M_NameR= "Inp_R"+STRTRAN(STR(i,2)," ","0")
COPY FILE (Disk_dir+"\Object.dbf") TO (Disk_dir+"\"+M_NameR+"\Object.dbf")
COPY FILE (Disk_dir+"\Priz_ob.dbf") TO (Disk_dir+"\"+M_NameR+"\Priz_ob.dbf")
COPY FILE (Disk_dir+"\Priz_per.dbf") TO (Disk_dir+"\"+M_NameR+"\Priz_per.dbf")
COPY FILE (Disk_dir+"\Priz_per.dbt") TO (Disk_dir+"\"+M_NameR+"\Priz_per.dbt")
COPY FILE (Disk_dir+"\ObInfZag.dbf") TO (Disk_dir+"\"+M_NameR+"\ObInfZag.dbf")
COPY FILE (Disk_dir+"\ObInfKpr.dbf") TO (Disk_dir+"\"+M_NameR+"\ObInfKpr.dbf")
NEXT
Создание справочников классов и признаков
FOR r=1 TO 39
M_NameR= "Inp_R"+STRTRAN(STR(r,2)," ","0")
M_NameL= "Inp_L"+STRTRAN(STR(r,2)," ","0")
DIRCHANGE(M_NameR)
CLOSE ALL
USE (M_NameL) EXCLUSIVE NEW
USE Object EXCLUSIVE NEW;ZAP
USE Priz_per EXCLUSIVE NEW;ZAP
SELECT(M_NameL)
DBGOBOTTOM()
M_AllYear = All_Year
A_Obj := {}
A_Prp := {}
FOR t=2 TO LEN(M_AllYear) // Позиция во времени
Формирование справочника классов
FOR j=1 TO t-1 // Количество лет в классе
Mu = ALLTRIM(SUBSTR(M_AllYear, t-j, j))
IF ASCAN(A_Obj, STR(LEN(Mu),5)+Mu) = 0
AADD( A_Obj, STR(LEN(Mu),5)+Mu)
ENDIF
NEXT
Формирование справочника признаков
FOR j=t TO LEN(M_AllYear) // Количество лет в признаке
Mu = ALLTRIM(SUBSTR(M_AllYear, t, j-t+1))
IF ASCAN(A_Prp, STR(LEN(Mu),5)+Mu) = 0
AADD( A_Prp, STR(LEN(Mu),5)+Mu)
ENDIF
NEXT
NEXT
Запись справочника классов
ASORT(A_Obj)
SELECT Object
FOR j=1 TO LEN(A_Obj)
APPEND BLANK
FIELDPUT(1, j)
FIELDPUT(2, SUBSTR(A_Obj[j],6))
NEXT
SELECT Object ;INDEX ON Name TO Obj_name
Запись справочника признаков
ASORT(A_prp)
SELECT Priz_per
FOR j=1 TO LEN(A_Prp)
APPEND BLANK
FIELDPUT(1, j)
FIELDPUT(2, SUBSTR(A_Prp[j],6))
NEXT
SELECT Priz_per;INDEX ON Name TO Prp_name
DIRCHANGE("..")
NEXT
Создание обучающей выборки
FOR r=1 TO 39
M_NameR= "Inp_R"+STRTRAN(STR(r,2)," ","0")
M_NameL= "Inp_L"+STRTRAN(STR(r,2)," ","0")
DIRCHANGE(M_NameR)
CLOSE ALL
USE (M_NameL) EXCLUSIVE NEW
USE ObInfZag EXCLUSIVE NEW;ZAP
USE ObInfKpr EXCLUSIVE NEW;ZAP
USE Object INDEX Obj_name EXCLUSIVE NEW
USE Priz_per INDEX Prp_name EXCLUSIVE NEW
SELECT(M_NameL)
DBGOBOTTOM()
M_AllYear = All_Year
M_KodIst = 0
FOR t=2 TO LEN(M_AllYear) // Позиция во времени
Формирование справочника классов
FOR i=1 TO t-1 // Количество лет в классе
FOR j=t TO LEN(M_AllYear) // Количество лет в признаке
M_obj = ALLTRIM(SUBSTR(M_AllYear, t-i, i))
SELECT Object;SET ORDER TO 1;Tr=DBSEEK(M_obj)
IF Tr
M_KodObj = Kod
ENDIF
M_prp = ALLTRIM(SUBSTR(M_AllYear, t,j-t+1))
SELECT Priz_per;SET ORDER TO 1;Tr=DBSEEK(M_prp)
IF Tr
M_KodPrp = Kod
ENDIF
Запись обучающей выборки
++M_KodIst
SELECT ObInfZag
APPEND BLANK
FIELDPUT(1, M_KodIst)
FIELDPUT(2, STR(t, 2)+", "+STR(i,2)+", "+STR(j,2))
FIELDPUT(3, M_KodObj)
SELECT ObInfKpr
APPEND BLANK
FIELDPUT(1, M_KodIst)
FIELDPUT(2, M_KodPrp)
NEXT
NEXT
NEXT
DIRCHANGE("..")
NEXT
Mess = "Процесс завершен успешно !"
@22,40-LEN(Mess)/2 SAY Mess COLOR "rg+/rb"
INKEY(0)
RESTSCREEN(0,0,24,79,scr23)
QUIT
Укрупненный алгоритм работы данного программного интерфейса приведен на рисунке 1:
Рисунок 1. Алгоритм работы программного интерфейса преобразования исходных числовых данных в форму интервальных значений, соответствующих элементарным событиям: «высокая, средняя и низкая урожайность»
С учетом теоремы Котельникова (Найквиста-Шеннона) было принято решение использовать адаптивные интервалы, т.е. подобрать границы интервалов таким образом, чтобы в них попадало примерно одинаковое количество наблюдений (таблица 3):
Таблица 3. Способ кодирования числовых значений интервальными значениями, обозначенными лингвистическими переменными
Интервальное значение (лингвистическая переменная) |
Интервал |
Количество наблюдений |
|||
Начальное значение |
Конечное значение |
Величина |
|||
Н |
0,4 |
14,4 |
14,0 |
272 |
|
С |
14,4 |
19,4 |
5,0 |
272 |
|
В |
19,4 |
33,4 |
14,0 |
273 |
|
Всего: |
817 |
С использованием способа кодирования, представленного в таблице 3, исходные данные из таблиц 1 и 2 представляются в виде (таблица 4):
Таблица 4. Представление исходных данных в форме элементарных событий в предметной области (интервальных значений или лингвистических переменных)
Код района |
1989 - 2009 годы |
||
1 |
Всего по краю (средневзвешенное) |
BBBBBCCCCCHHHHCCCCBBB |
|
2 |
г. Анапа |
HCHHHHHHHHHHHHHHHHHCH |
|
3 |
г. Армавир |
BBBBBCHCHHHHHHCCCCBBC |
|
4 |
г. Белореченск |
CCCCHHHHHHHHHHHHHHHCH |
|
5 |
г. Краснодар |
BBBBBBCCCCHHHCHCCCCBC |
|
6 |
г. Крымск |
CCHHHHHHHHHHHHHHHHHHH |
|
7 |
г. Лабинск |
BBBCCCCCHHHHHHHHHCCBC |
|
8 |
г. Славянск-на-Кубани |
CBCCCHHHHHHHHHHCHHHCH |
|
9 |
Абинский |
CCHHHHHHHHHHHHHHHHHHC |
|
10 |
Белоглиненский |
CCHBBCCBHCHHHCBCCCBBB |
|
11 |
Брюховецкий |
BBBBBBCCCCCCHCBBBBBBB |
|
12 |
Выселковский |
BBBBBBCBCCHCHCBCCBBBB |
|
13 |
Гулькевичский |
BBBBBBCBCBCCHCBBCBBBC |
|
14 |
Динской |
BBBBBCCBCCHHHCHCCHBBB |
|
15 |
Ейский |
CBCCCCCCHHHCHHBHBBBBB |
|
16 |
Кавказский |
BBBBBBCBCCCHHCCCCCCBC |
|
17 |
Калининский |
BBBBCCHCHHHHHCCBBCBBB |
|
18 |
Каневский |
BBBBBBCBCCCCHCBCBCBBB |
|
19 |
Кореновский |
BBBBBBCCCCCHHCBBCCBBB |
|
20 |
Красноармейский |
BBCCCCHHHHHHHHHCBCCBB |
|
21 |
Крыловский |
CBCCCHHCHHHHHHCHCCBBB |
|
22 |
Курганинский |
BBBBBCHCCCCHHHCCCCBBC |
|
23 |
Кущевский |
BBCBCCCCHHHHHHCCCCBBB |
|
24 |
Ленинградский |
BBBBBBBBCCCCHCBBCBBBB |
|
25 |
Мостовский |
BBCCHHHHHHHHHHHHHHCCC |
|
26 |
Новокубанский |
BBBBBBBBCBBBHHBBCBBBB |
|
27 |
Новопокровский |
CCCBBCHCHCCHHCBCCCBBC |
|
28 |
Отрадненский |
CCCCCHHHHHHHHHHHHHCCH |
|
29 |
Павловский |
BBBBCHBCCCCHCBCCBBBB |
|
30 |
Приморско-Ахтарский |
BBBBBCHCHHHHHCBCBBBBB |
|
31 |
Северский |
CCHHHHHHHHHHHHHHHHHHC |
|
32 |
Староминский |
BBBCBCCCCCCHCBCCBBBB |
|
33 |
Тбилисский |
BBBBBBCBCCCCHHCCCCCBC |
|
34 |
Темрюкский |
HHHHHHHHHHHHHHHHHCHCC |
|
35 |
Тимашевский |
BBBBBBCBCCCCHCCBCCBBB |
|
36 |
Тихорецкий |
BBBBBBCBCCHHHHCCCCBBB |
|
37 |
Успенский |
CCCHHHHCHHHHHHBCCBCBC |
|
38 |
Усть-Лабинский |
BBBBBBBBCCCHHCCCCBBB |
|
39 |
Щербиновский |
BBBBBBCCCCCCCHBCBBBBB |
Затем на основе таблицы 4 были разработаны справочник классов, соответствующих сценариям изменения будущих состояний урожайности подсолнечника, и справочник признаков, соответствующих прошлым сценариям изменения состояний урожайности (таблицы 5 и 6):
Таблица 5. Справочник классов - систем событий различной сложности или сценариев изменения урожайности в будущем
Код |
Наимен. |
Код |
Наименован. |
Код |
Наименование |
Код |
Наименование |
|
1 |
B |
44 |
CCCCH |
87 |
CCCCHHHH |
130 |
BBCCCCCHHHHC |
|
2 |
C |
45 |
CCCHH |
88 |
CCCHHHHC |
131 |
BCCCCCHHHHCC |
|
3 |
H |
46 |
CCHHH |
89 |
CCHHHHCC |
132 |
CCCCCHHHHCCC |
|
4 |
BB |
47 |
CHHHH |
90 |
CHHHHCCC |
133 |
CCCCHHHHCCCC |
|
5 |
BC |
48 |
HCCCC |
91 |
HHCCCCBB |
134 |
CCCHHHHCCCCB |
|
6 |
CB |
49 |
HHCCC |
92 |
HHHCCCCB |
135 |
CCHHHHCCCCBB |
|
7 |
CC |
50 |
HHHCC |
93 |
HHHHCCCC |
136 |
BBBBBCCCCCHHH |
|
8 |
CH |
51 |
HHHHC |
94 |
BBBBBCCCC |
137 |
BBBBCCCCCHHHH |
|
9 |
HC |
52 |
BBBBBC |
95 |
BBBBCCCCC |
138 |
BBBCCCCCHHHHC |
|
10 |
HH |
53 |
BBBBCC |
96 |
BBBCCCCCH |
139 |
BBCCCCCHHHHCC |
|
11 |
BBB |
54 |
BBBCCC |
97 |
BBCCCCCHH |
140 |
BCCCCCHHHHCCC |
|
12 |
BBC |
55 |
BBCCCC |
98 |
BCCCCCHHH |
141 |
CCCCCHHHHCCCC |
|
13 |
BCC |
56 |
BCCCCC |
99 |
CCCCCHHHH |
142 |
CCCCHHHHCCCCB |
|
14 |
CBB |
57 |
CCCCBB |
100 |
CCCCHHHHC |
143 |
CCCHHHHCCCCBB |
|
15 |
CCB |
58 |
CCCCCH |
101 |
CCCHHHHCC |
144 |
BBBBBCCCCCHHHH |
|
16 |
CCC |
59 |
CCCCHH |
102 |
CCHHHHCCC |
145 |
BBBBCCCCCHHHHC |
|
17 |
CCH |
60 |
CCCHHH |
103 |
CHHHHCCCC |
146 |
BBBCCCCCHHHHCC |
|
18 |
CHH |
61 |
CCHHHH |
104 |
HHHCCCCBB |
147 |
BBCCCCCHHHHCCC |
|
19 |
HCC |
62 |
CHHHHC |
105 |
HHHHCCCCB |
148 |
BCCCCCHHHHCCCC |
|
20 |
HHC |
63 |
HCCCCB |
106 |
BBBBBCCCCC |
149 |
CCCCCHHHHCCCCB |
|
21 |
HHH |
64 |
HHCCCC |
107 |
BBBBCCCCCH |
150 |
CCCCHHHHCCCCBB |
|
22 |
BBBB |
65 |
HHHCCC |
108 |
BBBCCCCCHH |
151 |
BBBBBCCCCCHHHHC |
|
23 |
BBBC |
66 |
HHHHCC |
109 |
BBCCCCCHHH |
152 |
BBBBCCCCCHHHHCC |
|
24 |
BBCC |
67 |
BBBBBCC |
110 |
BCCCCCHHHH |
153 |
BBBCCCCCHHHHCCC |
|
25 |
BCCC |
68 |
BBBBCCC |
111 |
CCCCCHHHHC |
154 |
BBCCCCCHHHHCCCC |
|
26 |
CCBB |
69 |
BBBCCCC |
112 |
CCCCHHHHCC |
155 |
BCCCCCHHHHCCCCB |
|
27 |
CCCB |
70 |
BBCCCCC |
113 |
CCCHHHHCCC |
156 |
CCCCCHHHHCCCCBB |
|