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
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Методи і системи штучного інтелекту

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

Міністерство освіти і науки України Національний університет „ Львівська політехніка” Кафедра ІСМ Звіт Про виконання Лабораторної роботи № 1 з дисципліни: «Методи та системи штучного інтелекту » на тему: «Комп’ютерне подання множин» Мета роботи: вивчення та порівняння різних способів представлення бінарних відношень. Засвоєння практичних навиків маніпулювання бінарними відношеннями в різних представленнях. Виконання: package Theory_lab1; 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]; 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() { for (byte[] ar : relation) { for (byte a : ar) System.out.print(a + " "); System.out.println(); } System.out.println(); } void show(byte[][] arr) { for (byte[] ar : arr) { for (byte a : ar) System.out.print(a + " "); System.out.println(); } System.out.println(); } byte[][] empty (){ byte[][] arr = new byte[5][5]; for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++) arr[ar][a] = 0; show(arr); return arr; } byte[][] full (){ byte[][] arr = new byte[5][5]; for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++) arr[ar][a] = 1; show(arr); return arr; } byte[][] diagonal (){ byte[][] arr = new byte[5][5]; for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++){ if (a == ar) arr[ar][a] = 1; else arr[ar][a] = 0; } show(arr); return arr; } byte[][] notdiagonal() { byte[][] arr = new byte[5][5]; for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++){ if (a == ar) arr[ar][a] = 0; else arr[ar][a] = 1; } show(arr); return arr; } 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; } System.out.println("Operation union :"); show(res); return res; } byte[][] func_union (byte[][] arr1, byte[][] arr2){ for (byte ar = 0; ar < arr1.length; ar++) for (byte a = 0; a < arr1.length; a++){ if (arr1[ar][a] == 0 && arr2[ar][a] == 0) res[ar][a] = 0; else res[ar][a] = 1; } System.out.println("Operation union :"); show(res); return res; } byte[][] func_cross (byte[][] arr){ for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++){ if (relation[ar][a] == 1 && arr[ar][a] == 1) res[ar][a] = 1; else res[ar][a] = 0; } System.out.println("Operation cross :"); show(res); return res; } byte[][] func_sub (byte[][] arr){ for (byte ar = 0; ar < arr.length; ar++) for (byte a = 0; a < arr.length; a++){ if (relation[ar][a] == 1 && arr[ar][a] == 0) res[ar][a] = 1; else res[ar][a] = 0; } System.out.println("Operation sub :"); show(res); return res; } byte[][] func_sub (byte[][] arr1, byte[][] arr2){ for (byte ar = 0; ar < arr1.length; ar++) for (byte a = 0; a < arr1.length; a++){ if (arr1[ar][a] == 1 && arr2[ar][a] == 0) res[ar][a] = 1; else res[ar][a] = 0; } System.out.println("Operation sub :"); show(res); return res; } byte[][] func_not (){ for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++){ if (relation[ar][a] == 1) res[ar][a] = 0; else res[ar][a] = 1; } System.out.println("Operation not :"); show(res); return res; } 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; } System.out.println("Operation inverse :"); show(res); return res; } byte[][] func_cut (){ byte masuv[][] = new byte[size-1][size-1]; for (byte ar = 0; ar < res.length - 1; ar++) for (byte a = 0; a < res.length - 1; a++){ if (relation[ar][a] == 1) masuv[a][ar] = 1; else masuv[a][ar] = 0; } System.out.println("Operation cut :"); show(masuv); return masuv; } byte[][] func_symmetric_sub (byte[][] arr){ byte P[][] = new byte[res.length][res.length]; byte Q[][] = new byte[res.length][res.length]; byte R[][] = new byte[res.length][res.length]; for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++) P[ar][a] = relation[ar][a]; for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++) Q[ar][a] = arr[ar][a]; func_sub(P, Q); for (byte ar = 0; ar < res.length; ar++) for (byte a = 0; a < res.length; a++) R[ar][a] = res[ar][a]; func_union (R, func_sub(Q, P)); return res; } byte[][] 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; } System.out.println("Operation composition :"); show(res); return res; } } class begin { public static void main(String args[]){ byte P[][] = {{0, 1, 0, 1, 0}, {0, 0, 0, 0, 1}, {0, 1, 1, 1, 0}, {1, 0, 0, 0, 0}, {0, 0, 1, 0, 1 }}; byte Q[][] = {{0, 0, 0, 1, 0}, {1, 1, 0, 0, 0}, {1, 0, 0, 1, 1}, {1, 0, 0, 0, 0}, {0, 1, 0 ,0, 0}}; byte R[][] = {{1, 0, 0, 0, 0}, {1, 0, 1, 0, 0}, {0, 0, 1, 0, 1}, {0, 0, 1, 0, 0}, {1, 1, 0, 0, 0}}; Relationship ob1 = new Relationship(P); Relationship ob2 = new Relationship(Q); Relationship ob3 = new Relationship(R); ob1.show(); ob2.show(); ob3.show(); ob1.diagonal(); // ob1.notdiagonal(); // ob1.empty(); // ob1.full(); // ob1.func_union(ob2.get_relation()); // ob1.func_cross(ob2.get_relation()); // ob1.func_sub(ob2.get_relation()); // ob1.func_cut(); // ob1.func_not(); // ob1.func_inverse(); // ob1.func_symmetric_sub(ob2.get_relation()); // ob1.func_composition(ob2.get_relation()); } } Діагональне, антидіагональне, порожнє та пусте відношення Об’єднання відношень Перетин відношень Різниця відношень Скорочення відношення Симетрична різниця відношень Доповнення відношення Обернене відношення Композиція відношень Висновок: виконуючи дану лабораторну роботу я вивчив різних способів представлення бінарних відношень. Засвоєння практичних навиків маніпулювання бінарними відношеннями в різних представленнях.
Антиботан аватар за замовчуванням

29.11.2018 01:14

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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