TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Fundamentos da Inteligência Artificial

Por:   •  28/10/2025  •  Relatório de pesquisa  •  564 Palavras (3 Páginas)  •  14 Visualizações

Página 1 de 3

Relatório de Aula Prática - Fundamentos da Inteligência Artificial

Nome: Brayan Fagunde

Curso: Engenharia de Software

Instituição: Universidade Anhanguera

Ano: 2025


Parte 1 – Lógica Nebulosa em Sistemas Especialistas

Objetivo

Aplicar a lógica nebulosa para resolver um problema prático de cálculo de gorjeta, comparando com um método tradicional sem uso de lógica fuzzy.

Metodologia

Inicialmente, foi desenvolvido um programa em Octave que calcula a gorjeta com base em dois parâmetros: qualidade da comida e qualidade do serviço. Posteriormente, o mesmo problema foi resolvido utilizando a Lógica Nebulosa através do pacote Fuzzy Logic Toolkit do GNU Octave.

Código sem Lógica Nebulosa


% Cálculo de gorjeta sem lógica nebulosa
comida = input('Qualidade da comida (0 a 10): ');
servico = input('Qualidade do serviço (0 a 10): ');
media = (comida + servico) / 2;
if media <= 3
   gorjeta = 5;
elseif media <= 7
   gorjeta = 10;
else
   gorjeta = 15;
endif
printf("Gorjeta sugerida: %.2f%%\n", gorjeta);

Código com Lógica Nebulosa


pkg load fuzzy-logic-toolkit
fis = newfis('Gorjeta');
fis = addvar(fis, 'input', 'comida', [0 10]);
fis = addmf(fis, 'input', 1, 'ruim', 'trapmf', [0 0 3 5]);
fis = addmf(fis, 'input', 1, 'boa', 'trapmf', [3 5 7 9]);
fis = addmf(fis, 'input', 1, 'excelente', 'trapmf', [7 9 10 10]);
fis = addvar(fis, 'input', 'servico', [0 10]);
fis = addmf(fis, 'input', 2, 'ruim', 'trapmf', [0 0 3 5]);
fis = addmf(fis, 'input', 2, 'bom', 'trapmf', [3 5 7 9]);
fis = addmf(fis, 'input', 2, 'excelente', 'trapmf', [7 9 10 10]);
fis = addvar(fis, 'output', 'gorjeta', [0 20]);
fis = addmf(fis, 'output', 1, 'baixa', 'trimf', [0 0 10]);
fis = addmf(fis, 'output', 1, 'media', 'trimf', [5 10 15]);
fis = addmf(fis, 'output', 1, 'alta', 'trimf', [10 20 20]);
ruleList = [1 1 1 1 1; 2 2 2 1 1; 3 3 3 1 1; 2 3 3 1 1; 3 2 3 1 1;];
fis = addrule(fis, ruleList);
comida = 8;
servico = 9;
resultado = evalfis([comida servico], fis);
printf("Comida: %.1f, Serviço: %.1f -> Gorjeta: %.2f%%\n", comida, servico, resultado);

Resultados

A solução sem lógica nebulosa apresentou resultados estáticos, enquanto a aplicação do modelo fuzzy permitiu transições suaves entre níveis de gorjeta. Por exemplo, para comida = 8 e serviço = 9, a gorjeta obtida foi aproximadamente 14,2%, evidenciando uma decisão mais realista e flexível.

Conclusão

A aplicação da Lógica Nebulosa demonstrou ser mais adequada para situações em que há imprecisão ou subjetividade nas avaliações, oferecendo respostas mais próximas ao comportamento humano.


Parte 2 – Algoritmos de Redes Neurais

Objetivo

Compreender e implementar uma Rede Neural Artificial simples de uma camada usando Python para classificação binária, aplicando o conceito de aprendizado supervisionado.

Metodologia

Foi implementado um modelo de rede neural utilizando a biblioteca NumPy. A rede contém uma camada de entrada, uma camada de saída e utiliza a função de ativação sigmoide. O treinamento foi realizado por 10.000 iterações ajustando os pesos com base no erro calculado.

Código da Rede Neural


import numpy as np
def sigmoid(x): return 1 / (1 + np.exp(-x))
def sigmoid_derivative(x): return x * (1 - x)
X = np.array([[0,0],[0,1],[1,0],[1,1]])
y = np.array([[0],[1],[1],[0]])
np.random.seed(1)
pesos = 2 * np.random.random((2,1)) - 1
for i in range(10000):
   entrada = X
   saida = sigmoid(np.dot(entrada, pesos))
   erro = y - saida
   ajuste = erro * sigmoid_derivative(saida)
   pesos += np.dot(entrada.T, ajuste)
print("Pesos finais:", pesos)
print("Saída:", saida)

...

Baixar como (para membros premium)  txt (4.1 Kb)   pdf (89.5 Kb)   docx (8.4 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com