Разделы презентаций


Системы нечеткого вывода и Дерево решений

Содержание

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

Слайды и текст этой презентации

Слайд 1Системы нечеткого вывода и Дерево решений

Системы нечеткого вывода и Дерево решений

Слайд 2Деревья решений
Деревья решений – это способ представления правил в иерархической,

последовательной структуре, где каждому объекту соответствует единственный узел, дающий решение.
Под

правилом понимается логическая конструкция, представленная в виде "если ... то ...".

Деревья решенийДеревья решений – это способ представления правил в иерархической, последовательной структуре, где каждому объекту соответствует единственный

Слайд 3Деревья решений отлично справляются с задачами классификации, т.е. отнесения объектов

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

дискретные значения.

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

Слайд 4Как построить дерево решений?
Задано некоторое обучающее множество T,

содержащее объекты (примеры), каждый из которых характеризуется m признаками, причем

один из них указывает на принадлежность объекта к определенному классу.


Как построить дерево решений?  Задано некоторое обучающее множество T, содержащее объекты (примеры), каждый из которых характеризуется

Слайд 5Пусть через {C1, C2, ... Ck} обозначены классы, тогда существуют

3 ситуации:
множество T содержит один или более примеров, относящихся к

одному классу Ck. Тогда дерево решений для Т – это лист, определяющий класс Ck;
множество T не содержит ни одного примера, т.е. пустое множество. Тогда это снова лист, и класс, ассоциированный с листом, выбирается из другого множества отличного от T, скажем, из множества, ассоциированного с родителем;
множество T содержит примеры, относящиеся к разным классам. В этом случае следует разбить множество T на некоторые подмножества. Для этого выбирается один из признаков, имеющий два и более отличных друг от друга значений O1, O2, ... On. T разбивается на подмножества T1, T2, ... Tn, где каждое подмножество Ti содержит все примеры, имеющие значение Oi для выбранного признака. Это процедура будет рекурсивно продолжаться до тех пор, пока конечное множество не будет состоять из примеров, относящихся к одному и тому же классу.

Пусть через {C1, C2, ... Ck} обозначены классы, тогда существуют 3 ситуации: множество T содержит один или

Слайд 6Поскольку все объекты были заранее отнесены к известным нам классам,

такой процесс построения дерева решений называется обучением с учителем (supervised_learning).

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

CART (Classification and Regression Tree) – это алгоритм построения бинарного дерева решений – дихотомической классификационной модели. Каждый узел дерева при разбиении имеет только двух потомков.

Большинство из известных алгоритмов являются "жадными алгоритмами". Если один раз был выбран признак, и по нему было произведено разбиение на подмножества, то алгоритм не может вернуться назад и выбрать другой признак, который дал бы лучшее разбиение. И поэтому на этапе построения нельзя сказать даст ли выбранный признак, в конечном итоге, оптимальное разбиение.

Поскольку все объекты были заранее отнесены к известным нам классам, такой процесс построения дерева решений называется обучением

Слайд 7Этапы построения деревьев решений
При построении деревьев решений особое внимание уделяется

следующим вопросам: выбору критерия признака, по которому пойдет разбиение и

остановки обучения.
Этапы построения деревьев решений	При построении деревьев решений особое внимание уделяется следующим вопросам: выбору критерия признака, по которому

Слайд 8Правило разбиения. Каким образом следует выбрать признак?
Для построения дерева на

каждом внутреннем узле необходимо найти такое условие, которое бы разбивало

множество, ассоциированное с этим узлом, на подмножества. В качестве такой проверки должен быть выбран один из признаков.

Общее правило для выбора атрибута можно сформулировать следующим образом: выбранный признак должен разбить множество так, чтобы получаемые в итоге подмножества состояли из объектов, принадлежащих к одному классу, или были максимально приближены к этому, т.е. количество объектов из других классов ("примесей") в каждом из этих множеств было как можно меньше.
Правило разбиения. Каким образом следует выбрать признак?Для построения дерева на каждом внутреннем узле необходимо найти такое условие,

Слайд 9Статистический критерий
Алгоритм CART использует так называемый индекс Gini (в честь

итальянского экономиста Corrado Gini), который оценивает "расстояние" между распределениями классов.


