Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 1 САПР (моя ред.).doc
Скачиваний:
2
Добавлен:
03.12.2018
Размер:
82.94 Кб
Скачать

Тверской Государственный Технический Университет

Кафедра автоматизации технологических процессов и производств

Лабораторная работа № 1

Исследование методов анализа технических решений на основе их меры сходства, меры включения и меры различия

Выполнил: студент 5-го курса

группы АТПП-0702 Клюев И.В.

Проверил: Трибухин А. Г.

г. Тверь 2011

Задание на лабораторную работу

  1. Изучить понятия: техническое решение, мера сходства, мера включения и мера различия.

  2. Для исследуемых технических решений определить:

- меру сходства с использованием различных формул;

- меру включения;

- меру различия;

  1. Задаться пороговым значением сходства, различия и включения.

  2. Выбрать оригинальные технические решения.

Теоретическая часть

Техническое решение (ТР) – под ним понимается любой результат полученный на отдельном этапе проектирования (схема СУ, модель СУ, документация на датчики, измерительные устройства). Основной задачей при рассмотрении множества ТР является выбор наилучшего решения. Оценки, необходимые для сравнения ТР, формируются по набору показателей, характеристик ТР. В морфологических методах анализа каждый объект (ТР) представляется в виде вектора включающего значения всех характеристик:

С математической точки зрения это значит, что каждое ТР – это точка в многомерном пространстве признаков (характеристик).

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

Мера сходства отражает степень сходства одного ТР1 со вторым ТР2.

Мера включения отражает различную степень включения одного ТР1 в другое ТР2.

Мера различия отражает степень различия одного ТР1 со вторым ТР2.

Расчетные соотношения для определения мер сходства, включения и различия:

Мера сходства Чекановского-Серенсена:

Мера сходства Сокала_Снита:

Мера сходства Андреева:

Мера сходства Кульчинского:

Мера включения:

Мера различия:

Практическая часть

Исходные данные: матрица ТР-f:

1 1 0 1 1 0 1 1 0 0 1 0 1 0

0 0 0 1 0 1 0 1 1 0 0 1 1 1

0 1 1 0 1 0 1 0 0 1 1 0 0 0

1 1 1 0 0 1 0 0 1 1 0 0 1 1

T = 1 0 0 1 0 1 0 0 0 0 1 1 1 1

0 1 1 1 0 0 1 1 1 0 0 1 0 0

1 1 0 1 0 0 1 0 1 0 1 0 0 0

0 0 1 0 1 1 0 1 1 1 0 0 1 1

1 1 0 0 0 1 0 1 0 1 1 0 1 1

1 0 1 1 0 1 0 0 0 1 1 0 0 1

Зададимся

Приведем исходный код программы по расчету мер сходства, различия и включения, а также определения оригинального решения:

clc;

clear;

close all;

T= [1 1 0 1 1 0 1 1 0 0 1 0 1 0;

0 0 0 1 0 1 0 1 1 0 0 1 1 1;

0 1 1 0 1 0 1 0 0 1 1 0 0 0;

1 1 1 0 0 1 0 0 1 1 0 0 1 1;

1 0 0 1 0 1 0 0 0 0 1 1 1 1;

0 1 1 1 0 0 1 1 1 0 0 1 0 0;

1 1 0 1 0 0 1 0 1 0 1 0 0 0;

0 0 1 0 1 1 0 1 1 1 0 0 1 1;

1 1 0 0 0 1 0 1 0 1 1 0 1 1;

1 0 1 1 0 1 0 0 0 1 1 0 0 1]

C=[];

deltaC=0.6

for(i=1:1:14)

for(j=1:1:14)

mtt=0;

mt1=0;

mt2=0;

for(k=1:1:10)

mtt=mtt+T(k,i)*T(k,j);

mt1=mt1+T(k,i);

mt2=mt2+T(k,j);

end

%Мера включения

C(1,i,j)=mtt/mt2;

if(C(1,i,j)>=deltaC)

C(1,i,j)=1;

else

C(1,i,j)=0;

end

%Мера сходства Чекановского-Серенсена

temp_mtt=mtt*2;

C(2,i,j)=temp_mtt/(mt1+mt2);

if(C(2,i,j)>=deltaC)

C(2,i,j)=1;

else

C(2,i,j)=0;

end

%Мера сходства Сокала-Снита

C(3,i,j)=4*mtt/(mt1+mt2+2*mtt);

if(C(3,i,j)>=deltaC)

C(3,i,j)=1;

else

C(3,i,j)=0;

end

%Мера сходства Андреева

C(4,i,j)=mtt/(2*mt1+2*mt2-3*mtt);

if(C(4,i,j)>=deltaC)

C(4,i,j)=1;

else

C(4,i,j)=0;

end

%Мера сходства Кульчинского

C(5,i,j)=0.5*mtt*(1/mt1+1/mt2);

if(C(5,i,j)>=deltaC)

C(5,i,j)=1;

else

C(5,i,j)=0;

end

%Мера различия

C(6,i,j)=mt1+mt2-2*mtt;

if(C(6,i,j)>=deltaC)

C(6,i,j)=1;

else

C(6,i,j)=0;

end

end

end

S=char('Мера включения','Мера сходства Чеконовского-Серенсена :','Мера сходства Сокала-Снита :','Мера сходства Андреева :','Мера сходства Кульчинского :','Мера различия :');

for(z=1:1:6)

K=[0 0 0 0 0 0 0 0 0 0 0 0 0 0];

disp(S(z,:));

for(i=1:1:14)

for(j=1:1:14)

H(i,j)=C(z,i,j);

end

end

disp(H);

MAX=0;

for(i=1:1:14)

for(j=1:1:14)

K(i)=K(i)+H(i,j);

end

if(MAX<K(i))

MAX=K(i);

end

end

disp('K=');disp(K);

disp('Оригинальные решения : ')

for(i=1:1:14)

if(MAX==K(i))

disp(i);

end

end

end

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.