Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_2,3,4_Временные ряды_.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.23 Mб
Скачать

1.Мета роботи.

2.Аналіз вихідних даних.

3.Побудова моделі прогнозу.

4.Оцінка адекватності.

5.Висновки.

3.6 Контрольні запитання і завдання

1. Яким чином проводиться аналіз вихідних даних для побудови моделі прогнозу?

2. Дайте визначення інтервенції.

3. Які існують види інтервенцій, перерахуйте їх та наведіть приклади вигляду динамічних рядів, що мають такі складові?

4. Наведіть порядок перетворень вихідних даних для отримання випадкової складової динамічного ряду.

5. За якими критеріями проводиться оцінка адекватності моделі прогнозу?

4 Вивчення побудови моделі прогнозування техніко-економічної інформації в ІУС за допомогою ППП Deductor

4.1 Мета роботи

Одержати навички роботи з пакетом прикладних програм DEDUCTOR для прогнозування тимчасових рядів. Провести інтерпретацію моделі прогнозу й оцінити її адекватність.

4.2 Методичні вказівки з організації самостійної роботи студентів

Вивчити вимоги з підготовки до виконання даної лабораторної ро­боти у відповідності до конспекту лекцій, літературні джерела приведені в конспекту лекцій з рекомендаціями щодо їх використання, а також послідовність самостійного вивчення необхідних розділів для виконання лабораторних робіт. Таблиці експериментальних даних для проведення лабораторних робіт видає викладач.

Студент повинен знати методи прогнозування техніко-економічної інформації та її інтерпретацію, вміти використовувати ППП Deductor.

До проведення лабораторної роботи студент повинен досконало вивчити об’єкт дослідження.

В процесі проведення лабораторної роботи студент повинен виконати наукові дослідження щодо використання структури моделі прогнозування.

4.3 Опис лабораторної установки

Лабораторна робота виконується в діалоговому режимі з використанням ЕОМ IBM PC з такими характеристиками:

 персональний комп'ютер з мікропроцесором Intel частотою понад 400 МГц, накопичувачем на гнучких дисках високої щільності та жорстким диском;

 пам'ять комп'ютера: оперативна пам'ять понад 64 Мбайт, на жорсткому диску понад 1,5 Гбайт вільного простору;

 операційна система Windows 98 або Windows 2000.

Оперативний обмін інформацією з ЕОМ здійснюється за допомогою відеотерминального пристрою і пакета прикладних програм Deductor. Кількість застосовуваних технічних засобів забезпечує індивідуальний режим виконання лабораторної роботи.

4.4 Порядок виконання роботи і методичні вказівки з її виконання

4.4.1 Особливості застосування нейронних мереж для прогнозування

Якість прогнозування тимчасових рядів з використанням нейронних мереж багато в чому залежить від якості вихідних даних(навчальної вибірки). При навчанні нейронної мережі(НМ) не враховується(практично) порядок даних у вибірці(усі значення рівнозначні і однаково застосовуються). У випадку тимчасових рядів, тимчасову складову необхідно враховувати максимально – сезонну складову, циклічну складову і т.д. У цьому зв'язку, при формуванні навчальної вибірки доцільно проаналізувати вихідні дані на предмет виявлення цих складових і врахувати їх у вихідній вибірці. Так, наприклад, якщо вихідні дані являють собою щомісячні значення будь-якої величини за кілька років, то доцільно використовувати як вхідні дані для НМ не тільки абсолютну шкалу часу, але й додатково: номер місяця(місяць) і безпосередньо рік. Це дозволить більш точно врахувати сезонність і циклічність вихідних даних.

Хоча таке поширення вихідних даних не є обов'язковим. Такого ж результату по точності можна досягти використовуючи більш складну структуру НМ. Однак, при досить складній структурі НМ значно зростає час навчання і сумарна помилка апроксимації.

4.4.2 Прогнозування з використанням ПЗ Neural Analyzer з ППП Deductor