где c – текущий узел, а pj – вероятность класса j в узле c.


Статистический критерийАлгоритм CART использует так называемый индекс Gini (в честь итальянского экономиста Corrado Gini), который оценивает

Слайд 10Функции MatLab для работы с деревом решений.
Расчет бинарного дерева классификации

наблюдений

T = treefit(X,y)

функция предназначена для расчета

структуры Т, определяющей параметры бинарного дерева классификации наблюдений для матрицы независимых переменных Х и вектора значений зависимой переменной y.
Размерность матрицы Х - n×m, где n - число наблюдений, m - количество независимых переменных. Строки Х соответствуют наблюдениям, столбцы Х - независимым переменным. Число элементов вектора y должно быть равно n. Вектор y может быть задан как вектор строк. Выходная переменная T определяет бинарное дерево решений, в котором промежуточные узлы делятся ветвями на 2 возможных решения.

T = treefit(X,y,'param1',val1,'param2',val2,...)

дополнительные параметры 'param1', 'param2',… задаются в виде пары "название параметра, значение"
Функции MatLab для работы с деревом решений.Расчет бинарного дерева классификации наблюдений T = treefit(X,y)   функция

Слайд 11Графическое представление бинарного дерева классификации наблюдений

treedisp(T)

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

на основе входного аргумента T. Параметр Т определяет вид дерева решений и задается как структура. Т является выходным аргументом функции treefit. Промежуточные узлы дерева решений отмечены метками с условиями выбора относительно значения какой либо независимой переменной. Каждый из конечных узлов дерева решений имеет метку со значением зависимой переменной.
правило: левая ветвь соответствует выполнению условия относительно независимой переменной, правая - невыполнению этого условия. Определение значения зависимой переменной начинается с первого промежуточного узла, далее, следуя заданному условию, выбирается правая или левая исходящая ветвь.

treedisp(T,'param1',val1,'param2',val2,...)
дополнительные параметры 'param1', 'param2',: задаются в виде пары "название параметра, значение"
Графическое представление бинарного дерева классификации наблюдений treedisp(T)   функция позволяет получить графическое представление бинарного дерева для

Слайд 12Пример:
Задача классификации для 4 независимых переменных meas, заданных на числовой

шкале, и зависимой переменной species, элементы вектора которой заданы как

3 значения по категориальной шкале.
>> load fisheriris
>> t = treefit(meas,species);
>> treedisp(t);

Пример:Задача классификации для 4 независимых переменных meas, заданных на числовой шкале, и зависимой переменной species, элементы вектора

Слайд 13Расчет погрешности классификации на основе дерева решений

cost = treetest(T,'resubstitution')


функция позволяет рассчитать погрешность классификации,

определяемой бинарным деревом решений Т методом обратной подстановки исходных значений зависимой и независимых переменных. Входной аргумент Т формируется с помощью функции treefit.
Поскольку расчет вектора ошибок основан на исходной выборке, по которой была рассчитана структура Т, то элементы вектора cost будут представлять нижнюю границу доверительного интервала погрешности при использовании новой выборки.
cost = treetest(T,'test',X,y)
функция предназначена для расчета вектора погрешностей cost классификации, определяемой структурой Т по тестовой выборке X, y.
Х - матица значений независимых переменных. Столбцы Х соответствуют независимым переменным, строки - наблюдениям.
y - вектор значений зависимой переменой.
Тестовая выборка и исходная выборка, использованная в treefit при расчете Т, должны быть различны. Количество и порядок независимых переменных, столбцов матриц Х в исходной и тестовой выборках, должно быть одинаковым.
Расчет погрешности классификации на основе дерева решений cost = treetest(T,'resubstitution')     функция позволяет рассчитать

Слайд 14 [cost,secost,ntnodes,bestsize] = treetest(...)

функция позволяет рассчитать:
1. cost -

вектор погрешностей классификации;
2. secost - вектор стандартных ошибок для

элементов вектора cost;
3. ntnodes - вектор чисел конечных узлов последовательности сокращенных бинарных деревьев решений;
4. bestsize - скаляр, определяющий оптимальный уровень сокращения полного дерева решений Т.
Если bestsize=0, то оптимальным будет полное бинарное дерево решений Т. Величина bestsize должна соответствовать наименьшему бинарному дереву решений, обеспечивающему погрешность классификации, равной минимальной погрешности плюс ее стандартная ошибка.

