You are on page 1of 65

1. Загальні положення та основні поняття математичного моделювання.

Класифікація моделей. Властивості та контроль правильності


математичних моделей. δ-функція Дірака та функція Хевісайда.
Елементи теорії похибок. Технологія моделювання.

У промисловій практиці універсальним і загальним є прагнення максимально


можливого наближення до поставленої мети найбільш швидким способом і з найменшими
витратами.
Під математичним моделюванням розуміють вивчення властивостей
об’єкту на математичній моделі. Його метою є визначення оптимальних умов протікання
процесу, управління їм на основі математичної моделі та перенесення результатів на об’єкт.
При цьому математичною моделлю називається приблизний опис деякого явища чи процесу
зовнішнього світу, який наданий за допомогою математичної символіки. Частіше це системи
6
рівнянь, нерівностей, алгоритми та інші математичні структури, що
описують оригінал.
Математичне моделювання поєднує три взаємозв’язаних етапи:
1) складання математичного опису об’єкту, що вивчається;
2) вибір методу рішення системи рівнянь математичного опису та
реалізація його у формі моделюючої програми;
3) встановлення відповідності (адекватності) моделі об’єкту

Математичне моделювання технологічних процесів — процес побудови


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

Залежно від способу реалізації всі моделі можна розділити на два класи.
Фізичні моделі припускають, як правило, реальне втілення тих фізичних
властивостей оригіналу, які цікавлять дослідника. Фізичні моделі спрощені й менші й
називаються макетами. Фізичне моделювання інакше називається макетуванням.
Математичні моделі являють собою формалізовані описи об'єкта або системи за
допомогою деякої абстрактної мови, наприклад у вигляді сукупності математичних
співвідношень або схеми алгоритму. Розрізняють різні виду математичного моделювання:
вербальні (словесні), графічні, табличні, аналітичні й алгоритмічні. Іноді математична
модель описується рівняннями, які випливають із розгляду фізичної сутності явища або
системи, які моделюються. Однак частіше опис об'єктів і систем, які моделюються, носить
чисто формальний характер і базується на тому, що багато явищ природи описуються 9
рівняннями (алгебраїчними, диференціальними й іншими) того самого виду. У цьому
випадку говорять про формальні моделі. Крім того, явища, системи і їхні моделі можуть
бути нестаціонарними й стаціонарними. Нестаціонарні моделі характеризуються
залежністю їхніх параметрів від часу. У стаціонарних моделей такої залежності немає.
Природно, що моделювання нестаціонарних явищ набагато складніше, ніж стаціонарних.
Моделі володіють рядом властивостей, від яких залежить успіх їхнього застосування.
Відзначимо деякі з них, найбільш важливі.
Адекватність – це ступінь відповідності моделі досліджуваному реальному
об'єкту. Вона ніколи не може бути повною. На практиці модель вважають адекватною,
якщо вона із задовільною точністю дозволяє досягти цілей дослідження.
Простота (складність) – також є однією з характеристик моделі. Чим більша
кількість властивостей об'єкта описує модель, тим більш складною вона виявляється. Не
завжди чим складніше модель, тим вище її адекватність. Треба прагнути знайти найбільш
просту модель, що дозволяє досягти необхідних результатів вивчення.
Потенційність (передбачуваність) – здатність моделі дати нові знання про
досліджуваний об'єкт, спрогнозувати його поводження або властивості.

Для контролю правильності отриманої моделі використовується ряд прийомів:


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

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


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

Існують два широких класи технологій моделювання. Перший – імітаційне моделювання –


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

Де́льта-фу́нкция (или δ-функция, δ-функция Дирака, дираковская дельта, единичная


импульсная функция) — обобщённая функция, которая позволяет записать точечное
воздействие, а также пространственную плотность физических величин (масса, заряд,
интенсивность источника тепла, сила и т. п.), сосредоточенных или приложенных в одной
точке.

. Можно ввести производную для δ-функции, которая тоже будет обобщённой функцией, и
интеграл, определяемый как функция Хевисайда.

Фу́нкция Хевиса́йда (едини́чная ступе́нчатая функция, функция едини́чного скачка,


включённая едини́ца, «ступенька») — кусочно-постоянная функция, равная нулю для
отрицательных значений аргумента и единице — для положительных

2. Математичні моделі, що описуються диференціальними рівняннями


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

https://ela.kpi.ua/bitstream/123456789/23550/1/Komp_prakt_Matematychne_model.pdf

Звичайне диференціальне рівняння (ЗДР) – це рівняння виду , , ,..., 0 m F x y y y , (1.1)


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

Загальним розв’язком ЗДР називається функція y x x C C , , ..., 1 m , (1.3) яка з’єднує


незалежну змінну x і m констант інтегрування Ci , тобто розв’язок y x визначається явно.
Для знаходження констант інтегрування Ci задаються додаткові умови, кількість яких
дорівнює порядку ЗДР. У випадку, коли всі додаткові умови задаються в одній точці 0 x ,
сукупність ЗДР і додаткових умов називається задачею Коші, а додаткові умови
початковими умовами. Якщо ж додаткові умови задаються більш ніж в одній точці, то
сукупність ЗДР і додаткових умов називають граничною задачею Коші (або просто
граничною задачею) для ЗДР, а додаткові умови – граничними умовами. Розв’язок задачі
Коші та граничної задачі називається частковим розв’язком ЗДР.

Одним з прикладів застосувань лінійних диференціальних рівнянь першого порядку є


задачі на суміші.
Ще одним прикладом задач, які зводяться до розв’язання лінійного диференціального
рівняння є задачі про коливання температури.
Кількість населення
Варто відмітити, що найпростіші моделі типу прискорення-швидкість також
призводять до лінійних диференціальних рівнянь першого порядку

Розглянемо автономне диференціальне рівняння першого порядку dx f x dt . (1.17)


Розв’язки рівняння f x = 0 грають важливу роль та називаються положеннями рівноваги,
точками рівноваги, стаціонарними точками, точками спокою, нерухомими точками,
особливими точками або критичними точками автономного диференціального рівняння
(1.17). Якщо x = c – точка рівноваги рівняння (1.17), то диференціальне рівняння має
сталий розв’язок x t c . Сталий розв’язок диференціального рівняння іноді називають
рівноважним розв’язком. 19 Точка рівноваги c є стійкою, якщо для будь-якого 0 існує
як завгодно мале 0 , що для довільного розв’язку x x t , початкове значення якого
задовольняє нерівність x t c 0 , (1.18) при всіх 0 t t виконується нерівність x t c .

3. Математичні моделі, що описуються диференціальними рівняннями


вищих порядків. Лінійні диференціальні рівняння вищих порядків.
Механічні коливання.
4. Математичні моделі, що описуються системами диференціальних
рівнянь. Системи диференціальних рівнянь. Задачі, які зводяться до
розв’язання систем диференціальних рівнянь

В багатьох додатках зустрічаються звичайні диференціальні рівняння, що містять дві або


більше невідомих функцій, що залежать від однієї змінної (зазвичай від часу). Такі задачі
природно зводяться до системи звичайних диференціальних рівнянь. З практичної та
теоретичної точки зору важливим є той факт що будьяка нормальна система
диференціальних рівнянь вищого порядку може бути перетворена в еквівалентну систему
рівнянь першого порядку
Задачі, які зводяться до розв’язання систем диференціальних рівнянь Часто складний
процес або систему можна розбити на більш прості підсистеми або частини, які можуть
бути проаналізовані окремо. Іноді трапляється, що кожну окрему підсистему можна
описати одним диференціальним рівнянням, тоді модель всієї фізичної системи може бути
подана системою диференціальних рівнянь. Простим прикладом є система з трьома
каскадами наведена на рис. 4.1.
5. Аналіз систем диференціальних рівнянь та моделей, що описуються
системами диференціальних рівнянь. Лінеаризація нелінійних систем,
аналіз їх фазових портретів та стійкості. Моделі взаємодії популяцій.

Лінеаризація нелінійних систем, аналіз їх фазових портретів та стійкості Найрізноманітніші


природні явища можуть бути змодельовані двомірними автономними системами першого
порядку
Однією з перших спроб у цьому напрямі була праця Колмогорова, написана в 1935 р.
(Колмогоров, 1972). У ній при деяких найзагальніших припущеннях досліджена така
система диференціальних рівнянь:

(6.49)

Така система служить моделлю взаємин типу хижак – жертва між видами при таких
припущеннях:

● 1) хижаки не взаємодіють один з одним, тобто коефіцієнт розмноження


хижаків k2 і кількість жертв L, що винищуються за одиницю часу одним
хижаком, не залежать від у;
● 2) приріст за малі проміжки часу кількості жертв за наявності хижаків
дорівнює приросту за відсутності хижаків мінус кількість жертв, що
винищуються хижаками. Щодо функцій kj(x), k2(x), Цх), що входять в
рівняння, робляться лише вельми загальні природні припущення, що
стосуються якісного характеру їх залежності від х. Передбачається, що ці
функції безперервні і визначені на позитивній півосі х;
● 3) . Це означає, що коефіцієнт розмноження жертв за відсутності
хижаків монотонно спадає із зростанням кількості жертв, що відображає
обмеженість харчових та інших ресурсів;
● 4) . Таке обмеження означає, що із зростанням чисельності
жертв коефіцієнт розмноження хижаків зростає, переходячи від від'ємних
значень (в обстановці, коли нічим харчуватися) до додатних;
● 5) кількість жертв, що винищуються одним хижаком за одиницю часу L(х) > 0
при N >0; L(0) = O.
Розглянемо характер фазових траєкторій, можливих у системі (5.26), і стаціонарні
стани цієї системи. Для цього знайдемо особливі точки системи у додатному квадраті
фазової площини. Можна показати, що їх дві або три: перша точка (0,0), друга точка
(А, О), де А визначається із рівняння k| (А) = 0. Третя точка (В, С), де В, C
визначаються із рівнянь ).