Робота з модулем Neural Analyzer може робиться в двох напрямках. Перше – практичне використання вже створеної і навченої НМ. Воно полягає у формуванні і подачі на вхід мережі робочої безлічі, результати обробки якої мережею наводяться у вигляді таблиці і, при необхідності, можуть бути експортовані в інший додаток для подальшої обробки або збережені у вигляді файлу визначеного формату. Другий напрямок полягає в створенні і навчанні нової НМ. У рамках даного напрямку необхідно вибрати тип НМ, розробити конфігурацію, сформувати навчальну вибірку і навчити мережу. Після цього, результати навчання мережі повинні бути оцінені і зроблений висновок про доцільність і ефективність її використання. Оцінка результатів навчання може бути зроблена на основі статистичних характеристик значень виходів мережі і відповідних графіків. У процесі роботи з Майстром навчання користувач може змінювати параметри навчальної вибірки і самого процесу навчання. Однак, слід зазначити, що як процес створення і навчання нової НМ, так і практичне використання готової вимагає підключення джерел даних .

4.4.3 Формування навчальної вибірки

Використовуємо вихідні дані з файлу series_g.stа. Проаналізуємо вихідні дані.

Рисунок 4.1

З графіка видно, що є щорічна циклічність. У цьому зв'язку доцільно використовувати механізм поширення навчальної вибірки, описаний у попередньому розділі. Виконаємо експорт вихідних даних у MS Excel і доповнимо її двома вхідними параметрами – номер місяця і номер року, а також перетворимо шкалу часу в «безперервний вигляд» - параметр “time”. Частина навчальної вибірки буде виглядати в такий спосіб.

Month

Year

Time

Value

1

1949

1949,000

112

2

1949

1949,083

118

3

1949

1949,167

132

4

1949

1949,250

129

5

1949

1949,333

121

6

1949

1949,417

135

7

1949

1949,500

148

8

1949

1949,583

148

9

1949

1949,667

136

10

1949

1949,750

119

11

1949

1949,833

104

12

1949

1949,917

118

1

1950

1950,000

115

2

1950

1950,083

126

3

1950

1950,167

141

4

1950

1950,250

135

5

1950

1950,333

125

6

1950

1950,417

149

7

1950

1950,500

170

8

1950

1950,583

170

9

1950

1950,667

158

10

1950

1950,750

133

11

1950

1950,833

114

12

1950

1950,917

140

1

1951

1951,000

145

2

1951

1951,083

150

3

1951

1951,167

178

4

1951

1951,250

163

Збережемо отриману навчальну вибірку у файлі series_g.xls.

4.4.4 Створення НМ і підключення до джерел даних

Щоб приступити до створення нової НМ, варто скористатися командою Файл /Створити або клацнути по відповідній кнопці на панелі інструментів. У результаті закриваються усі відкриті вікна, і починає працювати Майстер підключення, що витягає дані з джерела, перетворюючи їх до формату, прийнятому в додатках пакета Deductor. По закінченні роботи Майстра підключення, запускається Майстер навчання, що дозволить навчити нову НМ.

Майстер підключення являє собою зручний механізм вибору і настроювання джерела даних для навчання. Крім цього Майстер підключення перетворить дані з джерела до формату, використовуваному в додатках, що входять у пакет Deductor. Це полегшує користувачеві задачу аналізу даних за допомогою різних аналітичних інструментів. Майстер підключення починає свою роботу відразу після вибору команди Файл /Створити і на екрані відкривається вікно Підключитися до джерела даних (мал. 1).

Рисунок 4.2 - Майстер підключення до джерела даних

У лівій частині вікна, на білому тлі, представлений список вже настроєних підключень. Вигляд значка, яким відзначене підключення у списку вказує на його тип. У правій частині вікна користувач може переглянути, а при необхідності й настроїти параметри обраного підключення (вибір вироблюється щигликом миші по значку підключення в списку).

Далі необхідно додати нове підключення для імпорту даних з таблиці Excel.

Рисунок 4.3

І потім, указати шлях до відповідного файлу таблиці Excel і вибрати ім'я відповідного листа таблиці (як показано на малюнку)

Рисунок 4.4

Далі необхідно визначити типи імпортованих даних:

Рисунок 4.5

На малюнку прийняті такі умовні позначення:

№ – порядковий номер,

Float – числове поле (з плаваючою крапкою),

Мітка поля – назва поля даних,

Ключ – зробити поле ключовим (поле по якому будується індекс у базі даних) – може бути тільки одне поле в таблиці.

І, нарешті, вкладка Перегляд даних дозволяє редагувати вміст і зробити висновок про правильність даних.

