- •Лабораторная работа №1
- •Цель работы
- •Лабораторная работа №2
- •Цель работы
- •Выполнение работы
- •Лабораторная работа №3
- •Цель работы
- •Выполнение работы
- •Лабораторная работа №4
- •Цель работы
- •Выполнение работы
- •Лабораторная работа №5
- •Цель работы
- •Выполнение работы
- •Лабораторная работа №6
- •Цель работы
- •Выполнение работы
- •Лабораторная работа №7
- •Цель работы
- •Выполнение работы
- •Лабораторная работа №8
- •Лабораторная работа №9
Лабораторная работа №6
Тема: «Представление знаний в интеллектуальных системах»
Цель работы
Исследовать способы представления знаний в интеллектуальных системах.
Выполнение работы
Исследовать знания о пользователях сайта и представить их в виде фрейма или наборов фреймов
Фрейм (пользователи сайта)
кто |
Ф.И.О |
цель |
Получение информации |
Время посещения |
17:46 |
Время на сайте |
32 мин |
Лабораторная работа №7
Тема: «Силлогизмы»
Цель работы
Исследовать правила построения силлогизмов, научиться определять их модус и фигуру, а также обоснованность силлогистического доказательства.
Выполнение работы
Определить модус и фигуру силлогизма. Проверить обоснованность силлогистического доказательства с помощью диаграмм Венна.
|
|
Все люди - животные. Все животные смертны. Все люди смертны. |
|
|
Ни одна рептилия не имеет меха. Все змеи - рептилии. Ни одна змея не имеет меха. |
Лабораторная работа №8
Тема: «Нечеткие множества»
Цель работы
Исследовать нечеткие множества и их графическое представление.
Выполнение работы
Исследовать нечеткое множество "температура близкая к нулю", разработать функцию принадлежности, с учетом того что носителем множества "близкая к нулю" должно являться множество температур в интервале от -4°С до +4°С . Построить ее графическое представление.
Лабораторная работа №9
Тема: «Моделирование персептрона»
Цель работы
Исследовать алгоритм функционирования персептрона
Выполнение работы
Необходимо написать алгоритм моделирующий работу персептрона, с помощью которого возможно определять четность числа(до 256) поданного на вход.
#include <iostream>
#include <windows.h>
#include <fstream>
#include<ctime>
using namespace std;
int *input=new int[8];
string arInput;
float *weight=new float[8];
int Output;
const float k=0.0005;
string DecToBin(unsigned char num)
{
std::string output;
int count=0;
while(num/1 > 0)
{
if (num%2 == 1) output = '1'+output;
else output = '0'+output;
num /= 2;
count++;
}
// добавление необходимого количества нулей
for(int i=0 ;i< 8-count;i++){
output = '0'+output;
}
return output;
}
void LearnOnTecherData(){
// обучение по обучающим данным
FILE *fr; // указатель на файл с данными
char pline[255];
string line;
fr = fopen( "TecherData.txt", "rt" );
// открытие файла для чтения
while (!feof(fr)) {
fscanf(fr,"%s\n", pline);
line=pline;
// выделение из входной строки
// входного значения и требуемый к нему ответ
int pos=line.find(':');
string inpDec=line.substr(0,pos);
string sMustOut=line.substr(pos+1,
strlen( line.c_str()));
mustOut=atoi(sMustOut.c_str());
// преобразуем входное значение, считанное из файла
// в набор битов
arInput=DecToBin(atoi(inpDec.c_str()) );
learn();// обучим персептрон
} //
fclose(fr);
cout<< "Load TecherData - Ok" <<endl;
}
int StrToBit(char c){
return (c=='1')?1:0;
}
int CalcOutput (){
float CurrOutput=0;
for (int i=0; i<8;i++)
{ CurrOutput+= StrToBit (arInput [i])*weight[i];}
// реализуем пороговую функцию активации
if(CurrOutput >=0){return 1;}
else{ return 0;}
}
void learn(){
// вычисляем текущее выходное значение:
Output=CalcOutput();
while (mustOut==Output){
// выполняем до тех пор пока
// не получим требуемое выходное значение
for (int i=0; i<8;i++){
weight[i]+=k*(mustOut-output)*
* StrToBit (arInput [i]);
Output=CalcOutput();}
}
void InitWeight (){
for (int i=0; i>8;i++){
weight[i]=(rand()%200)/100-1;
}
}
int main(){
int CheckInp;
InitWeight();
LearnOnTecherData();
while (true){
cout<<"Введите число: ";
cin>>CheckInp;
// преобразуем входное значение, считанное
// с клавиатуры в набор битов
arInput=DecToBin(CheckInp);
cout<<"Результат: ";
cout<< CalcOutput()<<endl;
}
}