Остання точка поміщається у додатному квадранті і відмінна від іншої лише у разі
, тобто А > В.

Дослідження характеру особливих точок методом лінеаризації Ляпунова показує, що


особлива точка на початку координат (0, 0) завжди є сідлом. Точка (А, 0) є сідлом,
якщо В < Л, і стійким вузлом, якщо В > А. При такому співвідношенні параметрів усі
фазові траєкторії сходяться в цій особливій точці.

У околі точки (В, С) при В <А отримуємо лінеаризовані рівняння:

Тут

Особлива точка є фокусом або вузлом, стійкість яких залежить від знака о: якщо о > 0,
точка стійка, якщо о < 0, особлива точка нестійка і навколо неї можуть існувати
граничні никли – стійкі періодичні коливальні рішення. Можливі види фазових
портретів системи рівнянь, наведені на рис. 6.11 а, б, в, г. Як ми бачимо, залежно від
значень параметрів поведінка змінних може мати істотно різний характер. Зокрема, у
випадку б має місце граничний цикл, що відображає стійкі коливання чисельності
популяцій.

t
Рисунок 6.11 – Фазова картина системи, що описує взаємодію двох видів прирізних
співвідношеннях параметрів (Колмогоров, 1972)

Ще одна узагальнена модель взаємин хижак – жертва, що широко обговорювалася в


літературі, належить Розенцвейга і Мак-Артура (Rosenzweig1 Мас Arthur, 1963). У ній
розглядається система рівнянь:

(6.50)

де f(x) – швидкість зміни чисельності жертв X за відсутності хижаків у; Ф(х, у) –


інтенсивність хижацтва; k – ефективність перетворення жертви у хижака; е –
смертність хижака. Модель (6.50) зводиться до моделі, що є однією з окремих
випадків моделі Колмогорова при таких припущеннях:

● 1) чисельність хижака обмежується лише чисельністю жертви;


● 2) швидкість, з якою дана особина хижака поїдає жертву, залежить лише від
щільності популяції жертв і не залежить від густини хижаків.

Тоді рівняння (6.50) набувають вигляду:

(6.51)
6. Комбінаторна оптимізація. Обчислювальна складність. Підходи до
розв’язання.

Комбинаторная оптимизация — область теории оптимизации в прикладной математике,


связанная с исследованием операций, теорией алгоритмов и теорией вычислительной
сложности. Комбинаторная оптимизация заключается в поиске оптимального объекта в
конечном множестве объектов[1], чем очень похожа на дискретное программирование.
Некоторые источники [2] под дискретным программированием понимают целочисленное
программирование, противопоставляя ему комбинаторную оптимизацию, имеющую дело
с графами, матроидами и похожими структурами. Однако оба термина очень близко
связаны и в литературе часто переплетаются. Комбинаторная оптимизация часто
сводится к определению эффективного распределения ресурсов, используемых для
поиска оптимального решения.

Во многих задачах комбинаторной оптимизации полный перебор нереален.


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

7. Алгоритми з заборонами. Загальна ідея побудови алгоритмів з


заборонами. Алгоритм з заборонами для розв’язання задачі
розфарбування графа. Алгоритм з заборонами для розв’язання задачі
комівояжера. Алгоритм з заборонами для розв’язання квадратичної
задачі про призначення.

Алгоритм із заборонами [2] отримав свою назву через те, що з метою уникнення
локальних екстремумів і запобігання зациклюванню він використовує спеціальний список,
у якому зберігаються трансформації поточного роз’вязку, виконані останніми. Ці
трансформації протягом певного часу є «забороненими», тобто не можуть
використовуватися в процесі пошуку роз’вязку.
Розфарбування
Алгоритм полягає у виконанні таких кроків. 1. Пошук вершини з максимальною кількістю
конфліктів. 2. Вибір комбінації з вершини та кольору для перефарбування, що
максимально зменшує загальну кількість конфліктів. 2.1 Якщо отримана загальна кількість
конфліктів менша ніж поточна, результат, отриманий на даному кроці, зберігається як
найкращий. 2.2 Якщо така комбінація не знайдена, виконується пошук комбінацій з вершин
і кольорів серед «заборонених». 2.2.1 Якщо така комбінація не знайдена, це означає, що
досягнутий локальний екстремум, тому виконується перезапуск алгоритму, який полягає в
перефарбуванні випадкової вершини у випадковий колір. 3. Якщо не виконано умови
завершення алгоритму, тобто загальна кількість конфліктів більша за нуль і не
перевищено максимальну кількість ітерацій, повторюються пп. 1-3. Кожна з прийнятих
комбінацій заноситься на певний час у «список заборонених».
Зада́ча комівояже́ра
Табу-пошук може бути використаний для пошуку задовільного рішення для задачі
комівояжера (тобто, рішення, яке задовольняє критерію адекватності, а не абсолютно
оптимальне рішення). По-перше, пошук із заборонами починається з початкового рішення, яке
може бути згенероване випадково, або за допомогою якогось алгоритму найближчого сусіда.
Для створення нового рішення, два міста, які відвідують в потенційному рішення, змінюються
місцями. Загальна відстань подорожі між усіма містами використовується для оцінки
ідеального рішення, в порівнянні з іншим. Для запобігання циклів і, щоб не застрягти в
локальних оптимумах, рішення буде додано до списку табу, якщо воно буде задовольняти
рішення в околиці.
Нові рішення продовжують створюватися до появи деяких стоп-критеріїв, таких як довільне
число ітерацій. Коли табу-пошук припиняється, повертається краще рішенням — рішення з
найкоротшою відстанню, під час відвідування всіх міст.

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

8. Мурашині алгоритми. Загальна ідея побудови мурашиних алгоритмів.


Варіанти побудови мурашиних алгоритмів: AS, EAS, MMAX, ASrank.
Мурашиний алгоритм для розв’язання задачі знаходження
найкоротшого шляху між двома вершинами графа. Мурашиний
алгоритм для розв’язання задачі квадратичних призначень. Мурашиний
алгоритм для розв’язання задачі розфарбування графа. Мурашиний
алгоритм для розв’язання задачі комівояжера.

Ant System (AS)

Просто муравьи

MMAS (Max-Min муравьиная система)


Добавляются граничные условия на количество феромонов (τmin,τmax). Феромоны
откладываются только на глобально лучших или лучших в итерации путях. Все рёбра
инициализируются значением τmax.

Ранговая муравьиная система (ASrank)


Все решения ранжируются по степени их пригодности. Количество откладываемых
феромонов для каждого решения взвешено так, что более подходящие решения получают
больше феромонов, чем менее подходящие.

EAS Элитарная муравьиная система


Из общего числа муравьёв выделяются так называемые «элитные муравьи». По
результатам каждой итерации алгоритма производится усиление лучших маршрутов
путём прохода по данным маршрутам элитных муравьёв и, таким образом, увеличение
количества феромонов на данных маршрутах. В такой системе количество элитных
муравьёв является дополнительным параметром, требующим определения. Так, для
слишком большого числа элитных муравьёв алгоритм может «застрять» на локальных
экстремумах.

9. Алгоритми кластерізації. Задача кластерізації. Типи кластерізації.


Алгоритм K-means. Алгоритм Fuzzy C-means. Алгоритм кластерізації
множини відповідно до заданного критерію.

Кластерний аналіз — задача розбиття заданої вибірки об'єктів (ситуацій) на підмножини,


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

Оскільки поняття «кластеру» не може бути точно визначено, то це є однією з причин чому
існує так багато різних методів кластеризації[4]. Але є і спільна риса — це об'єднання
схожих об'єктів у групи. Однак, різні дослідники використовують різні моделі кластерів і
для кожної з цих моделей можуть бути застосовані різні алгоритми. Поняття кластера, які
отримуються у різних алгоритмах, різняться властивостями. Розуміння цих «кластерних
моделей» є ключовим для розуміння відмінностей між різними алгоритмами. Типовими
кластерними моделями є:

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