Рисунок 4.6

Після завершення процедури підключення джерела даних і визначення всіх необхідних параметрів підключення, джерело даних може бути використано як навчальна вибірка для нової або раніше створеної НМ. Щиглик по кнопці ОК завершує роботу Майстра підключення і закриває вікно Підключитися до джерела даних.

Після цього починає роботу Майстер навчання НМ на основі навчальної вибірки з підключеного джерела. Щиглик по кнопці Скасування також завершує роботу Майстра підключення, але Майстер навчання при цьому не запускається . На екрані з'являється запит про збереження змін. Вибір варіанта Так зберігає нове підключення або зміни в параметрах підключення, створеного раніше, Ні – відмовлення від збереження .

4.4.5 Навчання нейронної мережі

Перш ніж застосовувати нейронну мережу для рішення реальних задач, вона повинна бути відповідним чином навчена. Розглянемо процес навчання мережі безпосередньо на

навчальній вибірці Series_g. Щоб зробити процес навчання більш гнучким, ефективним і доступним для користувача, у модулі Neural Analyzer передбачений Майстер навчання, що дозволяє виконати процес навчання мережі в покроковому режимі.

Щоб приступити до роботи з Майстром навчання, необхідно відкрити навчальний набір даних і в меню вибрати команду Мережа /Майстер навчання або скористатися кнопкою на панелі інструментів – майстер навчання (F4). У результаті на екрані відкриється вікно першого кроку Майстри навчання.

На першому кроці роботи з Майстром навчання користувач повинен установити параметри даних у навчальній вибірці, шляхом настроювання властивостей кожного з вхідних у неї полів. У середній частині вікна, на білому тлі, відображається список полів, що входять у навчальну безліч. У правій частині вікна, на сірому тлі, представлені елементи настроювання параметрів полів.

Рисунок 4.7

Щоб настроїти параметри поля, потрібно виділити його в списку щигликом миші, при цьому в полі Ім'я поля відобразиться його ім'я, установлене для поля у файлі-джерелі, а всі параметри будуть встановлені в поточне для даного поля значення. Для кожного поля передбачене настроювання наступних параметрів:

Тип поля – тип даних, що утримуються в полі. Може приймати значення «Число», «Рядок», «Дата /Час» або «Логічний». Логічний тип указує на те, що дані в полі можуть приймати тільки два значення – «істина»(кодується одиницею) або «неправда»(кодується нулем). У залежності від того, який тип має виділене поле, набір параметрів буде різним. Поля типу «Число» призначене для збереження даних безперервного характеру, як, наприклад, ряд чисел, значення в якому можуть приймати будь-яке значення. У полях типу «Рядок» зберігаються дискретні дані, тобто ті які приймають обмежений набір значень, як, наприклад, набір об'єктів, що мережа повинна класифікувати. Для полів типу «Рядок» нормалізація і статистика не відображаються. Замість цього, у полі «Унікальних значень» вказується кількість значень, що можуть з'являтися у полі типу «Рядок», а нижче перичислені самі ці значення.

Використовувати як – дозволяє визначити роль поля при навчанні мережі. Можливі наступні варіанти:

вхідне – значення даного поля буде подаватися на вхід мережі як навчальні приклади;

цільове – значення даного поля є еталонним і буде використовуватися для порівняння з виходом мережі. Цільових полів може бути кілька;

не використовувати – поле не буде використовуватись при навчанні мережі. Поле виключається з числа використовуваних по розсуду користувача;

поле недоступне для використання – такі поля не можуть використовуватися в навчальній вибірці. Це, наприклад, може бути викликане тим, що дані в полі мають нульову дисперсію (постійна величина ) і не можуть бути застосовані для навчання мережі. Примусово включити такі поля в список використовуваних не можна .

Дата відліку – дане настроювання стає доступним тільки для полів, що мають тип «Дата /Час ». Для нього варто вказати початкову дату, що служить як своєрідний нуль шкали дат .

Нормалізація – даний параметр установлюється тільки для полів типу «Число». Це службовий параметр, що встановлює спосіб нормалізації даних при їхній обробці. Нормалізація необхідна, оскільки Neural Analyzer може працювати тільки з нормалізованими даними .

