Uploaded by p.moysak

Дипломный проект по кластеризации данных

advertisement
4
РЕФЕРАТ
Пояснювальна записка: 86 с., 9 табл., 24 рис., 3 дод., 19 джерел.
КЛАСТЕРІЗАЦІЯ ДАНИХ, МЕТОД К-СЕРЕДНІХ, МЕТОД ПОВНОГО
ЗВ’ЯЗКУ, КЛАСТЕРНИЙ АНАЛІЗ.
Об’єкт роботи – кластеризація користувачів з урахуванням рішень, які
були прийняті раніше.
Предмет роботи – реалізація методу k-середніх та методу повного зв’язку
для кластерізації користувачів на основі раніше прийнятих ними рішень.
Мета роботи – розробити інформаційну підсистему кластерного аналізу
користувачів на основі раніше прийнятих ними рішень.
Методи дослідження – ієрархічні та неієрархічні методи кластерізації
даних; середовище розробки QtCreator та мова програмування С++.
Проведено огляду сучасного стану та розвитку інформаційних технологій
з використанням кластерного аналізу. Відображено порівняння різних
алгоритмів кластерного аналізу.
Здійснено проектування інформаційної підсистеми, що розробляється,
описано перелік вхідних та вихідних даних. Проведено опис інформаційного,
математичного та алгоритмічного забезпечення. Виявлено залежності між
об’єктами предметної області. Побудована логічна та фізична модель
предметної області, що включає всі об’єкти.
Представлено інформацію про розроблене програмне забезпечення
роботи, опис програми, інструкція користувача, вимоги до технічного
забезпечення. Використання данної програми значно скоротить обчислювання
5
методів кластерізації. У подальшому програму можливо розвивати, то додавати
нові методи.
6
ЗМІСТ
ВСТУП
7
1 АНАЛІТИЧНИЙ ОГЛЯД ЛІТЕРАТУРИ
9
1.1 Вивчення об’єкту дослідження
9
1.2 Аналіз існуючих програмних продуктів
11
1.3 Етапи кластерного аналізу
12
1.4 Огляд наукових публікацій з дослідження поведінки пасажирів
транспорту
15
1.5 Постановка задачі
17
1.6 Висновки за аналітичним оглядом літератури
17
2 ДОСЛІДНИЦЬКИЙ РОЗДІЛ
19
2.1 Математичне забезпечення
19
2.1.1 Метод k-середніх
22
2.1.2 Метод повного зв’язку
23
2.2 Проектування наочної області підсистеми, що розробляється
24
2.3 Створення логічної та фізичної моделей програмної системи
27
2.3.1 Проектування логічної моделі (статичний погляд)
27
2.3.2 Проектування логічної моделі (динамічний погляд)
29
2.3.3 Проектування фізичної моделі
34
2.4 Висновки за дослідницьким розділом
36
3 РОЗРАХУНКОВИЙ РОЗДІЛ
37
3.1 Програмне забезпечення
37
3.1.1 Системне програмне забезпечення (характеристика і специфікація) 37
3.1.2 Опис програми
37
3.1.3 Інструкція користувача
40
3.1.4 Технічне забезпечення
51
7
3.2 Висновки за розрахунковим розділом
52
4 ОХОРОНА ПРАЦІ ТА БЕЗПЕКА В НАДЗВИЧАЙНИХ СИТУАЦІЯХ
53
4.1 Оцінка умов в яких проводилась дипломна робота
53
4.2 Заходи по створенню безпечних та здорових умов праці
53
4.3 Характеристика приміщення по пожежо- та вибухонебезпечності
59
4.4 Протипожежні заходи
59
4.5 Оцінка стану об’єкта в надзвичайних ситуаціях
60
5 ОРГАНІЗАЦІЙНО-ЕКОНОМІЧНИЙ РОЗДІЛ
62
5.1 Вартісний аналіз
62
5.1.1 Розрахунок трудомісткості програмного продукту (інформаційної
системи)
62
5.1.2 Розрахунок і калькуляція собівартості продукту (інформаційної
системи)
63
5.2 Визначення ціни продукту (інформаційної системи)
71
5.2.1 Розрахунок договірної ціни продукту (інформаційної системи)
71
5.2.2 Розрахунок ціни продукту (інформаційної системи) за методом
лімітних цін
72
5.3 Оцінка конкурентоспроможності продукту (інформаційної системи)
5.4
Моделювання
конкурентоспроможності
розробленого
77
продукту
(інформаційної системи) та його аналогу
81
ВИСНОВКИ
82
ПЕРЕЛІК ДЖЕРЕЛ ПОСИЛАНЬ
84
ДОДАТОК А Фрагмент коду програми
87
ДОДАТОК Б Копії публікації
93
ДОДАТОК В Копія сертифікату Всеукраїнського конкурсу наукових робіт
98
8
ВСТУП
У сучасному світі інформація має величезну цінність і значення, а її обсяг
неухильно зростає. У зв’язку з широким застосуванням IT-технологій на базі
використання різних засобів обчислювальної техніки, сформувалася область
наукових досліджень і завдань розробки інформаційно-аналітичних систем,
призначених для вилучення знань, пошуку оптимальних методів обробки
накопичених даних.
Data Mining – один із напрямів інтелектуального аналізу даних, що
з’явилося на стику 80-90 років минулого століття в колах фахівців, пов’язаних з
областю баз даних. Методи цього напрямку базуються на математичних і
статистичних прийомах дослідження. Григорій Пятецкий-Шапіро – один із
засновників цього напрямку – технологію Data Mining визначає наступним
чином: «Data Mining – це процес виявлення в сирих даних раніше невідомих,
нетривіальних,
практично
корисних
і
доступних
інтерпретації
знань,
необхідних для прийняття рішень в різних сферах людської діяльності» [1].
Одними з основних завдань в області Data Mining є методи кластеризації –
об’єднання в групи об’єктів за певними ознаками. Сьогодні кластеризація є
першим кроком аналізу даних, тому важливо правильно їх організувати,
узагальнити і представити для подальшого аналізу.
Головна мета кластерного аналізу полягає в розбитті множини об’єктів на
непересічні безлічі, схожі за своїми властивостями всередині групи і
відрізняються від інших груп. Такий аналіз застосовується для знаходження
закономірностей в наборах даних. Область застосування кластерного аналізу
дуже обширна і включає в себе різні області. Наприклад, в маркетингу – це
сегментація клієнтів, прогнозування зміни складу і лояльності клієнтів, в
банківській і страховій справі – це виявлення ознак шахрайства та аналіз
9
ризиків. Методи кластеризації використовуються також в медицині, прикладної
хімії, геології, біології, соціології та інших областях людської діяльності.
Транспортна система характеризується безліччю показників таких, як час
очікування транспорту, час поїздки, інтервал руху транспорту на маршруті,
тариф, кількість пересадок, комфортабельність поїздки і багатьом іншими. При
цьому не можна точно відповісти, який з перерахованих факторів, є найбільш
важливим, а який менш важливим в ухваленні рішення пасажиром при виборі
свого маршруту. Цими фактами обумовлена актуальність і складність даного
дослідження.
У дипломній роботі розглядається поетапне проектування інформаційної
системи «Кластерізація користувачів на основі раніше прийнятих ними рішень»
у середовищі Rational Rose на основі мови UML, розробка програми за
допомогою програмного засобу QtCreator на основі мови програмування С++.
Програма матиме можливість створення, додавання та аналізування баз
даних. Занесення нових параметрів, створення нової бази даних та збереження
її у файл для подальшої роботи із нею.
Об’єкт роботи – кластеризація користувачів з урахуванням рішень, які
були прийняті раніше.
Предмет роботи – реалізація методу k-середніх та методу повного зв’язку
для кластерізації користувачів на основі раніше прийнятих ними рішень.
Мета роботи – розробити інформаційну підсистему кластерного аналізу
користувачів на основі раніше прийнятих ними рішень.
Методи дослідження: ієрархічні та неієрархічні методи кластерізації
даних.
Засоби розробки – середовище розробки QtCreator та мова програмування
С++.
За темою дипломної роботи були опубліковані тези на міжнародній
конференції [2], які наведено в додатку Б.
10
11
1 АНАЛІТИЧНИЙ ОГЛЯД ЛІТЕРАТУРИ
1.1 Вивчення об’єкту дослідження
Об’єкт дослідження – це процес або явище, які породжують наукову
проблему й вибрані шляхи до вивчення.
Об’єкт роботи – кластеризація користувачів з урахуванням рішень, які
були прийняті раніше
Існують різні визначення поняття «кластерний аналіз». Наведемо одне з
них, яке дано в виданні «Статистичного словника» 1989 року, яке, на нашу
думку, є актуальним і на сьогоднішній день: «Кластерний аналіз – сукупність
математичних методів, призначених для формування відносно «віддалених»
один від одного груп «близьких» між собою об’єктів за інформацією про
відстані або зв’язках (заходи близькості) між ними. За змістом аналогічний
термінам: автоматична класифікація, розбиття, угруповання, таксономія,
розпізнавання образів без вчителя». Поняття «кластерний аналіз» було вперше
застосовано Робертом Тріона, американським психологом, в 1939 році. У своїй
монографії він в загальних рисах змалював метод кластерного аналізу, і
продовжував роботу над розвитком метод протягом своєї кар’єри. На початку
другої половини 20 століття з’явилися публікації Р. Люїса, Е. Фікса і
Дж. Ходжес, які були присвячені ієрархічним алгоритмам кластерного аналізу.
Помітний поштовх кластерному аналізу дали праці Р. Розенблатта по
розпізнавального пристрою, після чого стала розвиватися теорія «Розпізнавання
образів без вчителя». Стрибок у розвитку кластерного аналізу стався в період
60-70-х років XX-го століття, коли були закладені основи сучасної теорії
кластерних методів. Настільки великий інтерес до цього напрямку аналізу
даних, як вважають дослідники, стався після публікації в 1963 році книги
біологів Роберта Соекла і Пітера Снит «Принципи чисельної таксономії».
12
Головною ідеєю кластерного аналізу, зазначеної в книзі, стало використання
математичних процедур для досліджень і угруповання об’єктів реального світу.
У цей період було розроблено безліч класичних алгоритмів, які успішно
застосовуються в рішенні задач кластеризації і по теперішній час. Наприклад,
відомий алгоритм k-середніх, ідея якого була запропонована в 1956 році
математиком Г. Штейнгаузом, був доопрацьований в 1957 році С. Ллойдом, а
назва була введена в 1967 році Дж. Мак-Кином. Ще один розширений алгоритм
цього методу кластеризації був запропонований в 1965 році Г. Болом і Д. Холом.
Він і на сьогоднішній день залишається популярним і часто використовуваним
ітеративним алгоритмом. Метод k-середніх є прототипом багатьох варіантів
сучасних алгоритмів нечіткої кластеризації, що відрізняються особливостями
роботи.
Ще одним популярним досі ієрархічним методом кластерного аналізу є
метод Варда, запропонований в 1963 році Джо Вардом. Для оцінки відстаней
між кластерами він використовує методи дисперсійного аналізу. Сокал і
Міченел в 1958 році розробили метод середньої зв’язку, позбавлений недоліків
ієрархічних методів одиночної і повної зв’язку. Метод середньої зв’язку широко
знайшов широке застосування в біології, а в недавній час став активно
застосовуватися в соціальних науках.
Т. Сонерсон в 1968 році запропонував метод повних зв’язків, званий
також методом найбільш віддаленого сусіда, який є одним з численних
алгоритмів ієрархічної кластеризації. При роботі цього алгоритму правило
об’єднання вказує, що схожість між претендентами на включення в існуючий
кластер і будь-яким з елементів цього кластера не повинно бути менше деякого
порогового рівня.
Дж. Снит і Р. Сокал в 1973 році винайшли відразу кілька методів,
заснованих на принципах об’єднання і зв’язку: метод невиваженого попарного
середнього і метод зваженого попарного середнього, незважених центроїдного
13
метод і зважений центроїдного метод. Серед вітчизняних вчених, які внесли
помітний вклад у розвиток методів кластерного аналізу, можна назвати
Е.М. Браверман, І.Б. Мучника, А.А. Дорофеюк, які займалися процедурам
послідовного формування кластерів та діагоналізації; Ю.І. Журавльова, який
досліджував
алгебраїчний
підхід
до
вирішення
завдань
класифікації;
Л.А. Растригина, серед робіт якого «Статистичні методи пошуку» (1968) і
«Адаптація складних систем» (1981). Новосибірські вчені Н.Г. Загоруйко,
Г.С. Лобовим і В.Н. Йолкіної були створені алгоритми виявлення емпіричних
закономірностей і проведено безліч інших досліджень.
Вивченню кластерного аналізу присвячені праці вчених І.Д. Мандела,
С.А. Айвазяна, Л. Абалкін, В. Мунтіяна. Їх роботи відображають основи
кластерного аналізу та управління процесами різноманітного рівня і
призначення.
Ближче до кінця 80-х років кількість публікацій по кластерному аналізу
зменшується, але розвиток в цій області тривало. Тільки йшло вже в більш
тісному контакті з тими предметними областями, де методи кластеризації
застосовувалися. Основний напрямок розвитку методів кластеризації в цей
період - розробка уточнень створених раніше алгоритмів і застосування їх для
вирішення більш вузьких, конкретних завдань.
1.2 Аналіз існуючих програмних продуктів
Програмна реалізація алгоритмів кластерного аналізу на сьогоднішній
день різноманітна. Більшість статистичних пакетів надає таку можливість,
проте має один істотний недолік – вони вимагають спеціальних знань для
реалізації розбиття. Але і здійснювати такі операції вручну необґрунтовано
14
складно і довго. Таким чином, виникає необхідність розробки програми, що
реалізує алгоритми кластерного аналізу і надає їх результати в наочному
вигляді, але при цьому Нетреба від користувача спеціальних знань і має
зрозумілий
інтерфейс.
Наприклад,
наявність
у
подібного
програми
веб-інтерфейсу зробить його максимально доступним для користувачів. У
зв’язку з цим реалізація алгоритмів кластерного аналізу для обробки
багатовимірних даних у формі веб-ресурсу є актуальним завданням.
В роботі програми STATISTICA 10 застосовуються унікальні досягнення
64-бітної комп'ютерної технології (в разі її використання), а також паралельні
процеси.
Більшість функцій програми STATISTICA, використовуваних при обробці
даних і виконанні аналізу (класифікації та регресивні дерева, виявлення зв'язків,
загальні лінійні моделі і т.д.), оптимізовані за допомогою багатопотокової
технології. Таким чином, стало можливим їх паралельне використання на
багатоядерних
процесорах
і
досягнення
найвищого
швидкодії
для
багаторозмірний завдань в економіці, бізнесі, медицині.
У STATISTICA реалізовані класичні методи кластерного аналізу,
включаючи методи k-середніх, ієрархічної кластеризації і двухвходового
об'єднання.
Спостереження і змінні можна кластеризувати, використовуючи різні
заходи відстані (евклидово, квадрат евклидова, манхеттеновское, Чебишева та
ін.) І різні правила об'єднання кластерів (одиночна, повна зв'язок, незважене і
зважене попарне середнє по групам і ін.).
Метою роботи було написати програму, яка дозволяє створити
користувачеві базу даних без використання сторонніх програм, тоді як
STATISTICA безпосередньо імпортує файли Office 2007 і 2010. Це значно
заощаджує час та ресурси.
15
1.3 Етапи кластерного аналізу
Всі етапи, необхідні для проведення кластерного аналізу взаємопов’язані.
Від рішень, прийнятих на одному з етапів, залежать результати і дії наступних
етапів аналізу.
У загальному випадку можна виділити наступні етапи кластерного аналізу
[3]:
Етап 1. Підготовка даних і вибір методу кластеризації:
−
ухвалення
рішення
аналітиком
про
використання
даних
спостережень – потрібні всі дані з вибірки або деякі дані є зайвими і їх можна
виключити;
−
вибір метрики і методу стандартизації вихідних даних;
−
визначення
кількості
кластерів
(для
ієрархічних
методів
кластерного аналізу);
−
визначення методу кластеризації.
Етап 2. Аналіз результатів кластеризації. На цьому етапі потрібно
отримати відповіді на наступні питання:
−
отримане розбиття на кластери є не випадковим;
−
отримане розбиття є надійним і стабільним;
−
між результатами кластеризації і змінними, які не брали участі в
процесі кластеризації, існує взаємозв’язок;
−
отримані результати кластеризації мають закономірність і їх можна
пояснити.
Етап 3. Перевірка результатів кластеризації. Для перевірки результатів
кластеризації застосовуються формальні і неформальні методи. Формальні
методи залежать від методу кластеризації, який використовувався для аналізу.
16
Неформальні складаються з наступних дій для перевірки якості кластеризації:
аналізу результатів кластеризації; проведення кластеризації при зміні порядку
спостережень в наборі даних; проведення кластеризації при видаленні деяких
спостережень; проведення кластеризації на невеликих вибірках [3].
Перевірки якості отриманих кластерів можна також провести шляхом
використання декількох методів.
При
порівнянні
результатів
відсутність
схожості
не
означатиме
некоректність результатів, але присутність схожих груп вважається ознакою
того, що кластеризація проведена якісно.
Найкращого критерію якості кластеризації не існує. Різні методи оцінки
можуть дати різні результати.
Очевидно, що для визначення якості кластерів потрібно експерт, який
володіє знаннями в конкретній предметній області, який раціональність
отриманого результату.
Методи кластерного аналізу, як і будь-які інші засоби аналізу, мають деякі
складності, проблеми та обмеження. При проведенні кластерного аналізу слід
враховувати, що результати кластеризації залежать від критеріїв розбиття
сукупності вихідних даних. При зниженні розмірності даних можуть виникнути
певні
спотворення,
за
рахунок узагальнень можуть загубитися деякі
індивідуальні характеристики об’єктів [3].
Перед проведенням кластеризації необхідно оцінити ряд проблем. Існує
наступні складності:
−
складність вибору параметрів об’єктів, на підставі яких проводиться
кластеризація. Їх безпідставний вибір призводить до неналежного розподілу на
кластери і, в підсумку, до неправильного уявлення результату кластеризації;
−
складність вибору методу кластеризації. Для перевірки конкретного
методу в певній предметній області, необхідно застосувати наступну процедуру:
розглядають кілька апріорі різних між собою груп і перемішують їх
17
представників між собою випадковим чином. Далі проводиться кластеризація
для відновлення вихідного розбиття на кластери. Частка збігів об’єктів в
виявлених і вихідних групах є показником ефективності роботи методу;
−
проблема вибору числа кластерів. Якщо немає ніяких відомостей
щодо можливого числа кластерів, необхідно провести ряд експериментів і, в
результаті перебору різного числа кластерів, вибрати оптимальне їх число;
−
проблема інтерпретації результатів кластеризації. Форма кластерів в
більшості випадків визначається вибором методу об’єднання. Однак слід
враховувати, що конкретні методи прагнуть створювати кластери певних форм,
навіть якщо в досліджуваному наборі даних кластерів насправді немає.
Складність кластеризації обумовлена необхідність її оцінки.
1.4 Огляд наукових публікацій з дослідження поведінки пасажирів
транспорту
Серед публікацій 2010-2018 років відносяться до теми застосування
кластерного аналізу до дослідження на пасажирському транспорті, були
розглянуті статті [5-6].
Стаття [5] присвячена виявленню факторів, за якими пасажири оцінюють
сервіс пасажирських перевезень. Авторами для дослідження були виділені
наступні показники якості обслуговування:
−
витрати часу пасажира на поїздку;
−
очікування транспорту;
−
кількість відмов пасажиру в посадці;
−
комфортабельність транспортного пересування;
−
комфорт посадки в транспортний засіб і комфорт поїздки;
18
−
ймовірність відмови в роботі транспортного засобу;
−
вартісної показник (тариф);
−
інформаційний рівень обслуговування.
Аналіз проводився серед респондентів у віковій групі від 20 до 30 років. В
результаті проведених досліджень авторами були виявлені фактори, які є
головними для пасажирів при виборі маршруту.
Такими факторами є «Час поїздки» і «Інтервал руху». Вони мають
найважливіше значення при виборі маршруту, а на фактор «Кількість місць для
сидіння» пасажир звертає свою увагу в останню чергу. Аналіз пасажирів за
статевою ознакою показав, що чоловіки при виборі «при виборі маршруту
враховують кількість місць для сидіння і кількість пересадок, а жінки звертають
увагу на тариф і інтервал руху транспорту». [6]
Автори статті [5] провели експериментальне дослідження ймовірності
вибору пасажиром маршруту слідування. В ході моделювання ймовірності
вибору маршруту слідування, було проведено анкетування 90 респондентів, які
належать різним соціальним групам у віці від 20 до 54 років. Автори прийшли
до висновку, що існує функціональний взаємозв’язок між фактичним часом
очікування пасажиром транспортного засобу на зупинці і можливістю вибору їм
одного з альтернативних маршрутів пересування. Зі збільшенням часу
очікування пасажиром транспортного засобу на зупинці привабливість
маршруту, оцінюється ймовірністю вибору пасажиром саме цього маршруту,
зменшується.
Ще в одній статті [7] розглянуто задачу пошуку методів аналізу
транспортної мережі з метою виявлення оптимального завантаження. В
результаті роботи автори за допомогою кластерного аналізу класифікували
населені пункти з точки зору потреби в транспортних засобах, виявили зони з
великими потокам пасажирів. Автори статті дійшли висновку, що методи
кластерного аналізу дають можливість швидко отримати вихідні дані для
19
прийняття рішень, що поліпшують організацію роботи по транспортному
забезпеченню перевезення пасажирів.
У статті [8] авторами встановлена залежність функціонального стану
пасажира від вибору маршруту слідування: і при наявності альтернативних
варіантах поїздок, пасажир вибирає той маршрут або маршрут, при якому його
кінцеве функціональний стан матиме мінімальне значення [8]. В сучасних
умовах на вибір маршруту слідування впливає соціальний фактор.
У науковій статті [9] розглянута функціональна привабливість маршрутів
слідування з метою прогнозування розподілу пасажирів по ділянках маршрутів
транспорту. Привабливість маршруту залежить від соціально-економічних
показників (тариф, час проїзду). Є і зворотний вплив, а саме «чим більше
привабливість маршруту, тим більше кількість пасажирів оберуть його для
здійснення поїздки. Але, чим більше пасажирів скористається цим маршрутом,
тим менше виявиться його привабливість, наприклад, за рахунок високого
ступеня заповнення салону» [9].
1.5 Постановка задачі
Розробити програму, яка буде відповідати таким вимогами:
−
містити методику обстеження користувачів для кластеризації
пасажирів;
−
повинна включати у себе кластерні методи аналізу k-середніх та
метод повного зв’язку;
−
мати змогу заповнювати анкету користувача;
−
зберігати усі анкети у базі даних;
20
−
виявляти фактори зовнішнього середовища, що впливають на
переваги користувачів міського пасажирського транспорту;
−
експериментально
перевіряти
та
порівнювати
алгоритми
кластеризації на наборах даних, зібраних в результаті анкетування пасажирів;
−
мати змогу функціонального розбиття користувачів на кластери на
основі виявлених переваг.
1.6 Висновки за аналітичним оглядом літератури
Кластерний аналіз дозволяє розглядати досить великий обсяг інформації і
редагувати великі масиви інформації, робити їх більш наочними. Значна
перевага кластерного аналізу в тому, що він дозволяє розбивати об’єкти не по
одному параметру, а по цілому набору ознак. Крім того, кластерний аналіз не
накладає ніяких обмежень на вид розглянутих об’єктів, і дозволяє розглядати
безліч вихідних даних практично довільної природи.
У другому розділі наведені поняття і визначення кластерного аналізу, а
також перераховані основні етапи проведення кластеризації користувачів, які
полягають у наступному: підготовка даних і вибір методу кластеризації; аналіз
результату кластеризації; перевірка результатів кластеризації.
Проведено порівняння різних алгоритмів кластерного аналізу. Відзначено,
що застосування кластерного аналізу, існує низка складнощів і обмежень, а
саме, складність вибору параметрів об’єктів і методу кластеризації; проблема
вибору числа кластерів і інтерпретації результатів, а також необхідність
проведення оцінки результатів кластеризації.
Кластерний аналіз розвивається в тісному взаємозв’язку з іншими
дисциплінами, але, при цьому, багато його алгоритми і методи мають досить
21
загальний характер і вимагають доопрацювання для застосування до
конкретних задач. Таким чином, можна сказати, що кластерний аналіз має
«основу», що складається з математичних алгоритмів і формул, і «Оболонку»,
що включає в себе особливості застосування цих алгоритмів до задач
конкретних областей реального світу.
22
2 ДОСЛІДНИЦЬКИЙ РОЗДІЛ
2.1 Математичне забезпечення
Кластерний аналіз являє собою сукупність різних алгоритмів поділу
об’єктів на групи (кластери), схожі за одним або кількома ознаками. Сучасні
методи кластерного аналізу налічують понад сто різних алгоритмів і
застосовуються в ряді областей науки.
Кластерний аналіз надає можливість вивчати дані, різного роду, так як він
не накладає обмеження на досліджувану предметну область. Кластеризація
застосовується і як окремий інструмент аналізу, і як один з етапів попередньої
обробки даних перед використанням інших аналітичних методів. При
кластерному аналізі вирішується завдання класифікації даних і виявлення
відповідної структури в ній. Кластеризація – один з методів системного аналізу,
який дає можливість вивчати великі обсяги інформації, а також істотно
стиснути великі масиви інформації.
Алгоритми кластеризації використовують елементарні одиниці – об’єкт
кластеризації, описані за допомогою вектора числових характеристик. Набір
об’єктів кластеризації являє собою сукупність або вибірку. Кожен об’єкт
вибірки для кластерного аналізу інтерпретується як точка в заданому просторі
ознак. Значення кожного з ознак служить її координатою.
При вирішенні завдань кластеризації потрібно визначити міру подібності
об’єктів. Цей захід в кластерному аналізі носить назву «функції відстані» і може
розраховуватися як для об’єктів, що мають кількісні характеристики, так для
об’єктів з якісними характеристиками.
Відстань між об’єктами в просторі ознак dij задовольняє наступним
аксіомам:
– dij> 0 (невідємність відстані);
23
– dij = dji (симетрія);
– dij + djk> dik (нерівність трикутника);
– якщо dij не дорівнює 0, то i не дорівнює j (розрізнення нетотожні
об’єктів);
– якщо dij = 0, то i = j (непомітність тотожних об’єктів).
У кластерному аналізі існує понад п’ятдесят різних способів обчислення
відстані між об’єктами простору. Самі найпоширеніші з них Евклідова відстань,
метрики
Мінковського,
відстань
Махаланобіса,
відстань
Чебишева,
Манхеттенський («Хеммінгово») відстань. Наведемо деякі формули розрахунку
відстані між об’єктами простору ознак.
Евклідова відстань обчислюється за формулою:
.
(1.1)
Квадрат Евклідова відстані використовується для додання більших ваг
більш віддаленим один від одного об’єктів.
.
(1.2)
Манхеттенського («хеммінгово») відстань, яку ще називають також і
відстанню
міських
кварталів,
розраховується
як
середнє
різниць
по
координатам. Цей захід відстані найчастіше призводить до результатів,
подібним при використанні евклідова відстані. Для цього відстані вплив
великих відхилень у вибірці менше, ніж при використанні евклідова відстані,
тому що в цьому випадку координати не зводяться в квадрат.
24
.
(1.3)
Відстань Чебишева в основному використовують тоді, коли необхідно
визначити два об’єкти сильно відрізняються об’єкта по одному виміру.
.
(1.4)
У наведених вище формулах прийняті наступні позначення:
dij – відстань між i-им і j-им об’єктами;
k – кількість об’єктів;
l – кількість ознак;
xig – значення i-го ознаки g-го об’єкта;
xjg – значення j-ї ознаки g-го об’єкта.
Кластери мають наступні математичні визначення:
−
центр кластера – це середнє геометричне місце точок у просторі
змінних;
−
радіус кластера – максимальна відстань розташування точок від
центру кластера.
Розмір кластера може бути визначений або по радіусу кластера, або по
середньоквадратичне відхилення об’єктів для цього кластера. Об’єкт належить
певному кластеру, якщо відстань між об’єктом і центром кластера менше
радіуса кластера. Якщо з’являється два або більше об’єктів, для яких ця умова
виконується, то об’єкт називається спірним. В цьому випадку виявляється
перекриття кластерів, ця проблема вирішується експертом або аналітиком.
Можна виділити дві основні ознаки кластера:
25
– внутрішня однорідність: максимальна схожість об’єктів всередині
одного кластера;
– зовнішня ізольованість: мінімальна схожість між об’єктами з різних
кластерів.
Алгоритми кластеризації дозволяють обробляти такі набори даних: тільки
нечислові (категоріальні), тільки числові і змішані.
2.1.1 Метод k-середніх
Метод K-середніх – це метод кластерного аналізу, метою якого є поділ m
спостережень на k кластерів, при цьому кожне спостереження відноситься до
того кластеру, до центу (центроїду) якого воно найближче.
Дія алгоритму таке, що він прагне мінімізувати сумарне квадратичне
відхилення точок кластерів від центрів цих кластерів:
𝑘
2
𝑉 = ∑ ∑ (𝑥 − µ𝑖)
𝑖−1 𝑥∈𝑆𝑖
(1.5)
де k – число кластерів;
Si – отримані кластери, і = 1,2,…,k;
µі – центри мас всіх векторів х з кластеру Si.
Алгоритм розділової кластеризації, заснований на розбитті безлічі
елементів векторного простору на заздалегідь визначену кількість кластерів k.
Метод відноситься до неірархіческім алгоритмам кластеризації. Алгоритм являє
собою ітераційну процедуру:
– вибирається число кластерів k;
– з вихідної безлічі даних випадковим чином вибираються k записів, які
будуть служити початковими центрами кластерів;
26
– для кожного запису вихідної вибірки визначається найближчий до неї
центр кластера. При цьому записи, «притягнуті» певним центром, утворюють
початкові кластери;
– обчислюються центроїди: центри тяжіння кластерів; кожен центр ваги –
це вектор, елементи якого являють собою середні значення ознак, обчислені за
всіма записами кластера. Потім центр кластера зміщується в його центр ваги;
– процес ітерації припиняється, коли границі кластерів не перестануть
змінюватися від ітерації до ітерації, тобто на кожній ітерації в кожному кластері
буде залишатися один і той же набір записів.
Переваги алгоритму k-середніх:
–
простота реалізації;
–
інтуїтивна зрозумілість і прозорість алгоритму;
–
Недоліки алгоритму k-середніх:
–
число кластерів треба знати заздалегідь;
–
залежність результату від ініціалізації центрів кластерів;
–
обчислювальна складність;
2.1.2 Метод повного зв’язку
Початково кожен елемент вибірки вважається окремим кластером. Після
чого кластери послідовно об'єднуються, поки всі елементи не потраплять в один
кластер. На кожному кроці алгоритму об'єднуються два кластери, відстань між
якими мінімальна. Формалізація поняття «мінімальна відстань» може залежати
від модифікацій алгоритму, в методі повного зв'язку мінімальна відстань
визначається як максимум з безлічі відстаней між елементом першого кластера і
27
елементом другого кластера. Тобто, відстань D(X,Y) між кластерами X і Y
обчислюється за формулою:
(1.6)
𝐷(𝑋, 𝑌) = 𝑑(𝑥, 𝑦)
де 𝑑(𝑥, 𝑦) – відстань між 𝑥 ∈ 𝑋, та 𝑦 ∈ 𝑌;
Х та Y – різні кластери.
2.2 Проектування наочної області підсистеми, що розробляється
В
даній
інформаційної
дипломній
системи
роботі
проектується
«Кластерізація
програмний
користувачів
на
засіб
для
основі раніше
прийнятих ними рішень». Ця програма буде створювати кластери за допомогою
двох кластерних аналізів. Вона має бути проста у використанні і повинна
підлаштовуватися під будь яку базу, що створить користувач.
У програмі буде представлена можливість створення, додавання та
аналізування баз даних. Занесення нових параметрів, створення нової бази
даних та збереження її у файл для подальшої роботи із нею. Кластерний аналіз
повинен містити два методи, це: методи k-середніх та метод повного зв’язку.
Перед тим, як почати проектування, треба розробити концептуальну
модель: визначити акторів та самих прецедентів, зв’язків між ними.
Концептуальною моделлю є діаграма варіантів використання (Use Case
Diagram, або діаграма прецедентів). Вона є первісним представленням
програмних систем в процесі проектування та розробки систем [5]. Для даної
програмної реалізації вона представлена на рисунку 2.1.
Як видно на рисунку 2.1, є три актори:
28
– User (користувач): це персона, яка працює з даною програмою. Вона
може вибирати одну з трьох дій: створити нову базу для аналізу, відкрити вже
існуючу базу для додавання нових параметрів або відразу розпочати кластерний
аналіз вже існуючої бази;
– Interface (інтерфейс): це об’єкт, який обробляє запити від користувача,
обробляє параметри та передає у базу даних, потім приймає від неї результат та
показує у зручному для перегляді виді;
– Data Bases (база даних): це файл типу *.bd. Він може буди створений
користувачем та зберігатися у доступному.для користування місці.
Рисунок 2.1 – Діаграма варіантів використання
Користувач завжди буде взаємодіяти з інтерфейсом, в якому він може
створити базу даних для аналізу, потім при необхідності додати нові значення у
цю ж базу даних натиснувши на кнопку «Відкрити базу для заповнення».
29
Якщо користувачу при створення нової бази не сподобається один із
параметрів, він може з легкістю видалити його за допомогою кнопки
«Видалити».
Після створення файлу з базою даних користувач може відразу розпочати
аналіз одно з двох методів кластерного аналізу k-середніх та методу повного
зв’язку, задавши перед цим кількість кластерів для створення
Діаграма прецедентів дозволяє визначати в кожному прецеденті інші
діаграми.
В прецеденті «Створення» визначена діаграма станів (State diagram). Вона
показана на рисунку 2.2.
Рисунок 2.2 – Діаграма станів
30
На даній діаграмі показаний процес пошагового створення файлу бази
даних користувачем. Також показано процес запису та збереження інформації у
файл.
Спочатку користувач заносить усі данні у форму (види груп та параметрі
оцінювання). Якщо користувачу не подобається один із параметрів, він може
його видалити. Після цього він або зберігає базу, та інформація про неї
записується у файл, або відміняє дію, та база автоматично анулюється.
Також користувач має можливість зберегти базу даних повторно змінивши
усього один із параметрів, заданий ним до цього.
31
2.3 Створення логічної та фізичної моделей програмної системи
В даному підрозділі відбувається процес розробки моделі програмної
системи з використанням діаграм UML. Модель складної системи включає дві
підмоделі: логічну та фізичну.
Логічне
проектування
включає тільки ті проектні операції, які
безпосередньо не залежать від наявних технічних і програмних засобів, які
складають середовище функціонування майбутнього програмного продукту.
Метою етапу фізичного проектування є описування конкретної реалізації
бази даних, розміщєнної у зовнішній пам’яті комп’ютера. Це опис структури
збереження даних та ефективних методів доступу до бази даних.
2.3.1 Проектування логічної моделі (статичний погляд)
Спочатку треба запроектувати діаграми класів.
Діаграма класів служить для представлення статичної структури моделі
системи в термінології класів об’єктно-орієнтованого програмування.
Нижче, на рисунку 2.3, наведена діаграма класів DialogDiagram. Вона
призначена для відображення роботи процесу роботи програми (динамічними
моделями).
На даній діаграмі зображуються класи, які працюють з інформацією для
створення нової бази даних та роботи з вже існуючими.
32
Рисунок 2.3 – Діаграма класів DialogDiagram
Перелік елементів:
– User: цей клас представяє об’єкт-сутність користувача. Він відповідає за
усі дії над базою, за створення нового файлу та нових параметрів;
– UserInterface: цей клас представляє об’єкт-управління. Він дозволяє
користувачу вибирати що саме треба для нього: створити ноіий файл для
аналізу, додати щось у файл або відразу розпочати аналіз з уже існуючим
файлом;
– CreateNewDataBase: цей клас представляє граничний об’єкт між
користувачем та базою даних. Він дозволяє користувачу внести загальну
інформацію для аналізу;
– AddNewObject: цей клас також представляє граничний об’єкт мфж
користувачем та базою даних. Він відображається у окремій формі та
відображує параметри у виді списку у контекстному меню. Має такі поля:
унікальна назва таблиці, кількість видів груп, параметри оцінювання;
33
– DataBaseSystem: цей клас представляє граничний об’єкт. Зберігає дані
про параметри та їх характеристики. Має такі поля: унікальна назва таблиці,
кількість видів груп, параметри оцінювання;
– AnalisysDataBase: це граничний клас між інтерфейсом користувача та
рішенням одного з методу аналіза. Відображається у окремій формі. Має
перелік методів кластерного аналізу та вибір кластерів;
– MethodKMeans: цей клас представяє об’єкт-сутність аналізу k-середніх.
Має состав кластерів згідно методу, состав параметричних кластерів та
таблицю вихідних даних;
– MethodFullUnite: цей клас представяє об’єкт-сутність аналізу повного
зв’язку. Має состав кластерів згідно методу, состав параметричних кластерів,
таблицю вихідних даних та список найгірших і найкращіх параметрів.
2.3.2 Проектування логічної моделі (динамічний погляд)
Тепер треба описати динамічну модель. Для її опису використовуються
діаграми UML.
Діаграми взаємодії:
−
діаграма послідовності (Sequence diagram);
−
діаграма кооперації (Collaborate diagram).
Діаграми поведінки:
−
діаграма станів (Statechart diagram);
−
діаграма діяльності (Activity diagram).
Почнемо з діаграм взаємодії. Діаграма послідовності відображає взаємодії
об’єктів впорядкованих за часом. Зокрема, такі діаграма відображають задіяні
об’єкти та послідовність відправлених повідомлень.
34
Діаграма кооперації зображає взаємодії між частинами композитної
структури або ролями кооперації.
Наведена діаграма нижче – це діаграма послідовності «BasicFlow». Вона
відображає процес вибору користувачем необхідної операції (додавання бази
даних, додавання нових параметрів або початок кластерного аналізу).
Діаграма послідовності зображена на рисунку 2.4.
Рисунок 2.4 – Діаграма послідовності «BasicFlow»
Діаграма послідовності «BasicFlow_CreateDB» для процесу створення
подій.
На цій діаграмі зображене що після занесення користувачем необхідної
інформації вміст бази даних та нажаття кнопки збереження, система перевіряє,
чи повна ця інформація, чи є наявність хоча б одної групи видів, чи вказані
параметри аналізу.
Діаграма послідовності зображена на рисунку 2.5.
35
Рисунок 2.5 – Діграма послідовності «BasicFlow_CreateDB»
Діаграма
послідовності
«BasicFlow_AddNewPrmtr»
додавання параметрів у файл. Вона зображена на рисунку 2.6.
для
процесу
36
Рисунок 2.6 – Діграма послідовності «BasicFlow_ChangeEvents»
Діаграма послідовності «BasicFlow_Analisys» для процесу кластерного
аналізу. Вона зображена на рисунку 2.7.
Рисунок 2.7 – Діграма послідовності «BasicFlow_Analisys»
37
Діаграми послідовності і діаграми кооперації можуть мати одну і ту же
інформацію, але перший тип загострює увагу на управлінні, а другий – на
відображенні потоків даних.
Наступна діаграма кооперації «BasicFlow» відображає процес вибору
користувачем необхідної операції. Зображена на рисунку 2.8.
Рисунок 2.8 – Діаграма кооперації «BasicFlow»
Діаграма кооперації «BasicFlow_ CreateDB» для процесу створення подій.
Вона зображена на рисунку 2.9.
Рисунок 2.9 – Діграма кооперації «BasicFlow_ CreateDB»
38
Діаграма кооперації «BasicFlow_AddNewPrmtr» для процесу додавання
значень параметрів для аналізу. Вона зображена на рисунку 2.10.
Рисунок 2.10 – Діграма кооперації «BasicFlow_ AddNewPrmtr»
Діаграма кооперації «BasicFlow_Analisys» для процесу видалення подій.
Вона зображена на рисунку 2.11.
39
Рисунок 2.11 – Діграма кооперації «BasicFlow_ Analisys»
2.3.3 Проектування фізичної моделі
Діаграма компонентів (англ. Component diagram) – елемент мови
моделювання UML, статична структурна діаграма, яка показує розбиття
програмної системи на структурні компоненти та зв’язку (залежності) між
компонентами. Як фізичних компонентів можуть виступати файли, бібліотеки,
модулі, виконувані файли, пакети і т. п.
Для опису фізичної моделі буде використовуватися діаграма компонентів,
яка наведена на рисунку 2.12.
Рисунок 2.12 – Діаграма компонентів програми
На діагарамі компонентів представлені:
40
– компоненти розгортування, які забезпечують безпосереднє виконання
системою її функцій. До них відносяться компоненти: qt5Core.dll, qt5GUI.dll,
qt5Svg.dll, qt5Widgets.dll;
– компоненти робочі продукти. До них відносяться: base.h, base.cpp,
algorithms.h, algorithms.cpp, tablemodel.h, tablemodel.cpp, kmeans.h, kmeans.cpp,
fartest.h, fartest.cpp, newbasedialog.h, newbasedialog.cpp;
– компонент файлу бази даних програми. На діаграмі це компонент під
назвою *.db;
– компоненти інтерфейсу програми зображені під назвою main.ui,
newbasedialog.ui, addnewdialog.ui, analisysdialog.ui;
– компонент виконування, який зображує виокристані модулі. Компонет
під назвою main.exe.
2.4 Висновки за дослідницьким розділом
У другому розділі дипломної роботи було проведено дослідження
предметної області. Виділено основні об’єкти та їх атрибути. Проаналізовано
інформація, що отримується з вхідних документів. Виявлено залежності між
об’єктами предметної області. Побудована логічна та фізична модель
предметної області, що включає всі об’єкти. В логічній моделі були встановлені
зв’язки між об’єктами. Виконана розробка форм для створення файлу бази
даних, додавання нових параметрів аналізу та аналіз даних.
Спроектовані діаграма варіантів використання, діаграма станів створення
файлу з новою базою даних.
Для створення логічної та фізичної моделей програмної системи було
спроектовано діаграми класів процесів програми.
41
Спроектована діаграма компонентів, яка показує розбиття програмної
системи на структурні компоненти та зв’язку (залежності) між компонентами.
42
3 РОЗРАХУНКОВИЙ РОЗДІЛ
3.1 Програмне забезпечення
3.1.1 Системне програмне забезпечення (характеристика і специфікація)
У дипломній роботі розробка інформаційної системи «Кластерізація
користувачів на основі раніше прийнятих ними рішень» здійснюється з
використанням файлів з масивами даних, програмного засобу QtCreator та мови
програмування С++. Програмний продукт дозволяє знаходити закономірності в
наборах даних, автоматизувати багато операцій на підприємствах або установах
завдяки автоматичному аналізу потреб людини.
Дані в інформаційну базу заносяться та редагуються за допомогою
спеціальних форм, які викликаються з головного меню програми. Модуль
збереження показників та факторів у файл формату .bs виконується за
допомогою запитів до файлу бази даних.
3.1.2 Опис програми
На виконання завдання на дипломну роботу була розроблена програма
clustering.exe. Фрагмент коду програми наведено у додатку А. Вона є
крос-платформенною та здатна запускатися на Windows, Linux та MacOS.
3.1.2.1 Функціональне призначення
43
Розроблена в дипломній роботі програма призначена для спрощення
обчислення та аналізу даних, що надає користувач за допомогою створення
нової бази даних та анкетування. Програма виконує наступні функції:
−
управління програмою за допомогою меню головної кнопкової
форми;
−
миттєве створення нової бази даних;
−
додавання нової інформації до вже існуючої БД у формі анкети;
−
формування вихідних документів (файл бази даних);
−
аналіз даних за допомогою методів кластерного аналізу (метод
k-середніх та метод повного зв’язку).
Програма працює в діалоговому режимі, який надає користувачеві
обмежену можливість взаємодіяти з інформацією, що зберігається в БД, в
режимі реального часу, отримуючи при цьому всю необхідну інформацію для
вирішення функціональних завдань.
3.1.2.2 Опис загальної структури програми
Структура розробленої програми включає наступні компоненти:
1)
Головна форма. На ній розташовані наступні кнопки:
а) «Новая база»;
б) «Открыть базу для заполнения»;
в) «Открыть базу для анализа».
2)
Форма створення, яка з’являється після виклику кнопки «Новая
база». На ній розташовані:
поле для вводу назви бази даних;
а) поля для вводу назв видів;
44
б) поле з переліком створених видів;
в) поля для вводу назв параметрів;
г) поле з переліком створених параметрів;
д) кнопка додавання видів;
є) кнопка видалення видів;
ж) кнопка додавання параметрів;
з) кнопка видалення параметрів;
і) кнопка збереження бази даних.
3)
Форма для додавання нових записів у конкретну базу даних
викликається за допомогою кнопки «Открыть базу для заполнения». Вона має:
а) назву бази даних;
б) перелік видів;
в) перелік параметрів;
г) поле для вводу оцінювання кожного із параметрів;
д) кнопка додавання до БД.
4)
Форма аналізу створеної раніше бази даних, яка викликається за
допомогою кнопки «Открыть базу для анализа», має такі компоненти:
а) поле для вибору кількості кластерів;
б) radio button «Метод k-средних»;
в) radio button «Метод полной связи»;
г) кнопка запуску обчислювань.
5)
Форма кластерного аналізу за методом k-середніх містить вихідні
данні та перелік вихідних кластерів.
6)
Форма кластерного аналізу за методом повного зв’язку формується
ще з додаванням кращіх та найгірших параметрів.
7)
Також є форми, які повідомляють користувача, наприклад, що запис
добавлений до бази даних, або форма, яка повідомляє що не може обчислити
дану базу даних.
45
Вибравши необхідну кнопку, користувач переходить до наступної форми,
яка містить певний набір функцій, що відповідає за оформлення програми,
створення та коригування бази даних.
3.1.3 Інструкція користувача
3.1.3.1 Підготовка до роботи
Щоб перевірити працездатність програми необхідно виконати наступні
дії:
–
завантажити програму на операційну систему Windows, Linux чи
MacOS;
–
нічого не вводити при створенні нової бази даних, або ввести такі
параметри, що порушують накладені обмеження (це необхідно для того, щоб
перевірити чи здійснюється контроль вхідних даних);
–
ввести необхідні параметри для виконання запитів і перевірити
правильність результатів;
–
переглянути всі кнопки та форми та перевірити їх справність,
коректність;
–
видалити файл БД та перевірити чи буде запускатися програма.
При успішному завершенні кожної з перерахованих операцій система
готова до роботи.
3.1.3.2 Опис операції
46
Для початку роботи програми необхідно запустити файл «clustering.exe».
Після запуску виводиться головна форма (рис. 3.1).
Рисунок 3.1 – Головна форма
Після цього необхідно вибрати певну дію роботи з програмою.
Щоб створити нову базу даних користувачу потрібно натиснути на кнопку
«Новая база», після чого відриється форма для заповнення. Необхідно буде
ввести назву бази даних, види та параметри видів.
Після введення у поле назви виду потрібно натиснути кнопку «Добавить».
Тоді даний вид буде доданий до переліку, але ще не збережений у файлі. Якщо
при додаванні деякого з видів виникла помилка, даний вид можна видалити за
допомогою спеціальної кнопки «Удалить». Теж саме стосується і параметрів
видів.
Після заповнення усіх параметрів нової бази даних потрібно натиснути
кнопку збереження, після чого вибрати місце на диску або ж будь-якому іншому
носієві та дати назву файлу (бажано щоб назва була англійською мовою, або
англійськими буквами) та зберегти її.
47
Нижче приведена форма створення нової БД (рис. 3.2).
Рисунок 3.2 – Форма заповнення бази даних
Для того, щоб користувачу було простіше у подальшому використанні,
було вирішено створити задачу кластеризації транспортної системи. За види ми
будемо сприймати класифікацію за їх відношенню до соціального статусу,
параметрами будуть виступати показники властивостей, за які пасажири
вибирають транспорт для руху.
Приклад заповненої БД зображений на рисунку 3.3.
48
Рисунок 3.3 – Приклад заповненої бази даних
По завершенню збереження новий файл буде додано на комп’ютер, але
програма продовжить працювати. Завдяки цьому можливо буде редагувати
якийсь з параметрів та сворити новий файл усьго за делька кліків.
Для відкриття БД та заповнення її параметрів для подальшого аналізу
необхідно натиснути кнопку «Открыть базу для заполнения». Після цього
користувачу пропонується заповнити базу даними у вигляді анкетування.
Необхідно вибрати вид, до якого відноситься користувач та оцінити параметри
від 1 до кількості її у базі.
49
Наприклад у вас є вісім параметрів, де 1 – це параметр, який неважливий,
а 8 – найважливіший.
Нижче
наведено
приклад
для
форми
анкетування
з
восьмома
параметрами (рис. 3.4).
Рисунок 3.4 – Форма додавання об’єктів до бази даних
Для додавання до бази потрібно буде натиснути кнопку «Добавить». Після
цього з’явиться повідомлення про те, що запис вдало добавлений до БД.
50
Потрібно просто натиснути кнопку «Ок», або натиснути «×» для закриття
форми.
Кнопка «Завершить» виходить з форми додавання записів до БД та
перериває будь-яку роботу із нею.
Для того, щоб розпочати аналіз, нам необхідна будь-яка база даних, вже
створена раніше. Натиснемо кнопку «Открыть базу для анализа». Виберемо
файл з базою даних, яка зберігається на носії (комп’ютер або влешка) та
відкриємо його у програмі. Після чого перед нами з’явиться форма. Необхідно
наперед знати кількість кластерів на виході. Їх вказують у полі «количество
кластеров». Це можливо зробити за допомогою клавіатури або стрілок на
екрані.
Після того, як користувач вказав необхідну кількість кластерів, можно
вибрати метод кластерного аналізу та натиснути кнопку «Начать». Це розпочне
аналіз існуючої бази.
Форма при цьому не закривається, тому є можливість повенутися до
форми вибору методу (файл залишається той же) та відкрити нову форму, вже з
іншим методом. Це дозволяє користувачеві одразу порівняти два методи між
собою
Форма вибору метода кластерного аналізу приведена на рисунку 3.5.
Рисунок 3.5 – Форма вибору метода кластерного аналізу
51
Обидві форми, які містять результати аналізу, надають користувачеві
інформацію о початкових даних (рис. 3.6) та вихідних кластерах з переліком
видів.
Рисунок 3.6 – Таблиця початкових даних
Аналіз за методом повного зв’язку представлений на рисунку 3.7, а аналіз
методу k-середніх на рисунку 3.8.
52
Рисунок 3.7 – Форма методу повного зв’язку
53
Рисунок 3.8 – Форма методу k-середніх
Продовжуючи об’єднувати пасажирів по заходам відмінності, отримуємо
послідовність об’єднань в кластери за методом повного зв’язку. Побудова
таблиці об’єднань є наступним етапом кластеризації досліджуваної вибірки.
Більш детально таблицю об’єднань забражено на рисунку 3.9.
Рисунок 3.9 – Фрагмент таблиці об’єднань пасажирів в кластери за
методом повного зв’язку
У лівому стовпчику таблиці по вертикалі вказані відстані між складовими
кластерів. По горизонталі таблиці вказані об'єкти об’єднання – пасажири.
54
Далі, у четвертій таблиці, будуть представлені найкращі та найгірщі
значення, щоб користувач мав уявлення про найважливіщі фактори для об’єктів
достідження. Приклад таблиці зображений на рисунку 3.10.
Рисунок 3.10 – Таблиця найкращіх та найгірших значень за методом
повного зв’язку
Проведемо кластеризацию факторів (8 параметрів), що впливають на
прийняття рішення пасажирами по методу k-середніх. Таблиця з вихідними
кластерами предствлена на рисунку 3.11.
55
Рисунок 3.11 – Таблиця кластерізації факторів по методу k-середніх
3.1.3.3 Аварійні ситуації
При виникненні будь-яких аварійних ситуацій на екран виводяться
різного роду повідомлення щодо некоректних дій користувача. Зазвичай у тексті
повідомлення зазначається уточнення помилки. Щоб їх уникнути потрібно
діяти за «Інструкцією користувача». Основні повідомлення представлені в
таблиці 3.1.
Таблиця 3.1 – Обробка аварійних ситуацій
56
Текст повідомлень
Причина
Дії користувача
Недопустимое
Не введено дані в
Натиснути «ОК» і
значение Null
обов’язкові поля
Введенное
значение
Введено значення
не не
соответствует
ввести дані в поле
відповідає
Натиснути «ОК» і
масці ввести дані відповідно з
маске введення
маскою вводу
ввода
Введенное
значение
допустимое
символов
Введено значення,
превышает яке
число допустиму
символів
Натиснути «ОК» і
перевищує ввести дані відповідно
кількість до допустимим числом
символів
Щоб запобігти пошкодження даних БД, необхідно дотримуватися
наступних правил: не видаляти файли програми, не виходити з програми
нештатним чином. Наприклад, не вимикати комп’ютер до закриття програми.
57
3.1.4 Технічне забезпечення
Структура технічних засобів визначається виходячи із можливості їх
забезпечити
виконання
встановлених
операцій
процесу
технічного
обслуговування, можливості інтегрування до існуючих систем, захищеності від
несанкціонованого
доступу,
можливості
здійснення операцій контролю
відповідною особою.
Для правильної роботи даної програми до складу технічних засобів
повинні входити:
1)
2)
3)
персональний комп’ютер наступної конфігурації:
1)
процесор з тактовою частотою не нижче 4000 Гц;
2)
об’єм оперативної пам’яті не менше 1 Гб;
комп’ютерна периферія, до складу якої входить:
1)
системний блок;
2)
монітор;
3)
маніпулятор типу «миша»;
4)
клавіатура;
5)
процессор;
додатково має бути встановлено наступне програмне забезпечення:
операційна система Windows Vista / 7 / 8.1 / 10, Linux, MacOS.
Для методологічного забезпечення в наявності є докладна інструкція
користувача, що описана в п. 3.1.3.
Використання данної програми значно скоротить обчислювання методів
кластерізації. У подальшому програму можливо розвивати, то додавати нові
методи. Також у майбутньому,анкетування буде для інших користувачів, щоб
максимально спростити збір інформації для аналізу.
58
59
3.2 Висновки за розрахунковим розділом
У третьому розділі дипломної роботи представлено:
–
технічні вимоги до програмного забезпечення;
–
схема взаємодії модулів програми;
–
тестування розробленого програмного забезпечення тощо;
–
результати чисельних експериментів.
Розроблена програма clustering.exe є крос-платформенною та здатна запускатися
на Windows, Linux та MacOS.
Програмний продукт дозволяє знаходити закономірності в наборах даних,
автоматизувати багато операцій на підприємствах або установах завдяки
автоматичному аналізу потреб людини.
Дані в інформаційну базу заносяться та редагуються за допомогою спеціальних
форм, які викликаються з головного меню програми. Модуль збереження
показників та факторів у файл формату .bs виконується за допомогою запитів до
файлу бази даних.
Наведений приклад реалізації тестового завдання транспортної системи. За
види було сприйнято класифікацію людей за їх відношенню до соціального
статусу, параметрами виступали показники властивостей, за які пасажири
вибирають транспорт для руху.
60
4 ОХОРОНА ПРАЦІ ТА БЕЗПЕКА В НАДЗВИЧАЙНИХ
СИТУАЦІЯХ
4.1 Оцінка умов в яких проводилась дипломна робота
Дипломна робота проводилася в приміщені з просторовою структурою: 2
стола, 4 стільця, 2 шафи, 2 комп’ютери, 2 принтери, МФУ. Дослідник
знаходиться під впливом небезпечних фізичних факторів:
–
небезпечний рівень напруги в електричному ланцюзі, замикання,
яке може пройти крізь тіло людини;
–
підвищений рівень статичної електрики;
–
підвищений рівень електричних випромінювань;
–
недостатня освітленість робочої зони.
Хімічні фактори: підвищений вміст в повітрі робочої зони пилу, який
викликає алергію, дратує дихальні шляхи; ГДК = 10 мг/м3, клас небезпечності 4.
Психофізіологічні фактори: введення інформації супроводжується появою
монотонності, що призводить до порушень нервової системи.
4.2 Заходи по створенню безпечних та здорових умов праці
Вимоги щодо відстані між бічними поверхнями відеотерміналів і відстані
між тильною поверхнею одного відеотермінала й екраном іншого враховується
при розташуванні робочих місць з відеотерміналами і персональними ЕОМ у
суміжних приміщеннях, з урахуванням конструктивних особливостей стін і
перегородок.
При
розміщенні
устаткування
необхідно
забезпечити
розташування екрана дисплея від очей користувача на відстані не менш 0,5 м,
61
монітор і системний блок як основні джерела електромагнітних полів, повинні
бути максимально відлучені від оператора. В зв’язку з тим, що в приміщенні
розташовані комп`ютери та інша оргтехніка, яка діє за допомогою електричного
струму, потрібно застосувати технічні засоби електробезпеки. У даному
приміщенні використовують захисне заземлення. Для заземлення обрано
трубчасті заземлювачі, які розміщуються по контуру будівлі. Розрахуємо опір
одного вертикального електроду:
,
(4.1)
де ρ – питомий опір ґрунту (суглинок), 300 Ом⋅м;
l – довжина трубчастого електроду, 2,8 м;
d – діаметр трубчастого електроду, 0,03 м;
t – глибина розташування середини електроду від поверхні землі,
розраховується за формулою:
,
(4.2)
де t0 – відстань від верхньої точки заземлювача до поверхні землі, 0,6 м.
Допустимий опір устрою, який заземлюється 4 Ом. Так як Re>Rдоп, знаходимо
потрібну кількість вертикальних електродів. На початку розраховуємо
попередню кількість заземлювачів без урахування сполученої штиби:
62
,
(4.3)
Приймаємо попередню кількість електродів –24. Визначаємо необхідну
кількість вертикальних електродів:
,
(4.4)
де ηе – коефіцієнт використання вертикальних електродів, що враховує
обопільне екранування, 0,47.
Приймаємо кількість електродів – 52 штук.
Знаючи кількість заземлювачів, знайдемо довжину сполученої штиби:
(4.5)
Опір сполучної штиби визначаємо за формулою:
,
де В – ширина сполучної штиби, 0,03 м ;
t0 – відстань від верхньої точки заземлювача до поверхні земля, 0,6 м.
(4.6)
63
Розрахуємо загальний опір для устрою, який заземлюється Rз, який повинен
бути Rз≤Rдоп.
,
(4.7)
де ηш – коефіцієнт використання сполученої штиби, 0,20.
Загальний опір RЗ відповідає умові Rз≤Rдоп, кількість заземлюючих пристроїв
52 розраховано вірно.
Згідно [11] в приміщенні використовується штучне так і природне
освітлення. Відповідно обраному розряду зорових робіт Б-2 встановлюємо
норму освітленості 200 лк. Обираємо світильник типу ЛСП 02В–1×40 для ламп
ЛБ – 40. Розрахунок світильної установки проводимо виходячи із кількості
світильників, необхідних для освітлення приміщення.
,
де N – кількість світильників;
F – світловий потік однієї лампи, 3100 лм;
Emin- мінімальна нормативна освітленість для ІV розряду робіт, 200 лк;
S – площа приміщення, 30 м 2
К – коефіцієнт запасу для ламп розжарювання, 1,5
Z – поправковий коефіцієнт світильника, 1,3;
U – коефіцієнт використання світильної установки, %;
(4.8)
64
Визначаємо коефіцієнт використання світильної установки виходячи з
розрахунку показника приміщення:
,
(4.9)
де a, b – довжина і ширина приміщення, 6 м, 5 м;
H – висота підвісу світильника над робочою поверхнею, 3,6 м;
Стеля і стіни пофарбовані в світлий колір (rп = 70 %, rст = 50 % ), тому
коефіцієнт використання світильної установки дорівнює 38 %.
Встановлюємо 10 світильників типу ЛСП 02В–1×40.
В даному приміщені, згідно з [16], забезпечується як природна так і
штучна вентиляція. Природна вентиляція є неорганізованою, штучна вентиляція
забезпечується системою кондиціювання. Розрахунок потужності охолодження
кондиціонера розраховується за формулою:
Q = Q1 + Q2 + Q3 + Q4 + Q5,
де Q1 – тепло притоки від стін, підлоги і стелі;
Q2 – тепло притоки від джерел освітлення;
Q3 – тепло притоки від людей;
Q4 – тепло притоки від електроприладів;
Q5 – тепло притоки від віконних стекол.
Тепло притоки від стін, підлоги і стелі розраховуємо за формулою:
(4.10)
65
Q1 = S · h · q / 1000,
(4.11)
де S – площа приміщення 30 м2;
h – висота приміщення 3,6 м;
q – коефіцієнт, 35 Вт/м3;
Q1 = 30 · 3,6· 35 / 1000 = 3,78 (кВт)
Тепло притоки від джерел освітлення розраховуємо за формулою:
Q2 = Р · n · k,
(4.12)
де P – потужність одного світильника 40 Вт;
n – кількість світильників 10 шт;
k – коефіцієнт використання (для люмінесцентних ламп k = 0,55).
Q2 = 40 · 10 · 0,55 = 0,22 (кВт)
Тепло притоки від людей розраховуємо за формулою:
Q3 = b · n,
(4.13)
де n – кількість людей в приміщенні, 2;
b – теплота від людини 0,1.
Q3 = 0,1 · 2 = 0,2 (кВт)
Теплові притоки від електроприладів розраховуємо за формулою:
Q4 = N · 0,3
де N – кількість електричних приладів, 7;
Рел – загальна потужність всіх електричних приладів, 0,63 кВт;
k – коефіцієнт перетворення електричної енергії в теплову, 0,3.
(4.14)
66
Q4 = 7 · 0,63 · 0,3 = 1,323 (кВт)
Тепло, яке надходить від віконних стекол розраховуємо за формулою:
Q5 = F · (0,1…0,2),
(4.15)
де F – площа стекол 9 м2;
Q5 = 0,1· 9 =0,9 кВт.
Q = 3,78 + 0,22 + 0,2 + 1,323 + 0,9 = 6,4 (кВт)
Вибираємо три кондиціонери типу LG S24SWС/S24WUС з потужністю
охолодження 6,45 кВт.
4.3 Характеристика приміщення по пожежо- та вибухонебезпечності
В приміщенні знаходяться горючі матеріали в холодному стані (деревина,
папір, картон) – категорія пожежонебезпеки В, клас П-ІІа [13].
Причинами виникнення пожеж можуть бути :
– порушення правил пожежної безпеки робітниками.
– вихід зі строю вузлів автоматичного захисту від коротких замикань в
електрообладнанні;
– знехтування засобами, які попереджують займання від появи статичної
електрики.
4.4 Протипожежні заходи
67
Будинок відноситься до II ступеню вогнестійкості. Мінімальна межа
вогнестійкості протипожежних перепон 0,75 часу. Згідно з [14] евакуаційні
виходи та сходи обладнані протипожежними дверима з межею вогнестійкості 1
година, група загоряння – важко запалюванні. Оздоблення стін та вікон
негорюче. Ширина шляхів евакуації становить 1,5 м, а дверей – 0,8 м. Двері на
шляхах евакуації відчиняються у напрямі виходу із споруди. У кожному відділі
будівлі вивішена таблиця з планом евакуацій у випадку пожежі та прізвищем
відповідального з пожежебезпеки. Первинні засоби гасіння пожеж вогнегасники
типу ВВК-2, на першому поверсі будівлі розташований пожежний щит і ящик з
піском.
68
4.5 Оцінка стану об’єкта в надзвичайних ситуаціях
Розрахуємо надлишковий тиск вибуху балонів на відстані 20 м від
дільниці зварювання, визначимо можливі негативні наслідки вибуху для
обслуговуючого персоналу та ступінь руйнування будівлі. Визначимо енергію
вибуху балонів:
,
(4.16)
де Рі – тиск у балоні при руйнуванні, кисневий 22500 кПа;
Р0 – атмосферний тиск, 101 кПа;
γі – показник адіабати 1,4;
Vі – об’єм балону (кисень) 0,04 м3.
Визначимо тротиловий еквівалент:
,
(4.17)
.
Визначаємо надлишковий тиск у фронті вибухової хвилі для кожного
балону:
69
,
(4.18)
де R – відстань від дільниці зварювання, 20 м;
qі – показник вільного розповсюдження вибухової хвилі.
Розрахуємо показник вільного розповсюдження вибухової хвилі:
qі = 0,5·ТЕі,
(4.19)
qкисень = 0,5·38,95 = 19,48.
Визначимо загальний надлишковий тиск вибуху балонів:
Можливі негативні наслідки вибуху для обслуговуючого персоналу: легке
ураження (забиття, вивихи, тимчасова втрата слуху, загальна контузія); ступінь
руйнування будівель (залізобетонні малоповерхові) слабка; відносні збитки
340000 грн.
70
5 ОРГАНІЗАЦІЙНО-ЕКОНОМІЧНИЙ РОЗДІЛ
5.1 Вартісний аналіз
5.1.1 Розрахунок трудомісткості програмного продукту (інформаційної
системи)
Загальну трудомісткість програмного продукту можна визначити за
формулою:
Тзаг = 𝑁час • 𝑘скл∙ 𝑘м.∙ 𝑘станд∙ 𝑘стандПП
(5.1)
де Тзаг. – загальна трудомісткість, людино*дні;
𝑁час – норма часу, людино–дні (75 людино*днів);
𝑘скл – поправковий коефіцієнт складності контролю вхідної та вихідної
інформації (складає 1,08);
𝑘м. – поправковий коефіцієнт використання мови певного рівня складності
(мова високого рівня дорівнює 1);
𝑘станд. – коефіцієнт використання стандартних програм (приблизно складає
0,7);
𝑘стандПП – коефіцієнт розробки стандартного ПП (1,2 – 1,6).
Норму часу коригують за допомогою коефіцієнта 𝑘стандПП = 0, 6 − 0, 8.
Загальна трудомісткість складає:
Тзаг = 75∙1, 08∙1∙0, 7∙1, 6 = 90, 72 (людино * днів).
71
5.1.2 Розрахунок і калькуляція собівартості продукту (інформаційної
системи)
Фактична або повна собівартість ПП визначається в процесі проведення
калькуляції собівартості та є сумою виробничої собівартості, адміністративних
витрат та витрат на збут.
Виробнича
собівартість розраховується за допомогою визначення
поточних витрат на його розробку (або функціонально–необхідних витрат на
створення програмного продукту –
) і визначається за формулою:
ССвир = СЗПр. + СЕСВ + СМ.ч. + СМ.ч. + СЗ−в.Н. + СМ.
(5.2)
де СЗПр. – заробітна плата розробників ПП, грн;
СЕСВ – відрахування на соціальне страхування, грн;
СМ.ч. – вартість машинного часу, необхідного для розробки та налаштування
ПП, грн;
СЗ−в.Н. – загальновиробничі (накладні) витрати (витрати на оплату праці
управлінського
персоналу,
оплату
службових
відряджень,
консультаційно-інформаційні витрати, ремонт і технічне обслуговування інших
основних фондів, окрім ПК, оренда приміщення тощо);
СМ. – вартість матеріалів, комплектуючих, грн.
Потрібна чисельність працівників, необхідних для розробки ПП (системи,
мережі) визначається згідно з формулою:
72
Тзаг
𝑁 =
Фр.ч•
Трозробн
(5.3)
12
де 𝑁 – необхідна чисельність розробників ПП, людини;
Тзаг – загальна трудомісткість, людино–дні;
Фр.ч – річний фонд робочого часу (трудовим законодавством установлено на
2019 р.: Фр.ч = 250, днів;
Трозробн– запланований строк розробки, місяці.
Таким чином кількість розробників складатиме:
𝑁=
90,72
6
250* 12
= 1 (особа).
До заробітної плати розробників програмного продукту (СЗПр.) належать
витрати на виплату основної та додаткової зарплати виконавців, обчислені
згідно із системою оплати праці, прийнятими в організації, включаючи будь-які
види матеріальних та грошових доплат. Визначається за формулою:
СЗПр. = СЗПосн. + СЗПдод..
(5.4)
Основна заробітна плата розробників ПП визначається за формулою:
СЗПосн. = СЗПден. ∙ Тзаг.,
(5.5)
де СЗПден.– денна зарплата програміста, грн;
Тзаг.– загальна трудомісткість розробки програмного продукту, людино–дні.
Денну заробітну плату визначають, виходячи з місячних окладів:
73
СЗПден. =
СОк. ∙12
Фр.ч.
(5.6)
де СОк. – місячний оклад розробника програмного продукту, грн; (складає
4000грн.)
Фр.ч. – річний фонд робочого часу, днів; (трудовим законодавством
встановлено на 2019 р.: Фр.ч. = 250 днів.
Денна заробітна плата складатиме:
12000•12
250
СЗПден =
= 576, 00 грн.
Основна частина заробітку становитиме:
СЗПосн = 576, 00 • 90, 72 = 52254, 72 грн.
Додаткова
заробітна плата (премії, одноразові заохочення тощо)
розраховується згідно з нормативом, який установлює підприємство і який
складає 10 – 40 % від основної зарплати. Витрати на додаткову заробітну плату
визначаються за формулою:
СЗП
дод.
де 𝑘ЗП
= 𝑘ЗП
дод.
∙ СЗП
– нормативний коефіцієнт додаткової заробітної плати
дод.
𝑘ЗП
= 0, 1 ÷ 0, 4, в даному випадку становить 0,3);
дод.
СЗП – витрати на основну заробітну плату, грн.
дод.
СЗПдод = 0, 3 • 52254, 72 = 15676, 42 грн.
В такому випадку загальна сума становитиме:
СЗПр = 52254, 72 + 15676, 42 = 67931, 14 грн.
(5.7)
(
74
До витрат на сплату єдиного соціального внеску (СЄСВ) належать витрати,
що здійснюються у порядку та розмірах, передбачених чинним законодавством
України (тобто це нарахування від суми основної та додаткової зарплати, які
беруться з підприємства; згідно з нормативами, діючими на 1.01.2012 р., і які
складають 36,76%.
Витрати на сплату єдиного соціального внеску визначаються за
формулою:
(
СЕСВ = 𝑘ЕСВ • СЗП
осн.
+ СЗП
дод.
)
(5.8)
де 𝑘ЕСВ – коефіцієнт витрат на сплату ЄСВ (𝑘ЕСВ = 0, 22);
СЕСВ = 0, 22 • 67931, 14 = 14944, 85 грн.
Вартість машинного часу, необхідного для розробки та налаштування ПП
(СМ.ч) визначається:
СМ.ч = См.−г. ∙ 𝑡м.
(5.9)
де 𝑡м.– тривалість машинного часу (сума часу машинних і машинно–ручних
операцій), необхідного для розробки ПП, грн.
𝑡м. = Ркомп. ∙0, 15 + Тзаг. ∙ Селектроен.;
(5.10)
См.−г.– собівартість однієї машино–години роботи ПК при використанні
власного ПП і величина орендної плати за 1 год роботи ПК за умови, що
машина орендується.
Собівартість однієї машино–години роботи ПК:
75
См.−г. =
Ср.екс.
Теф.
(5.11)
де Ср.екс.– річні експлуатаційні поточні витрати на обслуговування ПК (грн), які
охоплюють:
–
основну та додаткову ЗП спеціаліста (інженера–електронника), який
обслуговує машину з урахуванням його зайнятості на обслуговування ПК, грн;
–
витрати на сплату ЄСВ (СЕСВ = 22, 0 % від фонду оплати праці),
–
амортизаційні відрахування (Ам), які розраховуються із залишкової
грн;
вартості ПК і норми амортизаційних відрахувань (згідно з нормами складає 50
% від балансової вартості ПК, а = 0, 5), грн;
–
витрати на ремонт та профілактику ПК (Срем.), грн;
–
витрати на оплату електроенергії, які визначаються як добуток
тарифу за 1 кВт–г електроенергії на обсяг потужності, що споживається ПК і на
ефективний годинний фонд часу роботи ПК за рік (тариф за 1 кВт–г
електроенергії в листопаді 2019 р.: 3,15 грн.
Основна ЗП інженера–електронника:
СЗпосн.ел. = ( Сок. ∙ 𝑛𝑖)/Тзаг.
(5.12)
де Сок. – місячний оклад інженера–електронника, грн;
𝑛𝑖 – кількість одиниць ПК, що використовуються для розробки ПП.
Срем. = (𝑘рем.∙ Ркомп.) ∙𝑛𝑖
(5.13)
76
де 𝑘рем.– коефіцієнт поточного ремонту та обслуговування ПК (залежить від
арем.);
арем.– середньостатистичний норматив витрат на поточний ремонт і
обслуговування ПК (арем. = 4%);
𝑘рем. = 0, 04;
Ркомп. – ціна ПК, 15000,00 грн;
Теф. – ефективний годинний фонд часу роботи ПК за рік; (визначається,
виходячи з календарного річного фонду часу, зменшеного з урахуванням
вихідних, святкових днів і добового режиму роботи ПК з урахуванням
поточного ремонту), годин:
Теф. = Тр𝑖к ∙(𝑡ном. − 𝑡рем)
(5.14)
де Тр𝑖к– кількість робочих днів за рік,
𝑡ном. – номінальна кількість годин цілодобової роботи обладнання, (
𝑡ном. = 8 год.);
𝑡рем– число годин на добу для поточного ремонту та обслуговування ПК:
𝑡рем = 0, 15 • 8 = 1, 2. Тоді, Теф = 250 • 6, 8 = 1700 годин.
Срем = (0, 04 • 15000) • 1 = 600 грн.
СЗПосн.ел. =
12000•1
90,72
= 132, 28 грн.
Ср.екс = 132, 28 + 29, 10 + 7500 + 600 + 139, 44 = 8400, 82 грн.
См−г =
8400,82
1700
= 4, 94
𝑡рем = 15000 • 0, 15 + 90, 72 • 139, 44 = 14900, 00 грн.
77
См.ч. = 4, 94 • 14900, 00 = 73606, 00 грн.
Експлуатаційні витрати поділяють на виробничі й адміністративні
витрати.
Загальновиробничі (накладні) витрати (СЗ−в.Н): диски, картриджі, папір
для роздрукування тощо.
Ураховуючи, що собівартість ПП визначається в умовах обмеженої
інформації щодо технології розробки, до загальновиробничих витрат можуть
належати також витрати на:
–
освоєння нової розробки;
–
відшкодування
зносу
спеціальних
інструментів
і
пристроїв
цільового призначення;
–
утримання та експлуатацію устаткування.
При такому комплексному складі загальновиробничих витрат їх норматив
досягає 50 – 150 % від основної З/П. Загальновиробничі (накладні) витрати
визначаються за формулою:
СЗ−в.Н. = 𝑘з−в. ∙ СЗП
(5.15)
осн.
де
𝑘з−в.
–
коефіцієнт
загальновиробничих
(накладних)
витрат
(
𝑘з−в. = 0, 5 ÷ 1, 5).
Вартість витратних матеріалів, комплектуючих (См.) рекомендовано взяти
в розмірі 4 % від фонду заробітної плати (𝑘м = 0, 04).
СЗ−в.н = 1, 2 • 52254, 72 = 62705, 66 грн.
См = 67931, 14 • 0, 04 = 2717, 25 грн.
Таким чином,
ССвир = 67931, 14 + 14944, 85 + 73606, 00 + 62705, 66 + 2717, 25 == 22
78
У випадку, якщо розробляється інформаційна система, необхідно
провести окремий розрахунок вартості витратних матеріалів, комплектуючих та
програмного забезпечення, необхідних для функціонування системи. Всі
необхідні матеріали та програмні засоби необхідно звести до таблиць (5.1 та
5.2).
Таблиця 5.1 – Вартість комплектуючих
Назва
Робоча
станція
Принтер
Сума
Кількіст
ь од.
Виробник (модель)
HP PAVILION dv6-3328sr (Core i3
380M 2530 hz/15.6"
/1366x768/072Mb/320Gb/
DVD-RW/Wi-Fi/Win 7 HB)
HP DeskJet F2280
Ціна,
грн/од.
Загальна
ціна, грн
1
15000
15000
1
1280
1280
16280
Таблиця 5.2 – Вартість програмних засобів
Назва
Виробник (модель)
Операційна
система робочих
станцій
Антивірус
Windows XP
Professional
Dr.Web на 12
місяців
Кількість
Ціна, грн.
Загальна
ціна, грн.
1
5 500,00
5 500,00
1
480,00
480,00
Сума
5980,00
Окрім вказаних поточних витрат на розробку ПП, собівартість розробки
та реалізації ПП передбачає визначення:
–
адміністративних
витрат
(організаційні витрати, витрати на
службові відрядження, страхування, амортизацію, опалення, освітлення,
водопостачання, охорону; винагорода за професійні послуги: юридичні,
аудиторські; витрати на зв’язок; витрати за послуги банку);
–
витрат на збут (на рекламу та дослідження ринку: маркетинґ;
витрати на гарантійний ремонт і гарантійне сервісне обслуговування; комісійні
79
витрати; витрати, пов’язані з безпосереднім постачанням: страхування,
амортизація, охорона);
–
повної (фактичної) собівартості (у грошовому виразі індивідуальні
витрати певного розробника ПП у даних умовах).
Повна
собівартість
формується
в
процесі
щоденного
оперативно–технічного та бухгалтерського обліку витрат на розробку ПП,
виконання робіт і забезпечення всіма матеріально–технічними, трудовими
ресурсами.
Адміністративні витрати належать до собівартості ПП пропорційно
основній З/П і складають 100 – 200 % від основної З/П. Адміністративні
витрати визначаються за формулою:
Садм𝑖н. = 𝑘адмін∙ СЗП
осн.
(5.16)
де 𝑘адмін – коефіцієнт адміністративних витрат (𝑘адмін = 1 ÷ 2);
Садмін = 1, 2 • 52254, 72 = 62705, 66 грн.
Витрати на збут складають 2,5 – 5 % від виробничої собівартості. Витрати
на збут визначаються за формулою:
Сзбут = 𝑘збут ∙ СС
вир.
де 𝑘збут – коефіцієнт витрат на збут (𝑘збут = 0, 025÷0, 05).
СС – виробнича собівартість, грн.
вир.
Сзбут = 0, 03 • 221904, 90 = 6657, 15 грн.
(5.17)
80
Перелік і склад статей калькулювання виробничої собівартості ПП
установлюються підприємством. Сума за всіма наведеними вище статтями
становить повну собівартість продукції.
Також потрібно встановити частку кожного елемента витрат (питому вагу)
в загальній сумі собівартості продукції. Питома вага – величина, що чисельно
дорівнює відношенню окремого елемента статті витрат до загальної суми повної
собівартості (у відсотках).
Результати виконаних розрахунків заносять до таблиці 5.3.
№ статті
Стаття витрат
1
2
3
Основна заробітна плата
Додаткова заробітна плата
Витрати на сплату єдиного соціального внеску
Вартість машинного часу, необхідного для розробки
та налаштування ПП
Загальновиробничі (накладні) витрати
Вартість витратних матеріалів, комплектуючих
Виробнича собівартість СС
4
5
6
7
8
9
10
вир.
Адміністративні витрати
Витрати на збут
Повна (фактична) собівартість СС
П
52254,72
15676,42
14944,85
Питома
вага, %
17,94
5,38
5,13
73606,00
25,27
62705,66
2717,25
21,53
0,93
221904,90
76,19
62705,66
6657,15
21,53
2,29
291267,71
100,0
Сума, грн
Таблиця 5.3 – Калькуляція собівартості ПП
5.2 Визначення ціни продукту (інформаційної системи)
5.2.1 Розрахунок договірної ціни продукту (інформаційної системи)
Ціна ПП (Рдог.) формується на основі економічно обґрунтованої
собівартості його розробки, норми рентабельності, прибутку (певного відсотку
торговельної надбавки) та податку на додану вартість (ПДВ):
81
(
)
Рдог. = СС + Рентаб.Н + 𝑚 + ПДВ,
п
(5.18)
або
( (
Рдог. = СС •
1 +
Рентаб.Н +𝑚
100
п
))∙ПДВ,
(5.19)
де СС – собівартість або поточні витрати на розробку ПП (системи, мережі),
п
грн;
Рентаб.Н– нормативний рівень рентабельності, (дорівнює 15 %, коефіцієнт
складає 0,15), грн;
𝑚 – торгівельна надбавка (𝑚 = 7%), грн.
(
Рдог = 291267, 71∙ 1 +
(
15+7
100
)+
20
100
) = 413600, 15 грн.
5.2.2 Розрахунок ціни продукту (інформаційної системи) за методом
лімітних цін
Серед різних методів ціноутворення, на ранніх стадіях проектування,
досить поширеним є метод лімітних цін. При цьому визначається нижня та
верхня межі ціни.
Нижня межа ціни (Рн.м.) захищає інтереси розробника або постачальника
ПП і передбачає, що ціна повинна покрити витрати, пов’язані з розробкою та
реалізацією ПП (системи, мережі), і забезпечити рівень рентабельності не
82
нижчий за той, що має фірма при виробництві вже освоєного ПП. Нижня межа
ціни (Рн.м.) визначається за формулою (5.20):
(
Рн.м. = Ропт. • 1 +
αПДВ
100
)
(5.20)
де Ропт.– оптова ціна фірми, грн;
αПДВ – податок на додану вартість, % (станом на 2019 р. ПДВ = 20 %).
(
Рентаб.Н
Ропт. = СС • 1 +
п.
100
)
(5.21)
де Ропт. – повна собівартість ПП, грн;
Рентаб.Н– нормативний рівень рентабельності, (становить 15 %).
(
= 334957, 87 • (1 +
Ропт. = 291267, 71 * 1 +
15
100
Рн.м.
20
100
) = 334957, 87 (грн.),
) = 401949, 44 (грн).
Верхня межа ціни (Рв.м.) захищає інтереси замовника продукту і
характеризується тією ціною, яку замовник готовий сплатити за продукт з
кращою споживчою якістю.
Верхня межа ціни (Рв.м.) визначається за формулою (5.22):
Рв.м. = РБ • КТ.Р.,
де РБ – ціна базового ПП, грн; 210000,00 грн.
КТ.Р. – рівень якості нового ПП відносно базового.
(5.22)
83
За
наявності
узагальнюючий
кількісної
характеристики
властивостей
об’єкта
показник рівня якості – коефіцієнт технічного рівня
визначається за формулою (5.23):
𝑛
КТ.Р. = ∑ φ𝑖𝑗 × 𝑞𝑖,
(5.23)
𝑖=1
де φ𝑖𝑗 – коефіцієнт вагомості і–го параметра якості j–го варіанта в сукупності
прийнятих для розгляду параметрів якості;
𝑞𝑖– відносний (одиничний) і–й показник якості.
Обов’язкова умова:КТ.Р. > 1.
84
Таблиця 5.4 – Показники якості за параметрами
Параметр
Одиниця
виміру
Умовне
позначення
Абсолютне позначення параметра
кращ середнє гірш досягнуте
е
е
РБ
qi
і
Забезпечення
CD, DVD та
іншими носіями
Бали
Х1
5
4
3
5
1,25
4
Надання
замовнику кодів
Бали
Х2
5
4
3
5
1
5
Бали
Х3
5
4
3
4
0,8
5
Бали
Х4
5
4
3
4
1
4
Бали
Х5
5
4
3
5
1,7
3
Можливість
нарощування
функціональних
характеристик
Наявність
супроводжуючої
інформації
Простота та
зручність
інтерфейсу
Відносні (одиничні) показники якості за будь–яким параметром 𝑞𝑖
визначаються за формулами (5.24) та (5.25):
РНі
𝑞𝑖 =
РБі
(5.24)
або
𝑞𝑖 =
РБі
РНі
,
(5.25)
де РНі, РБі – числові значення і–го параметра відповідно нового та базового
виробів.
Формула (5.24) використовується при розрахунку відносних показників
якості, коли збільшення величини параметра призводить до покращення якості
виробу (наприклад, продуктивність виробу), а формула (5.25) – коли зі
85
збільшенням величини параметра якість виробу погіршується (наприклад, маса,
споживча потужність).
Значення відносного показника якості повинно бути більше одиниці – при
покращенні і–го показника якості та менше одиниці – при його погіршенні.
Розрахунок вагомості (пріоритетності) кожного параметра φ𝑖 проводиться
за наступними формулами:
𝑏𝑖
φі =
𝑛
,
∑ 𝑏𝑖
(5.26)
𝑖=1
𝑛
𝑏𝑖 = ∑ 𝑎𝑖𝑗 ,
(5.27)
𝑗=1
де 𝑏𝑖 – вагомість і–го параметра за результатами оцінок усіх експертів;
визначається як сума коефіцієнтів переваги (𝑎𝑖𝑗) даних усіма експертами за
і–тим параметром.
Відносні оцінки вагомості (φі) розраховують декілька разів, доки
наступне значення буде незначно відрізнятися від попереднього (менше 5 %).
Відносну оцінку, отриману на останній ітерації розрахунків, беруть за
коефіцієнт вагомості (φі) і–го параметра. За абсолютним значенням φі судять
про вагомість (пріоритетність) певного параметра виробу.
Наприкінці розрахунків, маючи коефіцієнти вагомості φі та відносні
показники якості 𝑞𝑖, визначається коефіцієнт технічного рівня (формула 5.23).
Таблиця 5.5 – Оцінка експертів
Номер
параметра
Назва
параметра
Ранг параметра за оцінкою
експерта
1
2
3
4
5
6
Сума
рангів
86
Х1
Х2
Х3
Х4
Х5
Х6
Сума
Забезпечення CD, DVD та іншими
носіями
Надання замовнику кодів
Можливість
нарощування
функціональних характеристик
Наявність якісної супроводжуючої
інформації
Простота та зручність інтерфейсу
Інтерактивний режим роботи
5
2
3
4
1
3
18
4
3
2
1
5
4
19
1
2
4
1
4
3
15
5
2
4
1
3
5
20
4
5
24
3
4
16
1
3
17
5
2
14
3
4
20
4
3
22
20
21
113
87
Таблиця 5.6 – Порівняння оцінок експертів
Параметри
Експерти
1 2 3 4
Підсумкова оцінка
Числове значення
переваги 𝑎𝑖𝑗
5
6
>
<
>
>
<
<
=
1,0
>
=
<
>
<
=
=
1,0
=
=
<
>
<
<
<
0,5
>
<
>
<
<
<
<
0,5
>
>
<
=
>
>
>
1,5
<
>
<
=
>
<
<
0,5
=
=
>
<
>
=
=
1,0
<
=
=
=
>
<
=
1,0
<
<
>
<
>
<
<
0,5
>
<
>
<
=
>
>
1,5
коефіцієнта
Підсумковим оцінкам результатів рангуваня відповідають наступні
числові значення коефіцієнта переваги.
𝑎𝑖𝑗 = {1, 5 при 𝑥𝑖 > 𝑥𝑗 1, 0 при 𝑥𝑖 = 𝑥𝑗 0, 5 при 𝑥𝑖 < 𝑥𝑗
де 𝑥𝑖 та 𝑥𝑗 – параметри, які порівнюються між собою на основі числових даних
𝑎𝑖𝑗.
А𝑖𝑗 = ‖𝑎𝑖𝑗‖
Хі
Х1
Х2
Х3
Х4
Х5
Усього
Х1
Х2
Параметри
Х3
1,0
1,0
1,0
1,5
1,5
1,0
1,0
0,5
1,5
1,0
1,0
1,5
1,0
1,0
1,5
Х4
Х5
0,5
0,5
1,0
1,0
1,5
0,5
1,0
0,5
1,5
1,0
Перша ітерація
φі
Ві
4
5
4
6,5
6,5
26
0,15
0,2
0,15
0,25
0,25
1
88
ВХ1 = 1, 0 + 1, 0 + 1, 0 + 0, 5 + 0, 5 = 4,
ВХ2 = 1, 0 + 1, 0 + 1, 5 + 0, 5 + 1, 0 = 5,
ВХ3 = 1, 0 + 0, 5 + 1, 0 + 1, 0 + 0, 5 = 4,
ВХ4 = 1, 5 + 1, 5 + 1, 0 + 1, 0 + 1, 5 = 6, 5,
ВХ5 = 1, 5 + 1, 0 + 1, 5 + 1, 5 + 1, 0 = 6, 5,
φХ1 =
4
26
= 0, 15, φХ2 =
φХ5 =
6,5
26
5
26
= 0, 2, φХ3 =
4
26
= 0, 15, φХ4 =
6,5
26
= 0, 25,
= 0, 25
КТ.Р. = 0, 15 * 1, 25 + 0, 2 * 1, 0 + 0, 15 * 0, 8 + 0, 25 * 1, 0 + 0, 25 * 1, 7 =
,
Рв.м. = 300000×2, 18 = 654000, 00(грн.).
Договірна ціна Рдог. може бути встановлена за домовленістю між
розробником або постачальником і замовником в інтервалі між нижньою та
верхньою лімітними цінами; Рдог. повинна відповідати наступній умові:
Рн.м. < Рдог. < Рв.м.,
(5.28)
401949, 44 < 413600, 15 < 654000, 00.
5.3 Оцінка конкурентоспроможності продукту (інформаційної системи)
У процесі дослідження виділяються основні технічні та економічні
параметри базового та нового варіантів ПП. Також наводяться додаткові функції
нового ПП.
89
Таблиця 5.7 – Характеристика основних техніко–економічних параметрів
базового та нового варіантів ПП
№
П\П
1.
2.
3.
4
5.
6.
новий
грн
базовий
(аналог)
300000
Характеристика
параметра
нового варіанта
відносно базового
(↑, ↓ чи =)
291267,71
↓
бали
5
5
=
шт.
мбайт
2
4,58
7
1,26
↑
↑
бали
3
4
↑
чол.
2
1
↑
Варіант
Одиниця
виміру
Назва параметру
Вартість ПП
Простота та зручність
інтерфейсу
Кількість функцій ПП
Вага ПП
Можливість нарощування
функціональних
характеристик
Кiлькiсть людей, необхiдних
для обслуговування
Виходячи з отриманих результатів, розробка є кращою відносно базового
варіанта за чотирма наступними параметрами:
–
простота та зручність інтерфейсу;
–
кількість функцій ПП;
–
вага ПП;
–
можливість нарощування функціональних характеристик;
–
кількість людей, необхідних для обслуговування.
–
За наступними параметрами новий варіант продукту поступається
базовому:
–
вартість ПП.
Слід зазначити соціальний ефект запропонованого програмного продукту,
отриманий в результаті появи додаткових функцій та зручності інтерфейсу.
Еталоном є точка багатовимірного простору (вектор), що утворена за
таким правилом: серед показників–стимуляторів (здійснюється позитивний
вплив на конкурентоспроможність) відбираємо дані з максимальним значенням,
а
серед
показників
дестимуляторів
(чинить
негативний
плив
на
90
конкурентоспроможність)
відбираємо
дані
з
мінімальним
значенням.
Визначення еталонного значення наведено в табл. 5.5 (колонки 3, 4).
Інтегральний показник конкурентоспроможності відносно еталона (𝐼КСП)
визначається за формулою
𝑛
𝐼КСП =
𝑞баз.(нов.)𝑖, 𝑞еталон 𝑖 де
∑
𝑖=1
𝑞баз.(нов.)𝑖
(5.29)
𝑞еталон 𝑖
– величини за і–тим параметром відповідно
базового, нового варіанта ПП та еталона.
Результати розрахунків заносимо до таблиці 5.5 (колонки 5, 6).
Проведені розрахунки будуть свідчити про те, що базовий та новий ПП
може переважати еталон за параметрами. Результатом буде одна із наступних
умов: якщо 𝐼КСПбаз
>
𝐼КСПнов, то базовий ПП перевищує новий зразок за
конкурентоспроможністю, якщо 𝐼КСПбаз <
𝐼КСПнов, то поступається йому, а при
, новий ПП знаходиться на одному рівні з базовим.𝐼КСПбаз = 𝐼КСПнов
Таким чином, базовий ПП переважає за еталон параметрами. Тобто новий
ПП є безперечно конкурентоспроможним порівняно з базовим.
Загальна ефективність виробництва нового ПП порівняно з базовим
визначається за формулою (5.21):
Ефзаг. = Еф𝑚𝑖𝑛 + Еф𝑚𝑎𝑥
𝑛
Еф𝑚𝑖𝑛
=
(
∑ 1−
𝑖=1
Рнов.𝑖
Рбаз.𝑖
)
(5.30)
(5.31)
91
де Рнов.𝑖, Рбаз.𝑖 – величини за і–тим параметром відповідно нового та
базового варіанту ПП.
Проте, якщо серед параметрів є такі, для яких максимальне значення є
(
Рнов.𝑖
найбільш ефективним, то рівняння 1 −
Рбаз.𝑖
)
набуває наступного вигляду:
𝑛
Еф𝑚𝑎𝑥 =
∑
(
𝑖=1
Рнов.𝑖
Рбаз.𝑖
)
−1 .
(5.32)
Для розрахунку загальної ефективності визначимо відносне значення
параметрів нового ПП відносно базового (табл. 5.5, колонка 7).
Розраховуємо ефективність окремого параметра нового ПП, результати
розрахунків заносимо до таблиці 3.1 (колонки 8, 9):
1–й параметр: оскільки загальна вартість нового продукту зросла,
програш складає 1 –1, 29 =
− 0, 71.
2–й параметр: інтерфейс змінився, але залишився таким же зручним ті
простим (1 − 1 = 0)
3–й параметр: кількість функцій розробленого ПП вдалося збільшити,
тому виграш складає 3, 5 − 1 = 2, 5.
4–й параметр: за рахунок скорочення ваги розробленого ПП отримали
виграш в розмірі 1 − 0, 26 = 0, 74
5–й параметр: вдалось підвищити можливість нарощення функціональних
характеристик, виграш склав 1, 33 – 1 = 0, 3.
6–й параметр: вдалось зменшити кількість людей, необхідних для
обслуговування і, тому виграш складає 1 – 0, 5 = 0, 5.
92
Таблиця 5.8 – Визначення параметрів конкурентоспроможності ПП та
показника його ефективності
Еталонне
значення
№
п/п
Назва параметра
1
2
1.
2.
3.
4.
6.
8.
Варіант
Р
max або min
3
Вартість ПП
Простота та
зручність
інтерфейсу
Кількість функцій
системи
Вага ПП
Можливість
нарощування
функціональних
характеристик
Кiлькiсть людей,
необхiдних для
обслуговування
УСЬОГО
1−
min
Р
Рнов.𝑖
Р
Рбаз.𝑖
Рет
4
30000
0
5
6
7
8
9
+1
-1,29
1,29
-0,71
max
5
+1
+1
1
0
max
7
-0,29
+1
3,5
2,5
min
1,26
-3,63
+1
0,26
max
4
-0,75
+1
1,33
min
1
-2
+1
0,5
-4,67
3,51
0,74
0,33
0,5
3,36
Відповідно до цього, загальна органнізаційно-економічна ефективність
складе:
Ефзаг =− 0, 71 + 0 + 2, 5 + 0, 74 + 0, 33 + 0, 5 = 3, 36.
Таким
чином,
ефективність
виробництва
нового
(розробленого)
програмного продукту відносно базового (аналогу) складає 3,36 або в
відсотковому виразі: 103,36 %.
5.4
Моделювання
конкурентоспроможності
(інформаційної системи) та його аналогу
розробленого продукту
93
Моделювання оцінки конкурентоспроможності нового виробу (ПП, ІС,
КМ)
базується
на
побудові
номограми
для
порівняння
параметрів
конкурентоспроможності. Відповідно, кожній із восьми осей з використанням
певного масштабу виміру відмічаються точки, що відповідають певним
значенням параметрів, наведені в таблиці 3.1. Лінія, що проходить через них,
утворює багатокутник, таким чином отримуємо номограму для порівняння
параметрів конкурентоспроможності базового та нового варіантів ПП (рис. 5.1).
Рисунок
5.1
–
Гістограма
для
порівняння
конкурентоспроможності базового та нового варіантів ПП
параметрів
94
ВИСНОВКИ
Відповідно
до
завдання
на
дипломну
роботу
була
розроблена
інформаційна підсистема «Кластерізація користувачів на основі раніше
прийнятих ними рішень» для кластерного аналізу.
У ході виконання роботи було проведено дослідження предметної області.
Виділено основні об’єкти та їх атрибути. Проаналізовано інформація, що
отримується з вхідних документів. Виявлено залежності між об’єктами
предметної області. Побудована логічна та фізична модель предметної області,
що включає всі об’єкти. В логічній моделі були встановлені зв’язки між
об’єктами. Виконана розробка форм для створення файлу бази даних, додавання
нових параметрів аналізу та аналіз даних.
Реалізація завдання виконана на основі фреймворку QtCreator та мови
С++. Ім’я файлу програми має назву «clustering.exe». Для програми проведено
тестування та налагодження даних. В результаті чого можна зробити висновок,
що розроблена програма працює правильно.
Таким чином, створена програма дозволяє проаналізувати створені
кластери різними методами кластерного аналізу та виявити найкращі та
найгірщі показники оцінювання.
Програма має здатність створення, додавання та аналізування баз даних.
Занесення нових параметрів, створення нової бази даних та збереження її у
файл для подальшої роботи із нею. Кластерний аналіз містить два методи, це:
методи k-середніх та метод повного зв’язку.
Програма працює в діалоговому режимі, який надає користувачеві
обмежену можливість взаємодіяти з інформацією, що зберігається в БД, в
режимі реального часу, отримуючи при цьому всю необхідну інформацію для
вирішення функціональних завдань.
95
Розроблена програма має зручний користувальницький інтерфейс. Після її
відкриття на екрані з’являється головна форма, в меню якої можна вибрати
пункти для роботи з формами.
Основні характеристики розробленого програмного забезпечення:
–
система дозволяє значно скоротити терміни виконання операцій;
–
програма значно зменшила кількість помилок при введенні
інформації;
–
програма не вимагає від користувача ніяких специфічних знань з
області комп’ютерів;
–
програма, розроблена в дипломній роботі, працює в операційній
системі Windows XP / Vista / 7 / 8.1 / 10, Linux, MacOS.
Розроблена система є прикладом досить простої автоматизованої системи
управління. Дана розробка відрізняється, перш за все, простим та інтуїтивним
інтерфейсом і невисокою вартістю. Ці переваги досягаються за рахунок
використання сучасних методів та інструментів розробки програмного
забезпечення.
Оформлення пояснювальної записки до дипломної роботи виконано
згідно з [10].
96
ПЕРЕЛІК ДЖЕРЕЛ ПОСИЛАНЬ
1.
Дюк.
В.А.
Data
Mining
–
технология
добычи
данных.
Санкт-Петербургський інститут інформатики і автоматизації РАН. 2014. URL
http://bourabai.kz/tpoi/datamining.htm (дата зверення: 28.12.2019).
2.
Мойсак П.Ю., Науменко Н.Ю. Кластерізація користувачів на основі
раніше прийнятих ними рішень. Комп’ютерне моделювання та оптимізація
складних систем (КМОСС-2019): матеріали V Міжнародної науково-технічної
конференції (м. Дніпро, 7-10 листопада 2019 року). Міністерство освіти і науки
України, Державний вищий навчальний заклад «Український державний
хіміко-технологічний університет». Дніпро: ДВНЗ УДХТУ, 2019. C. 131-132.
3.
Чубукова
И.А.
Data
Mining.
Учебное
пособие.
Москва
:
Интернет-Университет Информационных технологий; БИНОМ. Лаборатория
знаний. 2006. 382 с.
4.
Федоров
В.А.
Современные
задачи
и проблемы натурных
обследований пассажиропотоков/ Молодой ученый.Санкт-Петербург, 2015. №2.
С. 333-342. URL https://moluch.ru/archive/82/14935/ (дата зверення: 27.12.2019).
5.
Очеретенко
пассажирами
С.В.
городского
Определение
транспорта/
критерия
Наукова
выбора
стаття.
маршрута
2009.
URL
http://cyberleninka.ru/article/n/opredelenie-kriteriya-vybora-marshruta-passazhiramigorodskogo-transporta (дата зверення: 22.12.2019).
6.
Нефедов Н.А. К определению вероятности выбора пассажиром
маршрута следования / Нефедов Н.А., Альберт Авуа Дж. / Наукова стаття. 2014
URL
https://cyberleninka.ru/article/n/k-opredeleniyu-veroyatnosti-vybora-passazhirom-ma
rshruta-sledovaniya (дата зверення: 22.12.2019).
97
7.
Коваль М. Кластерный анализ пассажиропотоков, инженерия
транспорта и организация перевозок / Коваль М., Маликов В / Збірник статей
15-ой конференції молодих вчених Літви «НАУКА – БУДУЩЕЕ ЛИТВЫ».
2012. Вильнюс. Литва. C. 65–67.
8.
Альберт Авуа Дж. Учет влияния функционального состояния
пассажира при выборе им маршрута следования / Альберт Авуа Дж.,
Очеретенко
С.В.
/
Наукова
стаття.
2014.
С.
82-84.
URL
http://eprints.kname.edu.ua/40048/1/17.pdf (дата зверення: 25.12.2019).
9.
Фейзулаєв. А.Р. Прогнозированиe распределения транспортных
потоков в ptv vision vissim / Фейзулаєв. А.Р., Казаков Л.В. / Наукова стаття. 2017.
Ростов-на-Дону.
URL
https://cyberleninka.ru/article/n/prognozirovanie-raspredeleniya-transportnyh-potoko
v-v-ptv-vision-vissim (дата зверення: 25.12.2019).
10.
Методичні вказівки до організації дипломування, змісту та
структури дипломної роботи за освітнім рівнем «магістр» для студентів
спеціальності 122 Комп’ютерні науки / Укл. Д. Г. Зеленцов, Н. Ю. Науменко,
Л. І. Коротка. – Дніпро: ДВНЗ «УДХТУ», 2020. – 60 с.
11.
ДСТУ-Н Б A 3.2-1:2007 Настанова щодо визначення небезпечних і
шкідливих факторів. Київ : Мінбуд України, 2007. 14 с.
12.
ДСТУ 8604:2015 Дизайн і ергономіка. Робоче місце для виконання
робіт у положенні сидячи. Загальні ергономічні вимоги. [На заміну ГОСТ
12.2.032-78, чинний від 2017-07-01]. Київ : Український науково-дослідний
інститут дизайну та ергономіки НАУ, 2017. 30 с.
13.
НПАОП 0.00-7.15-18 «Вимоги щодо безпеки та захисту здоров’я
працівників під час роботи з екранними пристроями» [Чинний від 14.02.2018 №
207]. Київ : Міністерство юстиції України, 2018. 5 с.
14.
НПАОП
40.1-1.32-01
Правила
будови
електроустановок.
Електрообладнання спеціальних установок [На заміну ДНАОП 0.00-1.32-01,
98
чинний від 2001-06-21]. Київ : Міністерство праці та соціальної політики
України, 2001. 71 с.
15.
ДБН В.2.5–28:2018. Природне і штучне освітлення. [Чинний від
2019-03-01]. Київ: НДІБК, 2019. 76 с.
16.
ДБН В.2.5-67:2013 Опалення, вентиляція та кондиціонування.
[Чинний від 2014-01-01]. Київ : Мінрегіон України, 2013. 147 с.
17.
ДСТУ Б В.1:1-36:2016 Норми визначення категорій приміщень,
будинків та зовнішніх установок за вибухопожежною та пожежно небезпеки
[Текст] - Введ. з 2017-01-01. –Український науково-дослідницький інститут
цивільного захисту УкрНДІЦЗ, 2017. 31 с.
18.
ДБН В.1.1-7:2016 Пожежна безпека об`єктів будівництва. Загальні
вимоги [Чинний від 2016-10-31]. Київ : УкрНДІЦЗ, 2016. 39 с.
19.
Методичні вказівки до виконання організаційно - економічної
частини дипломної роботи (проекту) напряму підготовки для студентів
спеціальності 122 Комп’ютерні науки / Укл. О.В. Білоброва, Н.Ю. Науменко /
Дніпропетровськ: ДВНЗ УДХТУ. 2014. 20 с.
99
ДОДАТОК А
Фрагмент коду програми
Файл main.cpp
#include "startwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
StartWindow w;
w.show();
return a.exec();
}
Файл baseutils.cpp
#include "baseutils.h"
#include <QDebug>
BaseUtils::BaseUtils()
{
}
Base BaseUtils::parse(const QString &raw)
{
Base base;
base.entities.clear();
base.parameters.clear();
QStringList lines = raw.split("\r\n");
int index = 0;
base.name = lines[index++];
index++; // divider
while (true) { // Считаем сущности
QString line = lines[index++];
if (line == "##") break;
Base::Entity e;
e.abbreviation = line.split("=")[0];
e.fullName = line.split("=")[1];
100
base.entities << e;
}
while (true) { // считаем параметры
QString line = lines[index++];
if (line == "##") break;
base.parameters << line;
Продовження додатку А
while (index < lines.size()) {
QString line = lines[index++];
if (line == "") break;
base.parseSampleLine(line);
}
return base;
}
QString BaseUtils::raw(const QString &filename)
{
QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) {
qDebug() << "Err" << file.errorString();
return QString();
}
return file.readAll();
}
Файл baseutils.h
#ifndef BASEPARSER_H
#define BASEPARSER_H
#include <QObject>
#include "models/base.h"
class BaseUtils
{
private:
BaseUtils();
public:
static Base parse(const QString &raw);
static QString raw(const QString &filename);
};
#endif // BASEPARSER_H
101
Файл changemethoddialog.cpp
#include
#include
#include
#include
"changemethoddialog.h"
"ui_changemethoddialog.h"
"windows/kmeans.h"
"windows/farthest.h"
ChangeMethodDialog::ChangeMethodDialog(const Base &base, QWidget *parent) :
QDialog(parent),
ui(new Ui::ChangeMethodDialog)
{
ui->setupUi(this);
this->base = base;}
Продовження додатку А
ChangeMethodDialog::~ChangeMethodDialog()
{
delete ui;
}
void ChangeMethodDialog::on_pushGO_clicked()
{
if (ui->rb_kmeans->isChecked()) {
KMeans dlg(base, ui->sb_clusters->value());
this->close();
dlg.exec();
} else if (ui->rb_farthest->isChecked()) {
Farthest dlg(base, ui->sb_clusters->value());
this->close();
dlg.exec();
}
}
Файл changemethoddialog.h
#ifndef CHANGEMETHODDIALOG_H
#define CHANGEMETHODDIALOG_H
#include <QDialog>
#include "models/base.h"
namespace Ui {
class ChangeMethodDialog;
}
class ChangeMethodDialog : public QDialog
{
Q_OBJECT
public:
explicit
ChangeMethodDialog(const
nullptr);
~ChangeMethodDialog();
private slots:
Base
&base,
QWidget
*parent
=
102
void on_pushGO_clicked();
private:
Ui::ChangeMethodDialog *ui;
Base base;
};
#endif // CHANGEMETHODDIALOG_H
Файл base.cpp
#include "base.h"
Base::Base()
{}
QVector<double> Base::getType(const int &index) const
Продовження додатку А
{
QVector<double> column;
for (auto s : samples)
column << s.ratings[index];
return column;
}
void Base::parseSampleLine(const QString &rawline)
{
auto chunks = rawline.split(" ");
Sample sample;
sample.index = chunks[0].toInt();
for (int i = 0; i < entities.size(); i++) {
QString abbr = chunks[1];
if (abbr == entities[i].abbreviation) {
sample.entity_index = i;
break;
}
}
for (int i = 2; i < chunks.size(); i++)
sample.ratings << chunks[i].toInt();
samples << sample;
}
void Base::addSample(Sample s)
{
s.index = samples.size()+1;
samples << s;
}
QString Base::sampleToString(Sample s)
103
{
QString line;
line += "\r\n";
line += QString::number(s.index);
line += " ";
line += entities[s.entity_index].abbreviation;
line += " ";
for (int i = 0; i < s.ratings.size()-1; i++) {
line += QString::number(s.ratings[i]);
line += " ";
}
line += QString::number(s.ratings.back());
return line;
}
Файл base.h
#ifndef BASE_H
#define BASE_H
Продовження додатку А
#include <QObject>
#include "models/sample.h"
class Base
{
public:
Base();
struct Entity {
QString abbreviation; // Сокращение (студ, служ, тур)
QString fullName; // Полное название (студент, службовець)
};
QString name;
QList<Entity> entities; // Список сущностей (студент, турист и тд)
QList<QString> parameters; // Список параметров (длительность поездки и
тд)
QList<Sample> samples;
QVector<double> getType(const int &index) const;
void parseSampleLine(const QString &rawline);
void addSample(Sample s);
QString sampleToString(Sample s);
};
#endif // BASE_H
Файл kmeans.cpp
#include "kmeansmethod.h"
104
#include <QDebug>
static const double EPS = 0.0001;
static const int MAX_ITER = 20;
KMeansMethod::KMeansMethod(const int &num) : IMethod()
{
this->cl_num = num;
}
Result KMeansMethod::clusteringSamples(const Base &base)
{
Result res;
QVector<Cluster> clusters(cl_num);
QVector<Cluster> prev_clusters(cl_num);
for (int i = 0; i < clusters.size(); i++) {
clusters[i].center = base.samples[i].ratings;
}
int it = 0;
while (it < MAX_ITER) {
for (auto &c : clusters) {
c.sampleIndexes.clear();
}
// наполняем кластеры первый раз
for (int i = 0; i < base.samples.size(); i++) {
Продовження додатку А
int cl_index = 0; double min_dist = 9999999999999.0;
for (int c = 0; c < clusters.size(); c++) {
double dist = Algorithms::dist(clusters[c].center,
base.samples[i].ratings);
if (dist < min_dist) {
cl_index = c; min_dist = dist;
}
}
//
qDebug() << "Element" << i << "to cluster N" <<
cl_index << min_dist;
clusters[cl_index].sampleIndexes << i;
}
// Пересчитаем центры кластеров
for (auto &c : clusters) {
c.recalculateCenter_samples(base);
qDebug() << it << "New Center" << c.center << "elements=" <<
c.sampleIndexes.size();
}
// Проверим на сходимость
if (it++ == 0) {
prev_clusters = clusters;
continue;
} else {
bool gt_eps = false;
for (int c = 0; c < clusters.size(); c++) {
for (int i = 0; i < clusters[c].center.size(); i++)
105
if (abs(clusters[c].center[i]
prev_clusters[c].center[i]) > EPS) {
gt_eps = true;
goto stop_condition_failed;
}
}
if (!gt_eps) goto result;
stop_condition_failed:
prev_clusters = clusters;
}
}
result:
res.clusters = clusters;
return res;
}
Result KMeansMethod::clusteringTypes(const Base &base)
{
Result res;
QVector<Cluster>
clusters(cl_num),
prev_clusters(cl_num);
// раздадим случайно центры кластеров
// Берем просто первые К элементов из базы
for (int i = 0; i < clusters.size(); i++) {
clusters[i].center = base.getType(i);}
ДОДАТОК Б
Копії публікації
-
106
107
Продовження додатку Б
108
Продовження додатку Б
109
Продовження додатку Б
110
Продовження додатку Б
111
ДОДАТОК В
Копія сертифікату Всеукраїнського конкурсу наукових робіт
Download