основі відстані між вузлами.
Центроїдні моделі. Наприклад, метод K-середніх (K-means) представляє кожен кластер
єдиним усередненим вектором.
Статистичні моделі. Кластери будуються ґрунтуючись на статистичних розподілах. Таких
як багатовимірний нормальний розподіл з допомогою ЕМ-алгоритму.
Моделі засновані на щільності. Наприклад, в DBSCAN і в OPTICS кластери визначаються
як зв'язані області відповідної щільності у просторі даних.
Групові моделі. Деякі алгоритми не забезпечують вдосконалену модель для своїх
результатів, а просто описують групування об'єктів.
Графові моделі. Поняття кліки (така підмножина вершин, в якій кожна пара вершин
з'єднана ребром) у графі слугує прототипом кластеру. Пом'якшення вимоги до повної
зв'язності (тобто, частина ребер може бути відсутня) призводить до поняття відомого як
квазі-кліка. Вони будуються алгоритмом HCS[en].
Нейронні моделі. Найбільш відомою моделлю нейронної мережі з навчанням без учителя є
нейронна мережа Кохонена. Ці моделі, як правило, можна охарактеризувати як схожі на
одну або подібні якійсь з наведених вище моделей, включаючи моделі у підпросторах,
коли нейронні мережі реалізують метод головних компонент або аналіз незалежних
компонент[en].
«Кластеризацією» зазвичай вважають такий набір кластерів, які містять усі об'єкти набору
даних. Додатково, можна розглянути відношення між кластерами. Наприклад, ієрархію
вкладеності кластерів один у одного. Грубо можна виділити такі кластеризації:

Жорстка кластеризація. Кожен об'єкт або належить кластеру або ні.


М'яка кластеризація (також нечітка кластеризація). Кожен об'єкт належить кожному
кластеру до певної міри. Наприклад, це ймовірність належності кластеру.
Серед них виділяють декілька доладних:

Жорстке розбиття на кластери. Кожен об'єкт належить рівно одному кластеру.


Жорстке розбиття на кластери з викидами. Об'єкт може не належати жодному кластеру і
розглядається як викид.
Кластери з перетином. Об'єкт може належати більш ніж одному кластеру.
Ієрархічна кластеризація. Якщо об'єкт належить нащадку, то він також належить і предку.
Підпросторова кластеризація. Хоч кластери і можуть перетинатись, проте в межах
визначеного підпростору кластери не перетинаються. Для прикладу дивись SUBCLU[en].
10. Штучні нейронні мережі. Штучний нейрон. Класифікація штучних
нейронних мереж. Одно- й багатошаровий перцептрон. Алгоритм
навчання. Мережа зворотнього поширення (Back Propagation). Алгоритм
навчання. Мережа зустрічного поширення (Counter Propagation). Алгоритм навчання.
Карта Кохонена. Алгоритм навчання. Мережа
Хопфилда. Алгоритм навчання. Двоскерована асоціативна пам'ять.
Шту́чні нейро́нні мере́жі (ШНМ, англ. artificial neural networks, ANN), або конективістські
системи (англ. connectionist systems) — це обчислювальні системи, натхнені біологічними
нейронними мережами, що складають мозок тварин. Такі системи навчаються задач
(поступально покращують свою продуктивність на них), розглядаючи приклади, загалом
без спеціального програмування під задачу.

ШНМ ґрунтується на сукупності з'єднаних вузлів, що називають штучними нейронами


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

Штучний нейрон (Математичний нейрон Маккалоха — Піттса[en], Формальний нейрон[1])


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

S - Вход
А - скрытый
R - выход

Однослойная нейронная сеть (англ. Single-layer neural network) — сеть, в которой сигналы
от входного слоя сразу подаются на выходной слой, который и преобразует сигнал и сразу
же выдает ответ.

Многослойный перцептрон Розенблатта — перцептрон с дополнительными слоями А —


элементов, расположенными между S и R элементами

Бекпропагейшн

Основная идея этого метода состоит в распространении сигналов ошибки от выходов сети
к её входам, в направлении, обратном прямому распространению сигналов в обычном
режиме работы. Барцев и Охонин предложили сразу общий метод («принцип
двойственности»), приложимый к более широкому классу систем, включая системы с
запаздыванием, распределённые системы, и т. П.

Для возможности применения метода обратного распространения ошибки передаточная


функция нейронов должна быть дифференцируема. Метод является модификацией
классического метода градиентного спуска.
Градиентный спуск — метод нахождения локального экстремума (минимума или
максимума) функции с помощью движения вдоль градиента. Для минимизации функции в
направлении градиента используются методы одномерной оптимизации, например, метод
золотого сечения. Также можно искать не наилучшую точку в направлении градиента, а
какую-либо лучше текущей.

Контрпропагейшн

На відміну від багатошарових персептронів, мережі зустрічного поширення (МЗП)


призначені для початкового швидкого моделювання. Автор МЗП Роберт
Хехт-Нільсен вдало об'єднав в одній архітектурі переваги здатності до
узагальнення мережі Тейво Кохонена і простоту навчання вихідної зірки Стефана
Гроссберга, внаслідок чого мережа МЗП отримала властивості, яких немає у
жодної з них окремо. Насамперед МЗП здатна до узагальнення і використовується
для розпізнавання та відновлення образів, а також підсилення сигналів.

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


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

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


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

Це дозволяє ефективно використовувати дану мережу для розпізнавання і відновлення


образів, а також для посилення сигналів.

Шар Кохонена. В своїй найпростішій формі шар Кохонена функціонує за правилом


«переможець одержує все». Для даного вхідного вектора один і лише один нейрон
Кохонена видає логічну одиницю, всі інші видають нуль.

Шар Гроссберга. Шар Гроссберга функціонує в схожій манері. Його вихід є зваженою
сумою виходів шару Кохонена (тобто він є шаром нейронів з лінійними активаційними
функціями).
Якщо шар Кохонена функціонує таким чином, що лише один вихід рівний одиниці, а інші
рівні нулю, то кожний нейрон шару Гроссберга видає величину ваги, яка зв'язує цей
нейрон з єдиним нейроном Кохонена, чий вихід відмінний від нуля.

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

Шар Кохонена навчається без вчителя (самонавчається). У результаті навчання шар


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

При навчанні шару Кохонена на вхід подається вхідний вектор і обчислюються його
скалярні добутки з векторами вагів всіх нейронів. Скалярний добуток є мірою схожості між
вхідним вектором і вектором вагів. Нейрон з максимальним значенням скалярного добутку
оголошується «переможцем» і його вага підстроюється (ваговий вектор наближається до
вхідного).

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

Величина корекції ваги пропорційна різниці між вагою і необхідним виходом нейрона
Гроссберга.

Навчання шару Гроссберга – це навчання з вчителем, алгоритм використовує задані


бажані виходи.

У повній моделі мережі зустрічного розповсюдження є можливість одержувати вихідні


сигнали по вхідних і навпаки. Цим двом діям відповідають пряме і зворотне
розповсюдження сигналів.

Самоорганізаційна карта Кохонена (англ. Self-organizing map — SOM) — нейронна


мережа з некерованим навчанням, яка використовується для конструювання
багатовимірного простору в простір з нижчою розмірністю (найчастіше, двовимірний).
Створює дискретне представлення вхідних просторів навчальних вибірок, які називаються
картою (англ. map), і тому використання цього типу нейронної мережі є методом для
зниження розмірності.
Метою навчання самоорганізаційної карти — змусити різні частини мережі давати
однакову відповідь на певні вхідні шаблони. Це частково мотивується тим, як візуальна,
слухова або інша сенсорна інформація обробляється в окремих частинах кори головного
мозку людини.
Ваги нейронів ініціалізуються або малими випадковими значеннями, або рівномірно
відбираються з підпростору, охопленого двома найбільшими власними векторами
головних компонентів. В останньому варіанті навчання відбувається набагато швидше,
оскільки початкові ваги вже дають гарну апроксимацію вагових коефіцієнтів.
У мережу повинна подаватися велика кількість прикладів векторів, що представляють види
векторів, найточніше наскільки це можливо, очікуваних при відображенні. Приклади
зазвичай застосовуються кілька разів як ітерації.
Навчання використовує конкурентне навчання. Коли навчальний приклад подається в
мережу, обчислюється її евклідова відстань до всіх векторів ваги. Нейрон, чий ваговий
вектор найбільш схожий на вхідний, називається найкращим вузлом відповідності (НВВ,
англ. best matching unit). Ваги цього вузла та нейронів, близьких до нього в сітці
самоорганізаційної карти, коригуються до вхідного вектора. Величина зміни зменшується з
часом та з відстанню сітки від найкращого вузла відповідності.
Нейронна мережа Гопфілда — це тип рекурентної, повнозв'язної, штучної нейронної
мережі з симетричною матрицею зв'язків. У процесі роботи динаміка таких мереж
сходиться (конвергує) до одного з положень рівноваги. Ці положення рівноваги є
локальними мінімумами функціоналу, що називається енергія мережі (у найпростішому
випадку — локальними мінімумами негативно певної квадратичної форми на n-вимірному
кубі). Така мережа може бути використана як автоасоціативна пам'ять[en], як фільтр, а
також для розв'язання деяких завдань оптимізації. На відміну від багатьох нейронних
мереж, що працюють до отримання відповіді через певну кількість тактів, мережі Хопфілда
працюють до досягнення рівноваги, коли наступний стан мережі дорівнює попередньому.
Нейронна мережа Коско (Двонаправлена асоціативна пам'ять — ДАП) — нейронна
мережа, розроблена Бартом Коско. Це одношарова нейронна мережа зі зворотними
зв'язками, базується на двох ідеях: теорії адаптивного резонансу Стефана Гросберга і
автоасоціативній пам'яті Хопфілда. Двонаправлена асоціативна пам'ять (ДАП) є
гетероасоціативною; вектор вхідних сигналів надходить на один набір нейронів, а
відповідний вихідний вектор виробляється на іншому наборі нейронів. Як і мережа
Хопфілда, ДАП здатна до узагальнення, виробляючи правильні реакції, незважаючи на
спотворені входи. Крім того, можуть бути реалізовані адаптивні версії ДАП, що виділяють
еталонний образ із зашумленних прикладів. Ці можливості сильно нагадують процес
мислення людини і дозволяють штучним нейронних мережах зробити крок у напрямку
моделювання мозку.

11. Елементи класичної теорії оптимізації. Основні положення. Необхідні та


достатні умови безумовного екстремуму. Необхідні та достатні умови
умовного екстремуму
Проблеми відшукання найкращого серед деякої множини варіантів люди розв’язують
майже завжди. Такий найкращий варіант називають оптимальним. Слово «оптимальний»
походить від латинського оріітиз, що значить - найкращий, досконалий. Щоб знайти
оптимальний серед множини різних варіантів, доводиться розв’язувати задачі на
знаходження максимуму чи мінімуму певних показників, тобто найбільших чи найменших
значень деяких величин. Обидва ці поняття - максимум (тахітит) і мінімум (тіпітит)
об’єднуються єдиним терміном «екстремум» (від латинського ехігетит - крайній). Задачі на
відшукання максимуму чи мінімуму певних величин називаються екстремальними
задачами. Методи дослідження та розв’язування різних типів екстремальних задач
складають основу теорії оптимізації.
12. Лінійне програмування Постановка задачі та основні положення.
Графічний метод розв’язання задач лінійного програмування.
Симплекс-метод Данцига. Елементи теорії двоїстості. Метод оберненої
матриці. Двоїстий симплекс-метод

Лінійне програмування або лінійна оптимізація (LP, англ. Linear Programming) — метод
досягнення найліпшого виходу (такого як найбільший прибуток або найменша вартість) у
математичній моделі чиї вимоги представлені через лінійні відношення. Лінійне
програмування є особливим випадком математичного програмування (математичної
оптимізації).

Більш формально, лінійне програмування є технікою для оптимізації лінійної цільової


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

Симплекс-метод — метод розв'язання задачі лінійного програмування, в якому


здійснюється скерований рух по опорних планах до знаходження оптимального розв'язку;
симплекс-метод також називають методом поступового покращення плану. Метод був
розроблений американським математиком Джорджем Данцігом у 1947 році.

Как решать задачу:


https://function-x.ru/simplex_method_example_algorithm.html

Двоїстою задачею називається допоміжна задача лінійного програмування, що


формулюється за певними правилами безпосередньо з умов вихідної, прямої задачі.

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

Вказана обставина є однією з двох, що обумовлюють практичну значимість теорії


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

Сформулюємо тепер правила побудови моделі двоїстої задачі:

1. Кожному обмеженню прямої задачі відповідає змінна двоїстої задачі й навпаки: кожній
змінній прямої задачі відповідає обмеження двоїстої.
2. Коефіцієнти цільової функції при змінних прямої задачі є еквівалентними правим
частинам обмежень двоїстої задачі й навпаки: праві частини обмежень прямої задачі
еквівалентні коефіцієнтам цільової функції при змінних двоїстої задачі.

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


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

4. Якщо пряма задача є задачею максимізації, то двоїста – задачею мінімізації, і всі її


обмеження мають знак “£”. Навпаки: якщо пряма задача – задача мінімізації, то двоїста –
задача максимизации, і усе її обмеження мають знак “³”.

5. У загальному випадку змінні двоїстої задачі не мають обмеження на знак.

Построение и решение двоистой:


http://www.tsatu.edu.ua/kn/wp-content/uploads/sites/16/dvoyista-zadacha-linijnoho-prohramuva
nnja.pdf

13. Дискретне програмування. Метод Гоморі (метод відсікаючих площин).


Метод гілок та границь.

Задачи комбинаторной оптимизации можно решить с помощью методов дискретного


программирования. Одними из основных методов решения задач дискретного
программирования являются метод отсечения[1], метод ветвей и границ[2] и
динамическое программирование[3].

Результатом роботи алгоритму є знаходження максимуму функції на допустимій множині.


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

Рекордна множина розбивається на підмножини;


Знайти оцінки згори та знизу для нових підмножин;
Визначити максимальну оцінку знизу серед усіх підмножин;
Видалити ті множини у яких оцінка зверху менша за максимальну оцінку знизу;
Знайти максимальну оцінку згори серед усіх підмножин та вважати її рекордною;
Якщо не досягнуто дискретності, або необхідної точності перейти по пункту 1;
Результатом роботи є значення між оцінкою згори та знизу для рекордної множини.
Точністю є різниця між верхньою та нижньою оцінками, тобто для дискретних множин
алгоритм завершений тоді, коли ці оцінки збігаються.
Метод використовується для вирішення деяких NP-повних задач. Швидкість алгоритму
залежить від вигляду функції та способу визначення оцінок, але гарантовано не більше за
повний перебір.

14. Задача про найкоротші шляхи для всіх пар. Динамічне програмування
для знаходження найкоротшого шляху. Алгоритм Флойда-Воршелла.
Алгоритм Джонсона.

Динамическое программирование в теории управления и теории вычислительных систем


— способ решения сложных задач путём разбиения их на более простые подзадачи.
Задача про найкоротші шляхи для всіх пар, тут ми маємо знайти найкоротші шляхи між
кожною парою вершин v, v' в графі.
Алгоритм Джонсона дозволяє знайти найкоротші шляхи між усіма парами вершин
зваженого орієнтованого графа. Цей алгоритм працює, якщо у графі містяться ребра з
додатною чи від'ємною вагою, але відсутні цикли з від'ємною вагою. Названо на честь Д.
Б. Джонсона[en], який опублікував цей алгоритм 1977 року.
15. Постановка завдання кластеризації. Функції відстані. Критерії якості
кластеризації. Алгоритм K-середніх та модифікації.

Кластеризация (англ. cluster analysis) — задача группировки множества объектов на


подмножества (кластеры) таким образом, чтобы объекты из одного кластера были более
похожи друг на друга, чем на объекты из других кластеров по какому-либо критерию.
Алгоритм представляет собой версию EM-алгоритма, применяемого также для
разделения смеси гауссиан. Он разбивает множество элементов векторного пространства
на заранее известное число кластеров k.

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

Алгоритм завершается, когда на какой-то итерации не происходит изменения


внутрикластерного расстояния. Это происходит за конечное число итераций, так как
количество возможных разбиений конечного множества конечно, а на каждом шаге
суммарное квадратичное отклонение V уменьшается, поэтому зацикливание невозможно.

16. Алгоритми пошуку найкоротшого шляху. Задача про найкоротші


шляхи з одного входу. Пошук дерева найкоротшого шляху.Алгоритм
Дійкстри

Алгоритм Дейкстри — алгоритм на графах, відкритий Дейкстрою. Знаходить найкоротший


шлях від однієї вершини графа до всіх інших вершин. Класичний алгоритм Дейкстри
працює тільки для графів без циклів від'ємної довжини.
17. Розподілені системи. Синхронізація часу. Алгоритм Крістіана.
Алгоритм Берклі. Транзакція. Принципи ACID. Архітектура MapReduce.
Atomicity Consistency Isolation Durability

18. Нормальний розподіл. Крива Гауса. Функція розподілу нормального


закону. Правило «трьох сігм».

Правило, утверждающее, что вероятность того, что случайная величина отклонится от


своего математического ожидания более чем на три среднеквадратических отклонения,
практически равна нулю. Правило справедливо только для случайных величин,
распределенных по нормальному закону.
19. Функція декількох випадкових величин. Розподіл суми і добутку
незалежних випадкових величин. Числові характеристики випадкових
величин: математичне сподівання, дисперсія.

Для будь-якої множини незалежних випадкових величин функція щільності їх загального


розподілу є добутком їх функцій щільності.

20. Конкурентні
системи.
Паралелізм.
Моделі
конкурентного
програмування. Sharedmemory. Модель обміну повідомленнями.
Проблеми гонки за ресурси (racecondition).
21. Характеристика моделей життєвого циклу програмного продукту:
каскадна, спіральна, ітеративна, інкрементна (пошагова), формальна,
швидкого прототипування. Їх переваги, недоліки та використання.
22. Визначення та задачі аналізу вимог до програмного забезпечення.
Вимоги до продукту та процесу. Функціональні та нефункціональні
вимоги. Вимоги з кількісною оцінкою. Системні та програмні вимоги.

Вимоги до програмного забезпечення — набір вимог щодо властивостей, якості та


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

Розробка вимог до програмної системи може бути розділена на декілька етапів:

1 Знаходження вимог (збір, визначення потреб зацікавлених осіб та систем).


2 Аналіз вимог (перевірка цілісності та закінченості).
3 Специфікація (документування вимог).
4 Тестування вимог.

Нефункціональні вимоги (англ. Non-Functional Requirements) — це вимоги до


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

Нефункціональні вимоги можна поділити на дві категорії:

покращення (безпека, надійність, швидкодія, зручність у використанні ...)


вдосконалення (маштабування, відновлюваність ...) властивостей системи

Вимоги до інтерфейсу (Interface Requirements)


Апаратні інтерфейси (Hardware Interfaces) — апаратні інтерфейси необхідні для підтримки
системи, включаючи логічну структуру, фізичні адреси і очікувану поведінку.
Інтерфейси ПЗ (Software Interfaces) — інтерфейси програмного забезпечення з якими
аплікація повинна взаємодіяти.
Комунікаційні інтерфейси (Communications Interfaces) — інтерфейси для комунікацій
(взаємодії) з іншими системами та/або пристроями.
Апаратні та програмні вимоги (Hardware/Software Requirements) — опис апаратної та
програмної платформ, необхідних для роботи (і підтримки) системи.
Операційні вимоги (Operational Requirements)
Безпека та конфіденційність (Security and Privacy)
Надійність (Reliability)
Відновлювальність (Recoverability)
Продуктивність (Performance)
Потенціал (Capacity)
Збереження даних (Data Retention)
Керування помилками (Error Handling)
Правила перевірки (Validation Rules)
Узгоджені стандарти (Convention Standards)

Системні вимоги і програмні вимоги (System Requirements and Software


Requirements) - такий розподіл базується на визначенні "системи", поданому
INCOSE (International Council on Systems Engineering) "комбінація взаємодіючих
елементів <створена> для досягнення певних цілей; може включати апаратні
засоби, програмне забезпечення, вбудоване ПЗ, інші кошти, людей, інформацію,
техніки (підходи), служби та інші підтримуючі елементи "; таким чином, мається на
увазі, що система є більш змістовним поняттям, ніж програмне забезпечення і
включає оточення, в якому функціонує ПЗ, таке, яким воно є, звідси, природним
чином, випливають вимоги до системи в цілому і програмного забезпечення (або
програмної системі), зокрема. Часто в літературі з управління вимогами
зустрічається опис системних вимог як "користувацьких вимог" (user requirements),
SWEBOK обмежує застосування поняття "Користувацька вимога" вимогами до
системи кінцевих користувачів/замовників. Системні вимоги по SWEBOK, в свою
чергу, оточують Користувацькі вимоги (або вимоги інших зацікавлених осіб -
stakeholders, наприклад, регулювання повноважень) без вказівки ідентифікованого
джерела-людини.

23. Структура та архітектура програмного забезпечення. Архітектурні


точки зору та представлення. Характеристика архітектур програмних
продуктів. Поняття шаблонів проектування, фреймворки.

Архітектура програмного забезпечення (англ. software architecture) — спосіб


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

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


розбити систему на частини, як ці частини визначають та взаємодіють одна з одною, як
між ними передається інформація, як ці частини розвиваються поодинці і як все
вищеописане найкраще записати використовуючи формальну чи неформальну нотацію[3].

Архітектура повинна будуватись щоб найкраще відповідати вимогам до системи що


створюється, згідно принципу "форма відповідає функції[en]"[3].

Архітектурні стилі є зразками проектування на рівні архітектури. Зразок проектування


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

Шаблони проєктування програмного забезпечення (англ. software design patterns) —


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

Фреймворк (англ. Framework, каркас, платформа, структура, інфраструктура[1])


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

24. Загальні концепції проектування програмного забезпечення. Концепції


та процес проектування програмного забезпечення. Загальні принципи
(техніки) проектування.

Проектування програмного забезпечення (ПЗ) – процес визначення


архітектури, компонентів, інтерфейсів, інших характеристик системи й
кінцевого результату. Проектування ПЗ як інженерний процес входить зараз
як складова дисципліна загального інженерного процесу розроблення
програм – програмної інженерії(software engineering)
Еталонну модель програмної інженерії можна визначити як взаємодію
трьох факторів:
процесів;
продуктів;
ресурсів.
Кожна програмна система протягом свого існування проходить з певною
послідовністю фази або стадії від задуму до його втілення в програми,
експлуатацію та вилучення. Така послідовність фаз називається життєвим
циклом розробки (Software life cycle processes). На кожній фазі відбувається
певна сукупність процесів, кожен з яких породжує певний продукт,
використовуючи певні ресурси.
1.1 Загальні концепції проектування (General Design Concepts) До них відносяться: мета
архітектури, її обмеження, можливі альтернативи, використовувані уявлення і рішення.
https://learn.ztu.edu.ua/pluginfile.php/6505/mod_resource/content/1/%D0%A2%D0%B5%
D0%BC%D0%B0%202.pdf
25. Фундаментальні питання та проблеми проектування програмного
забезпечення. Паралелізм та ефективна обробка програмних процесів.

2. Ключові питання проектування (Key Issues in Software Design) В якійсь мірі, дану секцію
коштувало перевести як ключові проблеми. Як проводити декомпозицію? Як організувати і
об'єднати компоненти в єдину систему? Як забезпечити необхідну продуктивність?
Нарешті, як забезпечити прийнятну якість системи? Все це - фундаментальні питання і
проблеми проектування, незалежно від використовуваних при проектуванні підходів.
Паралелізм завдань (також відомий як паралелізм функції або керований паралелізм) є
однією з форм розпаралелювання комп'ютерного коду між декількома процесорами в
паралельних обчислювальних середовищах. Паралелізм завдань акцентує увагу на
розподіл процесів орієнтованих на конкретну задачу або потоківна різних процесорах. Це
контрастує з паралелізмом даних як інша форма паралелізму.

26. Контроль та обробка подій. Розподіл компонентів. Обробка похибок та


виключних ситуацій. Взаємодія системи з користувачами та збереження
Даних.

В інформатиці, подія (англ. event) — дія яка розпізнається програмним забезпеченням та


оброблюється за допомогою певних інструкцій. Комп'ютерні події можуть бути згенеровані
або ініціалізовані системно, користувачем або іншими способами. Як правило, події
обробляються синхронно з програмою, тобто, програмне забезпечення може мати один
або кілька виділених місць, де обробляються події, часто називається цикл подій[en]. Події
виникають при виконанні користувачем певних дій, наприклад, натисканням клавіш на
клавіатурі. Деякі події виникають по таймеру, наприклад перезапуск системи. Програмне
забезпечення може також викликати свій власний набір подій в цикл обробки подій,
наприклад, повідомити про завершення завдання. Деякі програми кардинально змінюють
свою поведінку у відповідь на події,[1] вони називаються подійно-орієнтованими.

Обро́бка ви́нятків (також опрацьо́вування (обробля́ння) винятко́вих ситуа́цій[1], англ.


exception handling) — механізм мов програмування, призначений для обробки помилок
часу виконання і інших можливих проблем (винятків), які можуть виникнути при виконанні
програми.

В цілому, при виникненні виняткової ситуації, управління передається деякому заздалегідь


призначеному обробникові (опрацьовувачу). У деяких мовах, обробник може відновити
виконання програми з місця виникнення винятку. Таким чином, обробка помилок
передається на вищий рівень і забезпечується можливість так званого нелокального
виходу, тобто передачі управління на деяку «віддалену», можливо заздалегідь невідому,
точку програми через довільне число викликів функцій.

27. Моделювання у програмній інженерії. Основні принципи моделювання


програмних систем. Візуальне моделювання та CASE-технології.
Уніфікована мова моделювання UML. Призначення UML. Види діаграм
UML. Діаграми структури та діаграми поведінки. Спрощена стратегія
використання UML-діаграм при моделюванні програмного забезпечення.

https://web.posibnyky.vntu.edu.ua/fksa/4bevz_proektuvannya_programnyh_zasobiv_system_up
ravlinnya/51.htm

28. Діаграми прецедентів та їх використання. Моделювання контексту та


вимог до програмної системи. Прецеденти та потоки подій. Описи
потоків подій. Потоки подій та сценарії як типи й екземпляри.
Діаграма прецедентів — в UML, діаграма, на якій зображено відношення між акторами та
прецедентами в системі.[1] Також, перекладається як діаграма варіантів використання.

іаграма прецедентів є графом, що складається з множини акторів, прецедентів (варіантів


використання) обмежених границею системи (прямокутник), асоціацій між акторами та
прецедентами, відношень серед прецедентів, та відношень узагальнення між акторами.[1]
Діаграми прецедентів відображають елементи моделі варіантів використання.

Суть даної діаграми полягає в наступному: проектована система представляється у


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

У мові UML є кілька стандартних видів відношень між акторами і варіантами використання:

асоціації (англ. association relationship)


включення (англ. include relationship)
розширення (англ. extend relationship)
узагальнення (англ. generalization relationship)
При цьому загальні властивості варіантів використання можуть бути представлені трьома
різними способами, а саме — за допомогою відношень включення, розширення і
узагальнення.

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

Включення (англ. include) у мові UML — це різновид відношення залежності між базовим
варіантом використання і його спеціальним випадком. При цьому відношенням залежності
(англ. dependency) є таке відношення між двома елементами моделі, при якому зміна
одного елемента (незалежного) приводить до зміни іншого елемента (залежного).

Відношення розширення (англ. extend) визначає взаємозв'язок базового варіанта


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

29. Специфікація прецедентів. Використання сценаріїв при плануванні


версій. Зв'язки між акторами та прецедентами. Організація прецедентів
(відношення залежності, включення та розширення). Відношення
узагальнення для прецедентів та акторів. Реалізація прецедентів та
використання діаграм послідовностей.
Діаграма послідовності (англ. sequence diagram) — різновид діаграми в UML. Діаграма
послідовності відображає взаємодії об'єктів впорядкованих за часом. Зокрема, такі
діаграми відображають задіяні об'єкти та послідовність відправлених повідомлень

30. Побудова діаграм послідовності. Двохетапне розроблення діаграм


послідовностей. Діаграми співробітництва.

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

Диаграммы сотрудничества отображают взаимодействие объектов в процессе


функционирования системы. Такие диаграммы моделируют сценарии
поведения системы. В русской литературе диаграммы сотрудничества часто
называют диаграммами кооперации.

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


сообщений. Связь между парой объектов рассматривается как экземпляр ассоциации между
их классами. Иными словами, связь между двумя объектами существует толь­ко тогда, когда
имеется ассоциация между их классами. Неявно все классы имеют ас­социацию сами с собой,
следовательно, объект может послать сообщение самому себе.

31. Узгодженість (цілісність) моделей. Виявлення класів. Класи етапу


аналізу: прикордонні (boundary) або інтерфейсні класи; класи-сутності
(entity); управляючі (control) класи (класи-менеджери). Класи етапу
проектування. Відношення між класами (узагальнення, залежність,
асоціація, агрегація, композиція) та їх виявлення. Проектування класів,
відношень між класами. Пакетування класів.

● на уровне анализа класс содержит в себе только набросок общих контуров


системы и работает как логическая концепция предметной области или
программного продукта.
● на уровне проектирования класс отражает основные проектные решения
касательно распределения информации и планируемой функциональности,
объединяя в себе сведения о состоянии и операциях.
● на уровне реализации класс дорабатывается до такого вида, в каком он
максимально удобен для воплощения в выбранной среде разработки; при этом не
воспрещается опустить в нём те общие свойства, которые не применяются на
выбранном языке программирования.

● boundary classes are ones at the boundary of the system - the classes that you
or other systems interact with
● entity classes classes are your typical business entities like "person" and "bank
account"
● control classes implement some business logic or other

Агрегация — это разновидность ассоциации при отношении между целым и его


частями. Как тип ассоциации агрегация может быть именованной. Одно
отношение агрегации не может включать более двух классов (контейнер и
содержимое). Агрегация встречается, когда один класс является коллекцией
или контейнером других. Причём по умолчанию, агрегацией называют
агрегацию по ссылке, то есть когда время существования содержащихся
классов не зависит от времени существования содержащего их класса. Если
контейнер будет уничтожен, то его содержимое — нет.

Композиция — более строгий вариант агрегации. Известна также как агрегация по значению.
Композиция имеет жёсткую зависимость времени существования экземпляров класса
контейнера и экземпляров содержащихся классов. Если контейнер будет уничтожен, то всё
его содержимое будет также уничтожено.

32. Класифікація патернів: породжуючі патерни (патерни процесу


створення об'єктів); структурні патерни (що ґрунтуються на
композиціях – структурних об'єднаннях об'єктів чи класів); патерни
поведінки (що характеризуються взаємодією об'єктів між собою).
Успадкування та композиції. Простір патернів проектування. Приклади
патернів. Кодогенерація (інженірінг) та реінженірінг.
33. Стратегії та методи проектування програмного забезпечення. Загальні
стратегії. Функціонально-орієнтоване та структурне проектування.
Об'єктно-орієнтоване проектування. Проектування на основі структур
даних. Компонентне проектування.
34. Будова програми при використанні процедурного (імперативного)
програмування. Проблеми, що виникають при використанні
процедурного програмування та їх вирішення використанням об’єктно-
орієнтованого програмування.
635. Характеристика структурного програмування як методології розробки
програмного забезпечення. Базові конструкції програми. Поняття
підпрограми (процедури або функції). Метод розробки програми. Мета
та принципи модульного програмування.
36. Методології розробки програмного забезпечення Microsoft Solution
Framework, Rational Unified Process, Extreme Programming. Засоби
розробки, що базуються на них.

Microsoft Solutions Framework (MSF) — методология разработки программного обеспечения,


предложенная корпорацией Microsoft. MSF опирается на практический опыт Microsoft и
описывает управление людьми и рабочими процессами в процессе разработки решения.
MSF представляет собой согласованный набор концепций, моделей и правил.
В проектную группу входят такие ролевые кластеры:
● управление программой
● управление продуктом
● разработка
● тестирование
● управление релизом
● удовлетворение потребителя
Они ответственны за различные области компетенции (functional areas) и связанные с ними
цели и задачи. Иногда ролевые кластеры называются просто ролями. Но в любом случае суть
концепции остается той же — построить основу производственных отношений и связанную с
ней модель команды такими, чтобы они были приспосабливаемыми (масштабируемыми) для
удовлетворения нужд любого проекта.
Как уже было сказано выше, проектная группа по MSF состоит из шести ролевых кластеров,
каждый из которых отвечает за:
● управление программой (program manager) — разработку архитектуры решения,
административные службы;
● разработку (developer) — разработку приложений и инфраструктуры,
технологические консультации;
● тестирование (QAE) — планирование, разработку тестов и отчетность по тестам;
● управление выпуском (release manager) — инфраструктуру, сопровождение,
бизнес-процессы, выпуск готового продукта;
● удовлетворение заказчика (user experience) — обучение, эргономику, графический
дизайн, техническую поддержку;
● управление продуктом (product manager) — бизнес-приоритеты, маркетинг,
представительство интересов заказчика.

37. Мета та задачі супроводу програмного забезпечення. Еволюція


програмного забезпечення та потреба у його супроводі. Категорії та
ключові питання супроводу програмного забезпечення.
38. Мета та задачі управління програмними проектами. Аналіз
здійсненності програмного проекту: технічні, операційні, фінансові та
соціальні аспекти. Процес оцінки та перегляду вимог до програмного
забезпечення. Планування програмного проекту. Управління
виконанням програмного проекту.
39. Основні принципи конструювання програмного забезпечення:
мінімізація складності, очікування змін, конструювання з можливістю
перевірки, стандарти конструювання. Загальні принципи керування
конструюванням
програмного
забезпечення.
Планування
та
вимірювання в конструюванні програмного забезпечення. Мови
конструювання та програмне кодування. Тестування та якість
конструювання. Загальні аспекти повторного використання.
40. Поняття якості програмного забезпечення. Показники якості розробки
програмного забезпечення. Аналіз якості та техніки оцінювання. Виміри
в проектуванні програмного забезпечення. Характеристика основних
критеріїв якості програмного продукту. Основні принципи та задачі
керування якістю програмного забезпечення. Характеристика дефектів
та методи управління якістю програмного забезпечення.
41. Термінологія та ключові питання тестування програмного забезпечення.
Зв'язок тестування з іншими видами діяльності процесу розробки
програмного забезпечення. Мета та рівні тестування. Техніки
тестування та їх комбінація. Вимір результатів тестування.
42. Структура програм на мовах програмування Python, С/C++ або Java.
Прості та складені оператори, приклади використання операторів.
Поняття константи та змінної в мовах програмування, принципи
виділення пам’яті для розміщення констант та змінних. Оголошення та
ініціалізація констант і змінних у програмах на мовах програмування
Python, С/C++ або Java. Прості типи даних. Розміщення даних різних
типів в оперативній пам’яті. Приклади оголошення різних типів даних у
програмах на мовах програмування Python, С/C++ або Java. Сумісність
типів та приведення типів даних. Типи даних користувача. Оголошення
та використання таких типів в мовах програмування Python, С/C++ або
7Java. Операції, вирази та оператори в мовах програмування Python,
С/C++ або Java. Операції привласнення та арифметичні операції.
Пріоритети операцій. Зміна пріоритетів.
43. Логічні операції та умовні оператори. Алгоритмічна структура
розгалуження. Вибір із двох альтернатив. Блок схеми структур
розгалуження. Вкладеність конструкцій вибору. Алгоритмічні
конструкції повторення. Типи циклів. Блок схеми циклів. Організація
циклів. Поняття функції (підпрограми) в мовах програмування.
Оголошення та виклик функцій. Рекурсія функцій. Стандартні
процедури та функції. Поняття глобальних та локальних змінних та
приклади їх використання в програмах на мовах Python, С/C++ або Java.
Статичні та динамічні змінні. Поняття масиву та його властивості, їх
оголошення і використання. Одновимірні та багатовимірні масиви.
Доступ до елементів масиву. Рядки. Операції над символами та рядками
в мовах програмування Python, С/C++ або Java. Стандартні процедури та
функції обробки рядків. Записи та структури, їх оголошення і
використання. Доступ до компонентів та операції над записами та
структурами. Похідні типи даних. Основні концепції об'єктно-
орієнтованої методології програмування. Програмна модель об’єкту.
Наведіть приклад програмної моделі довільного об'єкту на мові
програмування Python, C++ або Java. Оголошення класів на мові
програмування Python, C++ або Java.
44. Конструктори і деструктори класу. Призначення і основні правила
використання. Наведіть приклад оголошення довільного класу та його
використання в тексті програм на мові програмування. Структура
програми, що використовує класи, на мові програмування Python, C++
або Java. Наведіть приклади.
45. Поняття інкапсуляції та її застосування в мовах програмування. Методи
які організують інтерфейсі. Наведіть приклади визначення відкритих
закритих полів і методів класу. Поняття спадкування та поліморфізму в
об'єктно-орієнтованих мовах програмування. Поняття та приклади
перевантажених функцій. Ієрархія класів. Одиночне і множинне
спадкоємство. Абстрактні класи. Призначення і використання. Наведіть
приклад абстрактного класу. Спеціальні методи класів. Перевантаження
операторів. Поняття дружніх функцій і класів. Особливість доступу до
закритих полів класу. Наведіть приклади організації доступу до
закритих полів.
46. Організація обмінних операцій з використанням бібліотеки класів для
введення - виведення. Поняття файлу і потоку, приклади роботи з ними.
Маніпулятори потоків.
47. Поняття шаблону функції та класу. Абстрактні алгоритми.
48. Бібліотека стандартних шаблонів STL (Standard Template Library).

Библиотека стандартных шаблонов (STL) (англ. Standard Template Library) — набор


согласованных обобщённых алгоритмов, контейнеров, средств доступа к их содержимому и
различных вспомогательных функций в C++.
библиотеке выделяют пять основных компонентов:
1. Контейнер (англ. container) — хранение набора объектов в памяти.
2. Итератор (англ. iterator) — обеспечение средств доступа к содержимому
контейнера.
3. Алгоритм (англ. algorithm) — определение вычислительной процедуры.
4. Адаптер (англ. adaptor) — адаптация компонентов для обеспечения различного
интерфейса.
5. Функциональный объект (англ. functor) — сокрытие функции в объекте для
использования другими компонентами.
Разделение позволяет уменьшить количество компонентов. Например, вместо написания
отдельной функции поиска элемента для каждого типа контейнера обеспечивается
единственная версия, которая работает с каждым из них, пока соблюдаются основные
требования.

849. Компілятори і інтерпретатори. Опис їх роботи та порівняння переваг і


недоліків. Основні задачі, що вирішуються компілятором. Вхідні і
вихідні файли, їх логічний зміст.
50. Поняття про ресурси ЕОМ. Операційна система як програма управління
ресурсами. Основні завдання управління програмними процесами,
оперативною пам'яттю і пристроями введення - висновку в операційній
системі.
https://sites.google.com/site/ekzamenzos/bilet-1

51. Управління процесами в багатозадачних ОС. Основні алгоритми


управління.

https://sites.google.com/site/ekzamenzos/bilet-11

52. Управління оперативної пам’яттю в багатозадачній ОС. Основні


алгоритми управління. Віртуальна пам’ять.

https://sites.google.com/site/ekzamenzos/bilet-5
https://sites.google.com/site/ekzamenzos/bilet-6

53. Управління ресурсами. Монопольне та спільне використання ресурсів.


Поняття моделювання ресурсу. «Спулінг».

Задача ОС полягає в спостереженні за станом усіх процесів, що перебувають у системі,


особливо в активізованому стані, оскільки в активному стані процес монопольно володіє
виділеним йому процесором.

http://www.teoria-os.ru/t10/Index19.htm

54. Критичні секції в асинхронних процесах багатозадачних ОС.

https://sites.google.com/site/ekzamenzos/bilet-4

55. Основні алгоритми синхронізації. Завдання синхронізації процесів.


Поняття критичного шляху. «Змагання» і «клінчі».

Синхронізація процесів в інформатиці — приведення двох або декількох процесів або


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

Синхронізація необхідна у випадках, коли паралельно протікаючим процесам (або потокам


одного процесу) необхідна взаємодія.

(тупиковая ситуация, возникающая в ОС при диспетчеризации задач (процессов), когда


каждая из двух задач удерживает ресурс, необходимый для работы другой задачи. Клинчи
возможны в системах, где (а) есть конкуренция за неразделяемые ресурсы; (б) ресурс
(например, ОЗУ) запрашивается частями и (в) предоставленный ресурс не может быть
отобран принудительно

56. Основні методи організації зберігання файлів на зовнішніх пристроях


прямого методу доступу. Поняття бібліотечної, індексної послідовної і
кластерної структури.
57. Типи діалогів, порівняльні характеристики діалогів. Групи користувачів
ОС. Основні характеристики діалогів типу меню та команда.
58. Групи користувачів ОС.
59. Способи досягнення надійності програмного забезпечення.
60. Привести практичні
програмування.
приклади
з
використанням
базової
мови
61. Поняття про тестування. Навести простий приклад тестування.
62. Мова запитань до баз даних SQL. Особливості застосування.
Альтернативні мови запитання до баз даних. Особливості застосування.
63. Методологія розробки програмного забезпечення. Технологічний
процес створення програмного забезпечення
64. Моделі життєвого циклу розробки програмного забезпечення.
Ступенчаста і водоспадна модель. Пояснити на прикладі. Переваги і
недоліки моделі. Моделі життєвого циклу розробки програмного
забезпечення. Спіральна модель. Пояснити на прикладі. Переваги і
недоліки моделі. Моделі життєвого циклу розробки програмного
забезпечення. Раціональний уніфікований процес. Пояснити на
прикладі. Переваги і недоліки моделі. Методологія розробки
програмного забезпечення. Екстремальне програмування.
65. Загальна архітектура комп'ютера. Класифікація архітектур комп'ютерів
за Флінном. Основні положення архітектури комп'ютера Фон Неймана.

Общая классификация архитектур ЭВМ по признакам наличия параллелизма в потоках


команд и данных была предложена Майклом Флинном в 1966 году[1] и расширена в 1972
году[2]. Все разнообразие архитектур ЭВМ в этой таксономии сводится к четырём
классам:

ОКОД — Вычислительная система с одиночным потоком команд и одиночным потоком


данных
(SISD, Single Instruction stream over a Single Data stream).
ОКМД — Вычислительная система с одиночным потоком команд и множественным
потоком данных
(SIMD, Single Instruction, Multiple Data).
МКОД — Вычислительная система со множественным потоком команд и одиночным
потоком данных
(MISD, Multiple Instruction Single Data).
МКМД — Вычислительная система со множественным потоком команд и множественным
потоком данных
(MIMD, Multiple Instruction Multiple Data).
Типичными представителями SIMD являются векторные архитектуры. К классу MISD ряд
исследователей относит конвейерные ЭВМ, однако это не нашло окончательного
признания, поэтому можно считать, что реальных систем — представителей данного
класса не существует. Класс MIMD включает в себя многопроцессорные системы, где
процессоры обрабатывают множественные потоки данных.

Отношение конкретных машин к конкретному классу сильно зависит от точки зрения


исследователя. Так, конвейерные машины могут быть отнесены и к классу SISD (конвейер
— единый процессор), и к классу SIMD (векторный поток данных с конвейерным
процессором) и к классу MISD (множество процессоров конвейера обрабатывают один
поток данных последовательно), и к классу MIMD — как выполнение последовательности
различных команд (операций ступеней конвейера) на множественным скалярным потоком
данных (вектором).

Архитектура фон Неймана (модель фон Неймана, Принстонская архитектура) — широко


известный принцип совместного хранения команд и данных в памяти компьютера.
Вычислительные машины такого рода часто обозначают термином «машина фон
Неймана», однако соответствие этих понятий не всегда однозначно. В общем случае,
когда говорят об архитектуре фон Неймана, подразумевают принцип хранения данных и
инструкций в одной памяти.

https://ru.wikipedia.org/wiki/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA
%D1%82%D1%83%D1%80%D0%B0_%D1%84%D0%BE%D0%BD_%D0%9D%D0%B5%D0%
B9%D0%BC%D0%B0%D0%BD%D0%B0

66. Загальні принципи передачі файлів та повідомлень через комп’ютерні


мережі, переваги пакетної передачі. Характеристика рівням моделі
взаємодії відкритих систем (Open System Interconnect - OSI), приклади
протоколів різних рівнів.

В компьютерных сетях пакет — это определённым образом оформленный блок данных,


передаваемый по сети в пакетном режиме. Компьютерные линии связи, которые не
поддерживают пакетного режима, как, например, традиционная телекоммуникационная
связь точка-точка, передают данные просто в виде последовательности байтов, символов
или битов поодиночке. Если данные сформированы в пакеты, битрейт коммуникационной
среды можно более эффективно распределить между пользователями, чем в сети с
коммутацией каналов. При использовании сетей с коммутацией пакетов можно надёжно
гарантировать пороговый битрейт, ниже которого он опускаться не будет.

Сетевой пакет может состоять из служебной информации, включающей стартовые биты


(преамбулу), заголовки (headers) и прицеп (trailer), и полезную нагрузку (payload). Между
пакетами, посылаемыми в сеть, обычно соблюдается межкадровый интервал (англ.
Interframe gap). Максимальная длина нагрузки называется maximum transmission unit
(MTU).

Существует возможность фрагментации пакета — генерация двух сетевых пакетов из


одного. Происходит при превышении длины кадра MTU интерфейса, через который он в
данный момент проходит. Фрагментация (и её запрещение) поддерживается протоколом
IP и не предусмотрена в большинстве других протоколов. Если сетевой адаптер
обнаруживает кадр длиннее его media MTU, то этот кадр обычно отбрасывается. Такое
случается, если на одном хосте разрешены jumbo-кадры, а на другом — нет.
Фрагментация IP-пакета увеличивает нагрузку на центральный процессор и снижает
скорость передачи полезных данных этого пакета (на 2÷50 % в Ethernet-сети в
зависимости от длины кадра), поэтому её стараются избегать. При потере любого
фрагмента повторно должна быть передана вся последовательность, что является
дополнительным риском снижения скорости. Сборка всех частей в исходный пакет
производится только адресатом, даже если на каком-то участке сети MTU больше
требуемого. Фрагментация пакетов может быть использована в сетевых атаках и
зондировании сетей.

Сетевая модель OSI (The Open Systems Interconnection model) — сетевая модель стека
(магазина) сетевых протоколов OSI/ISO. Посредством данной модели различные сетевые
устройства могут взаимодействовать друг с другом. Модель определяет различные уровни
взаимодействия систем. Каждый уровень выполняет определённые функции при таком
взаимодействии.
https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%
8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_OSI

67. Формат
МАС-адреси,
поняття
однопунктових
(Unicast),
багатопунктових (Multicast) та широкомовних (Broadcast) МАС-адреси.
Приклади використання протоколами кадрів із такими типами МАС-
адрес.Поняття колізії при організації колективного доступу до
середовища передачі в технології Ethernet. Алгоритм метода
колективного доступу до середи передачі з розпізнанням несучої та
виявленням
колізій(Carrier-Sense-Multiply-Access
with
Collision
Detection – CSMA/CD). Загальна характеристика технології Ethernet.
Успадковані технології Fast Ethernet, Gigabit Ethernet і 10 Gigabit
Ethernet, їх спільні риси. Загальна характеристика протоколів мережного
рівня. Формат ІР-адреси та принцип виділення блоків ІР-адрес за
класовою схемою. Особливі ІР-адреси та правила їх вживання.
Планування ІР-підмереж за допомогою масок підмереж. Відображення
IP-адрес на адреси канального рівня за допомогою протокола ARP.
Модель роботи ARP. Відображення доменних імен на ІР-адреси, етапи
процесу визначення ІР-адреси за доменним ім’ям. Основні задачі
протоколу IP. Формат заголовку та характеристика полів, що вирішують
задачі ІР. Принципи маршрутизації ІР-пакетів у складеній мережі,
структура таблиць маршрутизації та команди задавання статичного
маршруту до мереж. Загальна характеристика та основні задачі
протоколу контрольних повідомлень Інтернету ІСМР. Типи
повідомлень ICMP. Принципи використання ICMP повідомлень в
утилітах ping та traceroute. Задачі протоколів транспортного рівня
Порівняльна характеристика протоколів ТСР та UDP. Поняття портів та
адрес сокетів, розподіл номерів портів. Номери портів популярних
протоколів прикладного рівня. Процедури встановлення з’єднання,
передачі даних та завершення з’єднання протоколом ТСР. Поля та
прапорці заголовків пакетів, що використовуються при цих процедурах.
Формат заголовку ТСР. Використання полів та прапорців для цілісної та
гарантованої передачі даних.

MAC-адрес (от англ. Media Access Control — надзор за доступом к среде, также Hardware
Address, также физический адрес) — уникальный идентификатор, присваиваемый каждой
единице активного оборудования или некоторым их интерфейсам в компьютерных сетях
Ethernet.

IP-адрес (ˌaɪ ˈpiː-адрес; является словообразовательной полукалькой английского IP


address, буквенной аббревиатурой от англ. Internet Protocol Address «адрес
Интернет-протокола») — уникальный сетевой адрес узла в компьютерной сети,
построенной на основе стека протоколов TCP/IP.

В сети Интернет требуется глобальная уникальность адреса; в случае работы в


локальной сети требуется уникальность адреса в пределах сети. В версии протокола IPv4
IP-адрес имеет длину 4 байта, а в версии протокола IPv6 — 16 байт.

A unicast MAC address is the unique address used when a frame is sent from a single
transmitting device to a single destination device. In the example shown in the figure, a
host with IP address 192.168. 1.5 (source) requests a web page from the server at IP
address 192.168.

Так вот, для определения соответствия между логическим адресом сетевого уровня (IP) и
физическим адресом устройства (MAC) используется описанный в RFC 826 протокол ARP
(Address Resolution Protocol, протокол разрешения адресов).

ARP состоит из двух частей. Первая – определяет физический адрес при посылке пакета,
вторая – отвечает на запросы других станций.

Протокол имеет буферную память (ARP-таблицу), в которой хранятся пары адресов


(IP-адрес, MAC-адрес) с целью уменьшения количества посылаемых запросов,
следовательно, экономии трафика и ресурсов.

ICMP (англ. Internet Control Message Protocol — протокол межсетевых управляющих


сообщений[1]) — сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP
используется для передачи сообщений об ошибках и других исключительных ситуациях,
возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост,
или маршрутизатор не отвечают. Также на ICMP возлагаются некоторые сервисные
функции.

Транспортный уровень (англ. Transport layer) — 4-й уровень сетевой модели OSI,
предназначен для доставки данных. При этом неважно, какие данные передаются, откуда
и куда, то есть, он предоставляет сам механизм передачи. Блоки данных он разделяет на
фрагменты, размеры которых зависят от протокола: короткие объединяет в один, а
длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа
точка-точка. Пример: TCP, UDP, SCTP.
Процесс начала сеанса TCP (также называемый «рукопожатие» (англ. handshake)),
состоит из трёх шагов.

1. Клиент, который намеревается установить соединение, посылает серверу сегмент с


номером последовательности и флагом SYN.

Сервер получает сегмент, запоминает номер последовательности и пытается создать


сокет (буферы и управляющие структуры памяти) для обслуживания нового клиента.
В случае успеха сервер посылает клиенту сегмент с номером последовательности и
флагами SYN и ACK, и переходит в состояние SYN-RECEIVED.
В случае неудачи сервер посылает клиенту сегмент с флагом RST.
2. Если клиент получает сегмент с флагом SYN, то он запоминает номер
последовательности и посылает сегмент с флагом ACK.

Если клиент одновременно получает и флаг ACK (что обычно и происходит), то он


переходит в состояние ESTABLISHED.
Если клиент получает сегмент с флагом RST, то он прекращает попытки соединиться.
Если клиент не получает ответа в течение 10 секунд, то он повторяет процесс соединения
заново.
3. Если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он
переходит в состояние ESTABLISHED.

В противном случае после тайм-аута он закрывает сокет и переходит в состояние


CLOSED.
Процесс называется «трёхэтапным рукопожатием» (англ. three way handshake), так как
несмотря на то что возможен процесс установления соединения с использованием
четырёх сегментов (SYN в сторону сервера, ACK в сторону клиента, SYN в сторону
клиента, ACK в сторону сервера), на практике для экономии времени используется три
сегмента.

Пример базового 3-этапного согласования:

TCP A TCP B
1. CLOSED LISTEN
2. SYN-SENT --> <SEQ=100><CTL=SYN> --> SYN-RECEIVED
3. ESTABLISHED <-- <SEQ=300><ACK=101><CTL=SYN,ACK> <-- SYN-RECEIVED
4. ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK> --> ESTABLISHED
5. ESTABLISHED <-- <SEQ=301><ACK=101><CTL=ACK> <-- ESTABLISHED
В строке 2 TCP A начинает передачу сегмента SYN, говорящего об использовании
номеров последовательности, начиная со 100;

В строке 3 TCP B передаёт SYN и подтверждение для принятого SYN в адрес TCP A.
Надо отметить, что поле подтверждения показывает ожидание TCP B приёма номера
последовательности 101, подтверждающего SYN с номером 100;

В строке 4 TCP A отвечает пустым сегментом с подтверждением ACK для сегмента SYN
от TCP B;

В строке 5 TCP B передаёт некоторые данные. Отметим, что номер подтверждения


сегмента в строке 5 (ACK=101) совпадает с номером последовательности в строке 4
(SEQ=101), поскольку ACK не занимает пространства номеров последовательности (если
это сделать, придётся подтверждать подтверждения — ACK для ACK).

Существуют экспериментальные расширения протокола TCP, сокращающие количество


пакетов при установлении соединения, например TCP Fast Open[en]. Ранее также
существовало расширение T/TCP. Для прозрачного шифрования данных предлагается
использовать расширение tcpcrypt.

68. Поняття бази даних та системи управління базами даних (СУБД).


Поняття сутності, атрибуту, зв’язку та домену та їх ілюстрація на
довільному прикладі. Найбільш поширені СУБД. Порівняльна
характеристика реляційної та об’єктно-орієнтованої моделей даних.
Приклади СУБД, що використовують такі моделі.
69. Проблема надлишкового дублювання та узгодження введення
дубльованих даних. Вимоги до вибору ідентифікаторів записів.
10 Аномалії вставки, видалення та модифікації даних. Поняття цілісності
даних. Базові типи зв’язків між даними. Формування зв'язків типів «один
до одного», «один до багатьох» та «багато до багатьох». Приклади даних
із такими типами зв’язків. Елементи моделі сутність-зв’язок. Основні
визначення ER-діаграм. Приклади ER-діаграм з різноманітними типами
зв’язків.
70. Поняття нормалізації бази даних. Використання методу нормальних
форм для оптимізації структури відношень. Залежності між атрибутами.
Виявлення залежностей між атрибутами. Критерій першої нормальної
форми, поняття та приклади повторюваних груп та способу їх усунення.
Критерій другої нормальної форми, поняття та приклади
функціональної залежності атрибутів та визначника (детермінанта).
Критерій третьої нормальної форми, поняття та приклади транзитивної
залежності між атрибутами відношення. Критерій нормальної форми
Бойса-Кодда.

https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C
%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0

https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C
%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%91%D0
%BE%D0%B9%D1%81%D0%B0_%E2%80%94_%D0%9A%D0%BE%D0%B4%D0%B4%D0%
B0

71. Команди маніпуляції із таблицями: команда додавання стовпців,


команда модифікації характеристик стовпців, команда перейменування
та команда видалення стовпців, команда видалення таблиць. Синтаксис
оператора SELECT. Приклади виразу SQL, що організує вибірку даних
із двох таблиць для певного критерію. Синтаксис операторів INSERT,
DELETE, UPDATE. Приклади виразів SQL, що організують вставку
нових даних, видалення та модифікацію даних, відповідно.
Використання вкладених підзапитів в мові SQL. Принцип роботи запиту
зі зв’язаним підзапитом. Приклад організації запиту з підзапитом.
72. Оператор об’єднання UNION. Принцип роботи запиту при використанні
оператору. Приклад використання оператора UNION. Усунення
дублювання в UNION. Операції поєднання таблиць шляхом посилальної
цілісності. Різновиди та принципи роботи оператору об’єднання
таблиць JOIN. Приклади використання оператора JOIN.

You might also like