Секція Статистика – дозволяє отримати інформацію про основні статистичні характеристики обраного поля – максимального (Макс.), мінімального (Мін.) і середнього значення (Середн.), а також дисперсії (Ст.Відхл.). Якщо дисперсія дорівнює нулю і поле недоступно для навчання, то поле Ст.Відхл. виділяється червоним заливанням. У лівому нижньому куті вікна Майстра навчання мається кнопка Перегляд даних. Вона дозволяє переглянути навчальну вибірку, отриману в результаті настроювання полів, в окремому вікні. Якщо поле не використовується , його дані відображаються тьмяним сірим кольором. У вікні навчальної вибірки доступні функції пошуку й експорту даних. Після того, як усі необхідні настроювання для полів навчальної безлічі встановлені, для переходу до наступного кроку Майстра навчання варто клацнути по кнопці Далі.

Рисунок 4.8

Тут необхідно задати регламент навчання нейронної мережі.

Алгоритм – метод навчання нейронної мережі. Доступні наступні алгоритми навчання НМ:

а) зворотнього поширення (Back Propagation);

б) Resilient Propagation;

в) сполучених градієнтів (Conjugate Gradients);

г) мережа з радіальними базисними елементами (Radial Basis Function – RBF).

Метод зворотнього поширення помилки – ітеративний градієнтний алгоритм навчання, що використовується з метою мінімізації середньоквадратичного відхилення поточних значень виходів мережі від необхідних. Поширення сигналів помилки походить від виходів мережі до її входів, тобто в напрямку, зворотньому прямому поширенню сигналів у звичайному режимі. Одною найважливіших властивостей алгоритму зворотного поширення помилки є висока стійкість, а отже, надійність. Хоча нейронні мережі, що використовують алгоритм зворотнього поширення, будучи могутнім інструментом пошуку закономірностей, прогнозування і якісного аналізу, одержали широке поширення, їм властиві деякі недоліки. До них відносяться невисока швидкість збіжності(велике число необхідних ітерацій), що робить процес навчання занадто довгим і непридатним використання даного алгоритму для широкого кола задач, що вимагають швидкого рішення.

Інші алгоритми навчання НС, хоча і працюють швидше, у більшості випадків, мають меншу стійкість .

Метод Resilent Propogation (Rprop) заснований на використанні не величини похідної помилки мережі, а її знака. Алгоритм використовує так називане «навчання по епохах», коли корекція ваг відбувається після пред'явлення мережі всіх прикладів з навчальної вибірки. Перевага даного методу полягає в тім, що він забезпечує збіжність, а, отже, і навчання мережі в 4-5 разів швидше, ніж алгоритм зворотного поширення .

Метод сполучених градієнтів являє собою різновид градієнтного методу пошуку мінімуму функції і також забезпечує досить високу швидкість навчання мережі.

Мережа з радіальними базисними елементами – двошарова мережа без зворотних зв'язків, що містять схований шар радіально-симетричних нейронів. Одне з переваг мережі RBF, те, що вона моделює довільну нелінійну функцію за допомогою всього одного схованого шару, рятуючи користувача від необхідності вирішувати питання про число шарів . Навчання мережі RBF виробляється на порядок швидше, ніж мережі зворотьоного поширення. Недолік мереж RBF у тім, що вони володіють поганими екстраполюючими властивостями і виходять досить громіздкими при великій розмірності вектора входів.

Секція Параметри, у якій указуються параметри створюваної мережі, у залежності від обраного алгоритму навчання буде містити різні настроювання. Для алгоритму зворотного поширення помилки необхідно настроїти два параметри:

Швидкість навчання – параметр алгоритму навчання мережі, що керує величиною кроку при ітераційній корекції ваг. Приймає значення в діапазоні 0...1. При великій величині кроку, збіжність буде більш швидкою, але є небезпека «перестрибнути» через рішення. З іншого боку, при малій величині кроку, навчання зажадає занадто багатьох ітерацій. На практиці величина кроку береться пропорційній крутості схилу, так, що алгоритм сповільнюється поблизу мінімуму. Правильний вибір швидкості навчання залежить від конкретної задачі і звичайно робиться досвідченим шляхом.

Момент – величина, що впливає на корекцію синаптичних ваг при навчанні мережі . Змінюється в інтервалі 0...1…1, а значення, що рекомендується, 0,0,1.