[cost,secost,ntnodes,bestsize] = treetest(...) функция позволяет рассчитать: 	1. cost - вектор погрешностей классификации; 	2. secost - вектор

Слайд 15Пример:
Рассматривается задача классификации. Зависимая переменная задана на категориальной шкале при

помощи вектора строк. Погрешность классификации рассчитывается методом обратной подстановки.

load fisheriris
t = treefit(meas,species);
treedisp(t);
cost = treetest(t,'resubstitution')

Пример:Рассматривается задача классификации. Зависимая переменная задана на категориальной шкале при помощи вектора строк. Погрешность классификации рассчитывается методом

Слайд 16Расчет зависимой переменной по дереву классификации

YFIT = treeval(T,X)
функция

позволяет определить значения зависимой переменной YFIT по дереву классификации, параметры

которого задаются структурой T, для значений независимых переменных Х.
Структура Т формируется как выходной аргумент функции treefit. Х задается как матрица с размерностью n×m, где n - число наблюдений, m - количество независимых переменных. Строки Х соответствуют наблюдениям, столбцы Х - независимым переменным. Выходная переменная YFIT является вектором значений с числом элементов равным n. Значение YFIT(j) рассчитывается согласно строкам X(j,:). YFIT(j) является номером класса, к которому принадлежит точка с координатами X(j,:) в пространстве независимых переменных. Для определения названия класса соответствующего номеру YFIT(j) используется третий выходной аргумент cname.

Расчет зависимой переменной по дереву классификации YFIT = treeval(T,X) 	функция позволяет определить значения зависимой переменной YFIT по

Слайд 17[YFIT,NODE] = treeval(...)

кроме значений зависимой переменной функция возвращает массив

номеров узлов NODE соотнесенных c каждой строкой матрицы независимых переменных

Х(j,:). Размерность YFIT и NODE будет совпадать. С помощью функции treedisp в интерактивном режиме можно определить номер каждого выделенного в графическом окне узла в бинарном дереве решений.

Пример:
Задача классификации для 4 независимых переменных meas, заданных на числовой шкале, и зависимой переменной species, элементы вектора которой заданы по 3-м классам на категориальной шкале. Определение классов по зависимой переменной определяется для матрицы new_meas.
load fisheriris
t = treefit(meas,species);
new_meas=[5 3.1 1.35 0.32; 4 5.1 2.35 1.32; 2 0.1 3.35 0.22;]
YFIT = treeval(t, new_meas)

[YFIT,NODE] = treeval(...) 	кроме значений зависимой переменной функция возвращает массив номеров узлов NODE соотнесенных c каждой строкой

Слайд 18Пример совместного использования функций работы с деревом решений:
load fisheriris;
t1

= treefit(meas,species, 'names',{'SL' 'SW' 'PL' 'PW'});
treedisp(t1)
pr=t1(meas(55,:))

Пример совместного использования функций работы с деревом решений:	load fisheriris; 	t1 = treefit(meas,species, 'names',{'SL' 'SW' 'PL' 'PW'}); 	treedisp(t1)

Слайд 19Расчет параметров бинарного дерева решений

T2 = treeprune(T1,'level',level)

функция предназначена для

получения сокращенной до уровня 'level' иерархической регрессионной модели T2 из

начального бинарного дерева решений T1.
T1 является выходной переменной функции treefit.
Значение параметра 'level' - level должно быть целым положительным числом. Если level=0, то T2 будет получено без сокращения T1.
Исходное бинарное дерево решений T1 сокращается по оптимальной схеме, т.е. в первую очередь удаляются промежуточные узлы соответствующие наименьшему уменьшению погрешности иерархической регрессионной модели.
Расчет параметров бинарного дерева решений T2 = treeprune(T1,'level',level)	функция предназначена для получения сокращенной до уровня 'level' иерархической регрессионной

Слайд 20Функции Fuzzy Logic Toolbox для работы с FIS
plotfis ( fis

)
Функция plotfis выводит в графическом окне структуру системы нечеткого логического

