DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

Рік:
2018
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Теорія прийняття рішень

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

Міністерство освіти і науки України Національний університет „ Львівська політехніка” Кафедра ІСМ Звіт Про виконання Лабораторної роботи № 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(); } } Результат: Властивості відношення / / / / / / Висновок: виконуючи дану лабораторну роботу я вивчив та закріпив на практиці основні властивості та типи бінарних відношень також написав програму для автоматизації процесу роботи з бінарними відношеннями.
Антиботан аватар за замовчуванням

29.11.2018 01:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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