Для методу Resilient Propagation налагоджуються параметри Крок підйому та Крок спуску.

Крок спуску – коефіцієнт збільшення швидкості навчання. Задається крок збільшення швидкості навчання при недосягненні алгоритмом оптимального результату. Крок підйому – коефіцієнт зменшення швидкості навчання. Задається крок зменшення швидкості навчання у випадку пропуску алгоритмом оптимального результату .

Для алгоритму сполучених градієнтів додається нове настроювання – Метод обчислення, що дозволяє вибрати метод обчислення Полака-Райбера або Флетчера-Рівса .

Для мереж RBF у секції Параметри навчання настроювання не передбачені .

Активаційна функція – дозволяє вибрати вид активаційної функції і значення зсуву для нейронів мережі. Вид функції активації встановлюється для усіх вхідних у мережу нейронів. Доступні два види активаційних функцій – сигмоїдна(логістична) і гіперболічний тангенс. При цьому, для сигмоїдної функції варто установити крутість. Установка значення крутості створюється за допомогою горизонтального регулятора, розташованого над графіком сигмоїди. Для цього варто установити покажчик миші на мітку регулятора і, утримуючи ліву кнопку натиснутою, перемістити мітку по шкалі до потрібного значення, контролюючи форму графіка функції по малюнку.

На наступному кроці Майстра навчання встановлюються параметри, що будуть використовуватися системою при навчанні мережі. Набір цих параметрів буде різним для відмінних алгоритмів навчання .

Рисунок 4.9

Нейрони в шарах – дане настроювання дозволяє визначити такі параметри нейронної мережі, як число схованих шарів і кількість нейронів у кожнім схованому шарі. Число нейронів у вхідному і вихідному шарах визначається розмірністю задачі – тобто числом вхідних і вихідних полів, що встановлюється на попередньому кроці Майстра навчання. Щоб збільшити або зменшити число схованих шарів, потрібно установити відповідне значення в полі Схованих шарів. Потім, для кожного шару вказати число нейронів у ньому. Для цього клацнути мишею в полі Нейронів праворуч від номера відповідного шару і ввести потрібно число. Слід зазначити, що мережі RBF можуть мати тільки один схований шар, тому при виборі даного типу мережі, відповідно настроювання блокується .

У нашому прикладі виберемо 4 схованих шари по 10 нейронів у кожному. Це досить складна структура НМ. Це обумовить більш «гнучку» апроксимацію, але також може привести до досить великої помилки обчислень. Для одержання раціональної структури НМ необхідно провести дослідження, у процесі якого необхідно змінювати кількість схованих шарів і кількість нейронів у них.

Для поліпшення контролю якості навчання НМ, навчаючу вибірку можна розділити на дві безлічі – навчальну і тестову. Тестова безліч служить для перевірки здібностей навченої мережі. При формуванні навчальної і тестової безлічей використовуються параметри, що налагоджуються в секції Формування безлічей . Можна визначити два способи формування навчальної і тестової безлічей :

У відсотках – обсяг безлічей задається у відсотках від загального числа прикладів .

У прикладах – обсяг безлічей задається по числу прикладів, яке повинне входити в кожну з безлічей.

Щоб задати обсяг безлічей потрібно ввести відповідні значення у відсотках або число прикладів у поля Навчальна і Тестова. Якщо прапорець Баланс встановлений, то всі приклади, що не ввійшли в одну з безлічей, автоматично будуть додаватися в інше. Таким чином, усі приклади, що існують у вибірці, обов'язково будуть задіяні при навчанні. Якщо прапорець Баланс скинутий, то розміри безлічей можуть задаватися незалежно одна від іншої. Даний режим дозволяє використовувати при навчанні не всі приклади. Це може бути корисно у тому випадку, коли прикладів занадто багато і бажано відмовитися від використання частини з них. У полі Усього прикладів вказується загальне число прикладів навчальної вибірки. Параметр Метод заповнення визначає порядок добору прикладів у навчальну і тестову безлічі. Якщо приклади неупорядковані, то можна використовувати метод В існуючому порядку. У супротивному випадку переважно використовувати метод Випадковим чином.