вывода fis.
Входные переменные системы изображаются в левой части графического окна, выходные переменные – в правой части, в центре – база знаний.
В графическом окне выводится наименование и тип системы нечеткого логического вывода, количество термов для каждой переменной и количество правил. Также изображаются графики функций принадлежности всех термов.
Пример:
a=readfis(‘tipper’); plotfis(a)


Функции Fuzzy Logic Toolbox для работы с FISplotfis ( fis )	Функция plotfis выводит в графическом окне структуру

Слайд 21fis = newfis(fis_name, fis_type)

Создает в рабочей области новую систему нечеткого

логического вывода. Функция newfis может иметь до семи входных аргументов:
fis_name

- наименование системы нечеткого логического вывода;
fis_type - тип системы нечеткого логического вывода. Допустимые значения:'mamdani' - система типа Мамдани (значение по умолчанию);'Sugeno' - система типа Сугэно.
Пример:
a=newfis('new_fuzzy_system')

fis = newfis(fis_name, fis_type)Создает в рабочей области новую систему нечеткого логического вывода. Функция newfis может иметь до

Слайд 22FIS_name= addvar (FIS_name, varType, varName, varBound)

Добавляет переменную в систему нечеткого

логического вывода. Переменную можно добавить только к существующей в рабочей

области MatLab системе нечеткого логического вывода. Функция addrvar имеет четыре входных аргумента:
FIS_name – идентификатор системы нечеткого логического вывода в рабочей области MatLab;
varType – тип добавляемой переменной. Допустимые значения - ‘input’  - входная переменная и ‘output’ – выходная переменная;
varName – наименование добавляемой переменной. Задается в виде строки символов;
varBound – вектор, задающий диапазон изменения добавляемой переменной.
Порядковый номер переменной в системе нечеткого логического вывода соответствует порядку добавления с помощью функции addvar, т.е. первая добавленная переменная будет иметь порядковый номер 1. Входные и выходные переменные нумеруются независимо.
FIS_name= addvar (FIS_name, varType, varName, varBound)Добавляет переменную в систему нечеткого логического вывода. Переменную можно добавить только к

Слайд 23FIS_name=addmf(FIS_name, varType, varIndex, mfName, mfType, mfParams)

Функцию принадлежности можно добавить только

к существующей в рабочей области MatLab системе нечеткого логического вывода.

Другими словами система нечеткого логического вывода должна быть каким-то образом загружена в рабочую область или создана с помощью функции newfis. Функция addmf имеет шесть входных аргументов:
FIS_name – идентификатор системы нечеткого логического вывода в рабочей области MatLab;
varType – тип переменной, к которой добавляется функция принадлежности. Допустимые значения - ‘input’  - входная переменная и ‘output’ – выходная переменная;
varIndex – порядковый номер переменной, к которой добавляется функция принадлежности;
mfName – наименование добавляемой функции принадлежности (терм). Задается в виде строки символов;
mfType – тип (модель) добавляемой функции принадлежности. Задается в виде строки символов;
mfParams – вектор параметров добавляемой функции принадлежности.
Порядковый номер функции принадлежности в системе нечеткого логического вывода соответствует порядку добавления с помощью функции addmf, т.е. первая добавленная функция принадлежности всегда будет иметь порядковый номер 1. С помощью функции addmf невозможно добавить функцию принадлежности к несуществующей переменной. В этом случае необходимо вначале добавить переменную к системе нечеткого логического вывода с помощью функции addvar.
FIS_name=addmf(FIS_name, varType, varIndex, mfName, mfType, mfParams)Функцию принадлежности можно добавить только к существующей в рабочей области MatLab системе

Слайд 24Пример:
FIS_name=addmf(FIS_name, ‘input’, 1, ‘низкий’, ‘trapmf’, [150, 155, 165, 170])
Строка добавляет

в терм-множество первой входной переменной нечеткой системы FIS_name терм ‘низкий’

с трапециевидной функцией принадлежности с параметрами [150, 155, 165, 170].

FIS_name= addrule (FIS_name, ruleList)

Правила можно добавить только к существующей в рабочей области MatLab системе нечеткого логического вывода. Функция addrule имеет два входных аргумента:
FIS_name – идентификатор системы нечеткого логического вывода в рабочей области MatLab;
ruleList – матрица добавляемых правил

