DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

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

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Дослідження властивостей та типів бінарних відношень

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
КН
Кафедра:
Інформаційні системи та мережі

Інформація про роботу

Рік:
2016
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Теорія прийняття рішень
Група:
КН-11
Коротко про документ

Про що ця робота

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

У роботі розглядаються

  • Бінарні відношення
  • Властивості відношень
  • Рефлексивність та антирефлексивність
  • Симетричність та асиметричність
  • Транзитивність
  • Композиція відношень
  • Замикання відношень
  • Програмна реалізація на Java

Зміст і розділи

  1. Мета роботи
  2. Програмна реалізація
  3. Клас capacity
  4. Клас relationship
  5. Перевірка властивостей відношень
  6. Обчислення складових відношень
  7. Транзитивне замикання та досяжність
  8. Головний клас програми
  9. Висновок
Для кого:Студенти технічних спеціальностей, викладачі дисципліни теорії прийняття рішень та дискретної математики.
Викладачі:Викладач кафедри

Ключові поняття

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

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „ Львівська політехніка” Кафедра ІСМ Звіт Про виконання Лабораторної роботи № 2 з дисципліни: «Теорія прийняття рішень» на тему: «Дослідження властивостей та типів бінарних відношень» Мета роботи: вивчення та практичне ознайомлення з основними властивостями бінарних відношень та їх типами. Виконання: package Theory_lab2; class Capacity { protected int size; Capacity (int x){ size = x; } Capacity (){ size = 5; } void matrix_size(int x) { size = x; } } class Relationship extends Capacity { private byte relation[][] = new byte[size][size]; private byte res[][] = new byte[size][size]; private byte res2[][] = new byte[size][size]; Relationship () { for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++) relation[ar][a] = (byte)(Math.random()*2); } Relationship (byte arr[][]) { for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++) relation[ar][a] = arr[ar][a]; } byte[][] get_relation (){ return relation; } void show(byte[][] arr) { for (byte[] ar : arr) { for (byte a : ar) System.out.print(a + " "); System.out.println(); } System.out.println(); } void refleksuvne(){ for (int i = 0; i < relation.length; i++) if (relation[i][i] == 0) { System.out.println("НЕ рефлексивне"); return; } System.out.println("Pефлексивне"); } boolean anturefleksuvne(){ for (int i = 0; i < relation.length; i++) if (relation[i][i] == 1){ System.out.println("НЕ антирефлексивне."); return false; } System.out.println("Антирефлексивне."); return true; } void sumetric(){ for (byte i = 0; i < res.length; i++) for (byte k = 0; k < res.length; k++) if (relation[i][k] != relation[k][i]){ System.out.println("НЕ симетричне."); return; } System.out.println("Симетричне."); } void asumetric(){ if (!anturefleksuvne()){ System.out.println("НЕ aсиметричне."); return; } for (byte i = 0; i < res.length; i++) for (byte k = 0; k < res.length; k++) if (relation[i][k] == 1 && relation[k][i] == 1){ System.out.println("НЕ асиметричне."); return; } System.out.println("Асиметричне."); } void antusumetric(){ for (byte i = 0; i < res.length; i++) for (byte k = 0; k < res.length; k++){ if (i == k) continue; if (relation[i][k] == 1 && relation[k][i] == 1) { System.out.println("НЕ антисиметричне."); return; } } System.out.println("Антисиметричне."); } void tranzituvne(){ func_composition(relation); for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++) if (res[ar][a] == 1 && relation[ar][a] == 0){ System.out.println("НЕ транзитивне."); return; } System.out.println("Транзитивне."); } void func_composition (byte[][] arr){ for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++) res[ar][a] = 0; for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++) for (byte i = 0; i < arr.length; i++){ if (relation[ar][a] == 1 && arr[a][i] == 1) res[ar][i] = 1; } //show(res); } void acuklichne(){ func_composition(relation); for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++) if (res[ar][a] == 1 && relation[a][ar] == 1){ System.out.println("НЕ ациклічне."); return; } System.out.println("Ациклічне."); } void zvayzne(){ if (!anturefleksuvne()){ System.out.println("НЕ зв'язне."); return; } for (byte i = 0; i < res.length; i++) for (byte k = 0; k < res.length; k++) if (relation[i][k] == 0 && relation[k][i] == 0){ System.out.println("НЕ зв'язне."); return; } System.out.println("Зв'язне."); } byte[][] func_cross (){ for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++){ if (relation[ar][a] == 1 && res[ar][a] == 1) res2[ar][a] = 1; else res2[ar][a] = 0; } return res2; } byte[][] func_inverse (){ for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++){ if (relation[ar][a] == 1) res[a][ar] = 1; else res[a][ar] = 0; } return res; } void sumetric2(){ func_inverse(); func_cross(); System.out.println("Симетрична складова :"); show(res2); } byte[][] func_sub (){ for (byte ar = 0; ar < res2.length; ar++) for (byte a = 0; a < res2.length; a++){ if (relation[ar][a] == 1 && res2[ar][a] == 0) res[ar][a] = 1; else res[ar][a] = 0; } return res; } void asumetric2(){ sumetric2(); func_sub(); System.out.println("Асиметрична складова :"); show(res); } byte[][] func_union (byte[][] arr){ for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++){ if (relation[ar][a] == 0 && arr[ar][a] == 0) res[ar][a] = 0; else res[ar][a] = 1; } return res; } byte[][] func_composition2 (byte[][] arr){ for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++) for (byte i = 0; i < arr.length; i++){ if (relation[ar][a] == 1 && arr[a][i] == 1) res2[ar][i] = 1; else res2[ar][i] = 0; } return res2; } byte[][] tranzutuvne_zamukanay(){ func_union(func_composition2(relation)); func_union(res, func_composition2(res2)); func_union(res, func_composition2(res2)); func_union(res, func_composition2(res2)); System.out.println("Транзитивн замикання :"); show (res); return res; } byte[][] dosaygnist(){ byte E[][] = {{1, 0, 0, 0, 0}, {0, 1, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 1}}; func_union(E, tranzutuvne_zamukanay()); System.out.println("Досяжність :"); show (res); return res; } byte[][] func_inverse (byte[][] arr){ for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++){ if (arr[ar][a] == 1) res2[a][ar] = 1; else res2[a][ar] = 0; } return res2; } byte[][] func_cross (byte[][] arr, byte[][] arr2){ for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++){ if (arr[ar][a] == 1 && arr2[ar][a] == 1) res2[ar][a] = 1; else res2[ar][a] = 0; } return res2; } byte[][] vzayemna_dosaygnist(){ func_cross (dosaygnist(), func_inverse(dosaygnist())); System.out.println("Взаємна досяжність :"); show (res2); return res2; } } public class Begin { public static void main(String[] args) { byte P[][] = {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 1}, {0, 0, 0, 1, 0}, {0, 0, 1, 1, 0}}; Relationship ob1 = new Relationship(P); ob1.refleksuvne(); ob1.anturefleksuvne(); ob1.sumetric(); ob1.asumetric(); ob1.antusumetric(); ob1.tranzituvne(); ob1.acuklichne(); ob1.zvayzne(); ob1.sumetric2(); ob1.asumetric2(); ob1.tranzutuvne_zamukanay(); ob1.dosaygnist(); ob1.vzayemna_dosaygnist(); } } Результат: Властивості відношення / / / / / / Висновок: виконуючи дану лабораторну роботу я вивчив та закріпив на практиці основні властивості та типи бінарних відношень також написав програму для автоматизації процесу роботи з бінарними відношеннями.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!