Главная страница

лот. Пояснювальна записка Другий (магістерський) (рівень вищої освіти)


Скачать 4.57 Mb.
НазваниеПояснювальна записка Другий (магістерський) (рівень вищої освіти)
Дата09.06.2022
Размер4.57 Mb.
Формат файлаdoc
Имя файла2019_M_CITAM_Voskoboynyk_Ye_I.doc
ТипПояснювальна записка
#581771
страница4 из 8
1   2   3   4   5   6   7   8
u; індекс поточного вузла  ; значення поточної ітерації  ; значення лічильника повного проходу по всіх точках l, початкові значення для найкращого варіанту розміщення вузлів  ; краще поточне значення критерію  .

Крок 2. Сформувати початкове розміщення вузлів  , розрахувати значення критерію  .

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

Крок 4. Розрахувати значення критерію (2). Якщо  , присвоїти  ,   та перейти до кроку 5.

Крок 5. Збільшити індекс поточного вузла   Якщо   перейти до кроку 3, інакше перейти до кроку 6.

Крок 6. Якщо   присвоїти  ,  ,   та перейти до кроку 3, інакше перейти до кроку 7.

Крок 7. Якщо  , присвоїти  ,  ,  та перейти до кроку 3, в іншому випадку перейти до кроку 8.

Крок 8. Завершення роботи алгоритму: отримано рішення   з мінімальним з розглянутих значенням витрат   [18].


Рисунок 2.1 – Схема роботи методу покоординатної оптимізації
Алгоритм методу Tabu Search описується, як аналіз матриці найближчих сусідів (рисунок 2.2). Для формування списку найближчих сусідів використовують додаткові технології Для знаходження оптимального варіанту використовується список заборон, у який входять попередні знайдені елементи.


Рисунок 2.2 – Схема роботи методу Tabu Search
Алгоритм роботи методу Tabu Search.

Крок 1. Поставити вихідні дані: множина місць можливого розміщення вузлів; список заборон  ; пошук «найближчих сусідів»; кількість виконаних ітерацій  ; краще поточне значення критерію  .

Крок 2. Сформувати список «найближчих сусідів».

Крок 3. Сформувати початкове рішення  ,  .

Крок 4. Якщо умова зупинки виконана, перейти до кроку 8, в іншому випадку перейти до кроку 5.

Крок 5. Сформувати рішення  на підставі матриці «найближчих сусідів» і списку заборон T.

Крок 6. Якщо  , то   додати елементи T у список заборон.

Крок 7. Збільшити значення лічильника кількості ітерацій   та перейти до кроку 4.

Крок 8. Завершення роботи алгоритму: отримано рішення   з мінімальним значенням витрат   [18].

У процесі виконання завдання в список заборон вноситься вся історія пошуку.

Алгоритм кластеризації методом k-means оснований на мінімізації відхилення точок кластерів від центрів (рисунок 2.3). Кожна точка являється місцем можливого розміщення вузлів. Центр кластеру визначається за формулою.

Алгоритм роботи методу k-means.

Крок 1. Поставити вихідні дані: множина місць можливого розміщення вузлів, кількість кластерів; множина оптимальних місць розміщення вузлів  ; значення поточної ітерації  .

Крок 2.   та згенерувати початкову множина центроїдів  .

Крок 3. Для кожного центроїда обчислити відстані до кожної точки, сформувати кластери.

Крок 4. Обчислити нові центроїди за середнім значенням координат всіх точок кластерів.

Крок 5. Перевірити: якщо  , перейти до кроці 3, в іншому випадку перейти до кроку 6.

Крок 6. Визначити краще рішення   шляхом визначення для кожного кластера точки, найближчої до центроїду.

Крок 7. Закінчення роботи алгоритму: отримано рішення   з мінімальним з розглянутих значенням витрат   [18].


Рисунок 2.3 – Схема роботи методу кластеризації методом k-means

2.4 Висновки 2 розділу
У процесі аналізу сучасного стану проблеми структурно-топологічної оптимізації комп’ютерних мереж роботизованих системи визначено, що до теперішнього часу відсутній її формалізований комплексний опис з урахуванням структурних, топологічних, параметричних особливостей та дане завдання було розглянуте як комплекс завдань, що виникають при необхідності структурних, топологічних або параметричних змін у зв’язку зі змінами характеристик користувачів, збільшенням їх кількості, розширенням множини функціональних завдань, вдосконаленням елементної бази та технологій.

Далі на основі огляду основних витрат на забезпечення завдання структурно-топологічної оптимізації комп’ютерних мереж роботизованих систем обрана математична модель для вирішення даної задачі. Та розглянуті алгоритми вирішення поставленого завдання з використанням методів топологічної оптимізації мереж. Обраний метод кластеризації k-means розглянутий для подальшого використання при розробці програмного засобу.


РОЗДІЛ 3

РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ТА ЕКСПЕРИМЕНТИ

Розробка програмного потребує виконання певних етапів: проведення огляду та аналізу вимог до програмного забезпечення, згідно зі специфікацією. Після чого з допомогою обраної мови програмування проводиться написання коду для коректної роботи програмного засобу. Також необхідним етапом розробки програмного засобу є тестування, а саме: юніт-тестування та інтеграційне тестування [19].

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

У процесі розробки програмного забезпечення основним підходом вважають Agile, який є множиною «гнучких» підходів до розробки програмного забезпечення. Agile передбачає, що при реалізації проекту не потрібно спиратися тільки на заздалегідь створені докладні специфікації. Важливо орієнтуватися на умови зовнішнього і внутрішнього середовища, які постійно змінюються, і враховувати зміни у специфікації. Це заохочує розробників та інженерів експериментувати і шукати нові рішення, не обмежуючи себе жорсткими рамками і стандартами[20].
3.1 Вибір мови програмування
Більшість організацій так чи інакше використовують Java, наприклад, використання у додатках для Android. Незважаючи на активне зростання Kotlin, Java як і раніше залишається основною мовою Android-додатків. Таким чином, всі розробники Java дуже легко можуть стати Android-програмістами. Хоча Android використовує Android SDK замість JDK.

Також використовують Java для створення програмних продуктів, наприклад, Eclipse, OpenOffice, Gmail, Atlassian створені на основі Java. Java – один з найбільш затребуваних мов у фінансовій галузі. Він використовується для створення надійних, швидких і простих веб-сайтів як на стороні сервера, так і на стороні клієнта. Java також використовується для моделювання даних.

Також у список варіацій використання Java входять: касові термінали, оскільки їх створення зазвичай вимагає платформ і великого штату фахівців; торгові системи; програми для роботи з великими даними, бо Java надає доступ до безлічі перевірених бібліотек, інструментів налагодження та моніторингу.

Недосвідченим поглядом складно відрізнити одну мову програмування від іншої, проте час від часу проводяться опитування, у результаті яких стає зрозуміло які мови програмування є найбільш використовуваними. На початку 2000-х вважали, що PHP і Ruby on Rails – це кращі мови для кар’єрного зростання, але сьогодні ситуація змінилася та вивчення цих мов стало не вигідним.

Щоб об’єктивно відобразити нинішню ринкову ситуацію, в якості основи були взяті опитування розробників на Stack Overflow в 2018 році.

У список входять лише імперативними мовами, які являються послідовністю операцій комп’ютера для виконання. Поширений синонім імперативному програмуванню є процедурне програмування.

Згідно з дослідженням Stack Overflow 71,5% розробників вважають JavaScript найпопулярнішою мовою програмування. Процент виріс майже на 20% у порівнянні з 2015 роком, тоді 54,4% розробників дотримувалися такої думки.

Зараз JavaScript використовується скрізь: на стороні клієнта для розробки веб-додатків на основі браузера; за межами браузера за допомогою Node.js lets пишуть серверні додатки, веб-сервіси та експериментувати з машинним навчанням. Важлива перевага JavaScript перед іншими мовами – широка підтримка в індустрії програмного забезпечення з боку таких корпорацій, як Google, Facebook, Microsoft і Amazon. Також великою перевагою можна вважати те, що навчальні матеріали по JavaScript легко знайти, бо існує безліч платних і безкоштовних курсів, веб-сайтів, книг, відео і тематичних блогів.

Далі – Java, її вважають кращою 45,5% розробників. Одна з переваг Java – це віртуальна машина JVM, яка дозволяє запускати будь-яку мову на будь-якій апаратній платформі або пристрої. Java також була розроблена для вирішення завдань, пов’язаних з типами даних і управлінням пам’яттю, що значно спростило життя розробників. На Java пишуть нативні додатки для Android, та з урахуванням того, що частка Android на ринку більше, ніж у конкурентів разом узятих, тому розробники вивчають Java.

Згідно з опитуванням Stack Overflow, Python користується популярністю у 37,9% розробників. Однією з причин популярності Python є те, що в ньому правила оформлення коду простіші, ніж в інших мовах: наприклад, не потрібно ставити крапку з комою в кінці оператора.

За даними опитування Stack Overflow 2018, 35,5% розробників – фанати Microsoft C#. Також C++ є сучасною, об’єктно-орієнтованою версією C. На C++ пишуть додатки, для яких важлива продуктивність. Завдяки високій швидкості роботи C++, його використовують при розробці додатків, які активно використовують графіку: при розробці ігор, графічних движків, а також віртуальної і доповненої реальності.

Також є вузькоспеціалізовані мови, які використовуються в окремих галузях, наприклад Apple Swift спочатку створювалася як нова універсальна мова Apple, заміна Objective-C. На Swift пишуть програми для iOS і Mac.

У веб-розробці використовують також мову PHP. Незважаючи на обмеження і наявність альтернатив, PHP використовується великими веб-ресурсами, наприклад, Facebook і Wikipedia. PHP використовують великі платформи з відкритим вихідним кодом, наприклад, WordPress і MediaWiki. Це поширені платформи, і PHP потрібен, щоб створювати для них плагіни.

У системному програмуванні перспективними мовами є Go від Google і Rust від Mozilla, вони призначені для побудови висококонкурентних систем [21].

Для розробки програмного забезпечення, яке буде вирішувати задачу структурно-топологічної оптимізації буди обрані наступні декларативні та імперативні мови програмування: Java, JavaScript, CSS, MySQL.

Розглянемо більш детально кожну з перерахованих. Java – це мова програмування загального призначення, яка слідує парадигмі об’єктно-орієнтованого програмування і підходу «Написати один раз і використовувати скрізь». Java використовується для десктопних, мережевих, мобільних і корпоративних додатків.

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

  • Java Development Kit – комплект розробника Java. За допомогою JDK і стандартного блокнота можна писати, запускати та компілювати код на Java;

  • Java Runtime Environment – виконуюча система Java, складається з автономної віртуальної машини Java, стандартної бібліотеки Java та інструментів налаштування.

  • Integrated Development Environment – інтегроване середовище розробки, яке допомагає запускати, редагувати і компілювати код. Найпопулярніші з них: IntelliJ IDEA, Eclipse і NetBeans.

Java – це основна мова розробки для Android, також вона використовується в веб-додатках, веб-сайтах і технологіях обробки великих даних, таких як Hadoop і Apache Storm. Java підходить і для наукових проектів. Взагалі перші мобільні ігри на початку 2000-х років були написані на Java.

Індекс TIOBE, один з найавторитетніших індексів популярності програм в світі, при складанні рейтингу використовує результати пошукової видачі. Незважаючи на зростаючу популярність Go і Python, Java залишається на вершині списку вже понад десятиліття.

Мова Java додала у світ програмування такі можливості: гнучкість, тобто завдяки Java, все більше людей почали застосовувати об’єктно-орієнтоване програмування, яке не залежить від платформи та зараз використовується повсюдно; аплети – невеликі веб-програми, які надають інтерактивні елементи для візуалізації та навчання; розробка через тестування. Введення JUnit у 2000 року вважається одним з найбільших досягнень Java, а підхід Java TDD використовується, як стандартний спосіб розробки програмного забезпечення.

Також використання мови програмування Java дає ряд переваг, наприклад, об’єктно-орієнтоване програмування Java включає в себе концепцію, в якій ви визначаєте тип даних і його структуру та набір функцій, що застосовуються до нього, результатом чого є те, що структура даних стає об’єктом, яким можна управляти для створення відносин між різними об’єктами (рисунок 3.1). Так як при підході процедурного програмування потрібно слідувати чітким інструкціям, використовувати змінні і функції.

З використанням ООП ці змінні і функції можна групувати, маркувати їх та посилатися на функції в контексті кожного конкретного об’єкта. Також ООП дозволяє повторно використовувати об’єкти в інших програмах, запобігає помилкам, оскільки об’єкти приховують інформацію, до якої не повинно бути доступу. ООП більш ефективно організовує структуру програм та спрощує обслуговування і модернізацію старого коду.

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

Корпоративні програми – головна перевага Java з 90-х років, коли організації почали шукати надійні інструменти програмування не на C. Java допомагає розробникам створювати будь-які функції, які можуть знадобитися компанії. Java викладають в рамках введення в програмування в більшості шкіл та університетів.

1   2   3   4   5   6   7   8


написать администратору сайта