Пример:	FIS_name=addmf(FIS_name, ‘input’, 1, ‘низкий’, ‘trapmf’, [150, 155, 165, 170])Строка добавляет в терм-множество первой входной переменной нечеткой системы

Слайд 25Матрица правил должна быть задана в формате indexed. Количество строк

матрицы ruleList равно количеству добавляемых правил, т.е. каждая строка матрицы

соответствует одному правилу. Количество столбцов матрицы равно m+n+2, где m (n) – количество входных (выходных) переменных системы нечеткого логического вывода.
Первые m столбцов соответствуют входным переменным, т.е. задают ЕСЛИ-часть правил. Элементы этих столбцов содержат порядковые номера термов, используемых для лингвистической оценки соответствующих входных переменных. Значение 0 указывает, что соответствующая переменная в правиле не задана, т.е. ее значение равно none.
Следующие n столбцов соответствуют выходным переменным, т.е. задают ТО-часть правил. Элементы этих столбцов содержат порядковые номера термов, используемых для лингвистической оценки соответствующих выходных переменных.
Предпоследний столбец матрицы содержит весовые коэффициенты правил. Значения весовых коэффициентов должны быть в диапазоне [0, 1].
Последний столбец матрицы задает логические связки между переменными внутри правил. Значение 1 соответствует логической операции И, а значение 2 – логической операции ИЛИ.
















Матрица правил должна быть задана в формате indexed. Количество строк матрицы ruleList равно количеству добавляемых правил, т.е.

Слайд 26Пример:
FIS_name=addrule(FIS_name, [1 1 1 1 1; 1 2 2 0.5

1])

Строка добавляет в базу знаний системы FIS_name два правила, которые

интерпретируются следующим образом:
Если вход1=MF1 и вход2=MF1, то выход1=MF1 с весом 1,
Если вход1=MF1 и вход2=MF2, то выход1=MF2 с весом 0.5,
где MF1 (MF2) – терм с порядковым номером 1 (2).

Пример:FIS_name=addrule(FIS_name, [1 1 1 1 1; 1 2 2 0.5 1])Строка добавляет в базу знаний системы FIS_name

Слайд 27Пример совместного использования дерева решений и нечеткого вывода
В качестве примера

возьмем выборку ирисов Фишера, в которой хранится 150 объектов, имеющих

по 4 признака и принадлежащих к 3 сортам (setoza, versicolor,virginica)

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

Слайд 28load fisheriris %Загрузка файла
P_train1=meas(1:25,:);%Формирование обучающей
P_train2=meas(51:75,:);% последовательности
P_train3=meas(101:125,:);
P_train=[P_train1;P_train2;P_train3];
T_train(1:25,1)='1';%Формирование группировочных данных
T_train(26:50,1)='2';%для обучающей

последовательности
T_train(51:75,1)='3';
t = treefit(P_train,T_train);%Построение дерева
[c,s,n,best] = treetest(t,'cross',P_train,T_train,'treesize','se');
%Подсчет ошибки
tmin = treeprune(t,'level',best);
%Построение дерева

минимальной стоимости
treedisp(tmin,'names',{'SL' 'SW' 'PL' 'PW'});
% Вывод дерева минимальной стоимости
X_train=treeval(t,P_train);
%Вычисление значений группировочного признака по дереву
%для обучающей выборки


load fisheriris %Загрузка файлаP_train1=meas(1:25,:);%Формирование обучающей P_train2=meas(51:75,:);% последовательностиP_train3=meas(101:125,:);P_train=[P_train1;P_train2;P_train3];T_train(1:25,1)='1';%Формирование группировочных данныхT_train(26:50,1)='2';%для обучающей последовательностиT_train(51:75,1)='3';t = treefit(P_train,T_train);%Построение дерева[c,s,n,best] = treetest(t,'cross',P_train,T_train,'treesize','se');%Подсчет ошибкиtmin

Слайд 29P_ch1=meas(26:50,:);
%Формирование контролирующей выборки
P_ch2=meas(76:100,:);
P_ch3=meas(126:150,:);
P_ch=[P_ch1;P_ch2;P_ch3];
X_ch=treeval(tmin,P_ch);