Установка прапорця Пропускати записи з нульовими значеннями дозволить відмовитися від використання при навчанні записів, що містять нульові значення .

У полі Розширити діапазон на можна задати величину у відсотках, на яку буде розширений інтервал можливих значень виходів мережі. Інтервал буде розширений в обидва боки(від мінімуму до максимуму). Ця міра може бути необхідна для того, щоб згладити значення в граничних областях і дозволити мережі видавати прогнози, що виходять за інтервал значень, представлених у навчальній вибірці .

У зв'язку з тим, що ми будемо використовувати нейронну мережу для прогнозування – виберемо це значення рівним 20 %.

Рисунок 4.10

На наступному кроці Майстра навчання необхідно вибрати умови зупинки процесу навчання.

Рисунок 4.11

Параметри, при досягненні яких виконується умова зупинки навчання, є однаковими для всіх алгоритмів. Щоб умова стала діючою для нього повинен бути встановлений прапорець. Секція містить два набори настроювань параметрів зупинки – для навчальної і для тестової безлічей. Якщо тестова безліч не передбачена, то настроювання параметрів для неї недоступні. У вікні повинен бути обраний хоча б один критерій зупинки. Вважати приклад розпізнаним, якщо помилка менше – визначає значення помилки, при досягненні якої приклад вважається розпізнаним. Чим менше це значення, тим вище вимоги до навчання мережі. При досягненні епохи – встановлює число ітерацій навчання нейронної мережі(епох), на кожній з яких відбувається пред'явлення всіх зразків навчальної безлічі з їх наступною перевіркою на тестовій безлічі . При досягненні заданого числа епох процес навчання припиняється .

Максимальна помилка менше – максимальна квадратична помилка на навчальній(тестовій) безлічі. Процес навчання припиняється, як тільки параметр стає менше встановленого значення. Середня помилка менше – середня квадратична помилка на навчальній(тестовій) безлічі. Умовою зупинки служить досягнення значення помилки менше встановленої. Розпізнано прикладів (%) – кількість розпізнаних прикладів на навчальній(тестовій) безлічі, при досягненні заданого відсотка яких процес навчання припиняється.

У секції Параметри відображення графіків варто вказати:

Частота відновлення – кількість епох, що повинна пройти з моменту останнього відновлення графіка.

Видиме вікно – кількість епох , що одночасно буде бачити користувач на графіку.

Після встановлення усіх основних параметрів мережі на попередніх кроках Майстра навчання, слідуючим кроком є представлення опису конфігурації мережі в текстовій формі. Користувач повинен уважно ознайомитися з ним і у випадку виявлення помилок повернутися до попередніх кроків Майстра навчання, щоб внести в настроювання відповідні виправлення.

Рисунок 4.12

Навчання мережі – завершальний крок роботи Майстра навчання, на якому відбувається власне навчання нейронної мережі з параметрами, установленими на попередніх кроках. Вікно Навчання мережі має такий вигляд

Рисунок 4.13

Верхню частину вікна займає сімейство графіків, на яких відображаються зміни максимальної (суцільна лінія) і середньої(пунктирна лінія) квадратичних помилок для навчальної і, якщо це передбачено, тестової безлічей. Графіки для навчальної безлічі відображаються синім кольором, а для тестової – червоним. При необхідності користувач може відключити той чи інший графік, скинувши прапорець ліворуч від найменування відповідного параметра. Над полем графіка вказується обраний алгоритм навчання. Поки процес навчання не початий, поле графіка залишається порожнім. Під полем графіка розташована панель, що відображає поточні значення максимальної і середньої квадратичних помилок для навчальної і, якщо це передбачено, тестової безлічей, а також відсоток розпізнаних прикладів. Таким чином, користувач має можливість контролювати процес навчання мережі не тільки по графіках, але і за точним значенням помилок, відображуваних у відповідних полях. Крім цього тут відображається число епох і час, пройдений з моменту початку навчання.

Щоб запустити процес навчання потрібно клацнути по кнопці запуску. Припинення процесу навчання відбувається або автоматично – при досягненні однієї з умов зупинки, описаних у вікні Параметри навчання, або примусово – щигликом по кнопці зупинки.

Після завершенні навчання вікно виглядає в такий спосіб:

Рисунок 4.14

4.5 Зміст звіту

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]