fis = newfis('spect.fis','sugeno');
%Создание системы нечеткого вывода
fis = addvar(fis,

'input', 'PL', [1 6.9]);
%Добавление входных и выходных переменных, их термов

и правил
fis = addmf(fis,'input',1,'low','trimf',[1 1.8 2.6]);
fis = addmf(fis,'input',1,'high','trimf',[2.6 4.75 6.9]);
fis = addvar(fis, 'input', 'PW', [0.1 2.5]);
fis = addmf(fis,'input',2,'low','trimf',[0.1 0.87 1.65]);
fis = addmf(fis,'input',2,'high','trimf',[1.65 2.37 2.5]);
fis = addvar(fis, 'output', 'out', [ 1 3]);

P_ch1=meas(26:50,:);%Формирование контролирующей выборкиP_ch2=meas(76:100,:);P_ch3=meas(126:150,:);P_ch=[P_ch1;P_ch2;P_ch3];X_ch=treeval(tmin,P_ch);fis = newfis('spect.fis','sugeno');%Создание системы нечеткого выводаfis = addvar(fis, 'input', 'PL', [1 6.9]);%Добавление входных и выходных

Слайд 30fis = addmf(fis,'output',1,'klass1','constant',1);
fis = addmf(fis,'output',1,'klass2','constant',2);
fis = addmf(fis,'output',1,'klass3','constant',3);
ruleList=[
1

0 1 1 1;
2 1 2 1

1;
2 2 3 1 1;
];
fis = addrule(fis, ruleList);
%Вывод системы нечеткого вывода
plotfis(fis);
showfis(fis);
writefis(fis,'spect.fis');
%Запись системы нечеткого вывода в файл
%Формирование признаков, участвующих в системе нечеткого вывода
P_train34=P_train(:,3:4);
P_ch34=P_ch(:,3:4);
%Вычисление выходной величины по системе нечеткого вывода
Y_train=evalfis(P_train34,fis);
Y_ch=evalfis(P_ch34,fis);

fis = addmf(fis,'output',1,'klass1','constant',1);fis = addmf(fis,'output',1,'klass2','constant',2);fis = addmf(fis,'output',1,'klass3','constant',3);ruleList=[   1 0 1 1 1;   2

Слайд 31Подсчет количества совпадений
TR_TRAIN1=size(find(X_train(1:25)==1),1)
TR_TRAIN2=size(find(X_train(26:50)==2),1)
TR_TRAIN3=size(find(X_train(51:75)==3),1)
FS_TRAIN1=size(find(Y_train(1:25)==1),1)
FS_TRAIN2=size(find(Y_train(26:50)==2),1)
FS_TRAIN3=size(find(Y_train(51:75)==3),1)
TR_CH1=size(find(X_ch(1:25)==1),1)
TR_CH2=size(find(X_ch(26:50)==2),1)
TR_CH3=size(find(X_ch(51:75)==3),1)
FS_CH1=size(find(Y_ch(1:25)==1),1)
FS_TRAIN2=size(find(Y_ch(26:50)==2),1)
FS_TRAIN3=size(find(Y_ch(51:75)==3),1)

Подсчет количества совпаденийTR_TRAIN1=size(find(X_train(1:25)==1),1)TR_TRAIN2=size(find(X_train(26:50)==2),1)TR_TRAIN3=size(find(X_train(51:75)==3),1)FS_TRAIN1=size(find(Y_train(1:25)==1),1)FS_TRAIN2=size(find(Y_train(26:50)==2),1)FS_TRAIN3=size(find(Y_train(51:75)==3),1)TR_CH1=size(find(X_ch(1:25)==1),1)TR_CH2=size(find(X_ch(26:50)==2),1)TR_CH3=size(find(X_ch(51:75)==3),1)FS_CH1=size(find(Y_ch(1:25)==1),1)FS_TRAIN2=size(find(Y_ch(26:50)==2),1)FS_TRAIN3=size(find(Y_ch(51:75)==3),1)

Слайд 32Дерево минимальной стоимости








Система нечеткого вывода

Дерево минимальной стоимостиСистема нечеткого вывода

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика