Algoritmo de hebb

1 resposta
C
pessoal no esquema eh o seguinte preciso desenvolver uma aplicação em java para Inteligencia artificial nesta aplicação tenho q usar o algoritmo de Hebb tipo preciso criar uma matriz 5X5 de String q represente a letra X do alfabeto e outra q represente a lera O mais ou menos assim:

#…# .###.

.#.#. #…#

#… #…#

.#.#. #…#

#…# .###.

essas são as formas das letras, depois atribuir o valor 1 para cada #…

e o valor -1 para cada .(ponto)

depois criar uma outra matriz de teste de tamanho igual para verificar se ela eh mais parecida com o X ou com o O, se digitado qq outro caracter a aplicação deve reconhe-lo como 0(zero) jah tenho o codigo quase pronto preciso de ajuda pra melhorar-lo e encrementa-lo

codio:

import javax.swing.*;

import java.awt.Container;
public class Projeto extends JApplet {

public static void main(String[] args) {

int cont=0;

int cont1=0;
//Cria Vetor X com posicoes definidas.

String X[][] = { { “#”, ., ., ., “#” },

{ ., “#”, ., “#”, . }, { ., ., “#”, ., . },

{ ., “#”, ., “#”, . }, { “#”, ., ., ., “#” } };

//Cria Vetor Auxiliar para X.

int Aux1[][] = new int[5][5];

//Cria Vetor O com posicoes definidas.

String O[][] = { { ., “#”, “#”, “#”, . },

{ “#”, ., ., ., “#” }, { “#”, ., ., ., “#” },

{ “#”, ., ., ., “#” }, { ., “#”, “#”, “#”, . } };

//Cria Vetor Auxiliar para O.

int Aux2[][] = new int[5][5];

//Cria Vetor de Teste.

String Teste[][] = new String[5][5];

//Cria Vetor Auxiliar de Teste.

int Aux3[][] = new int[5][5];
//Imprime saida Vetor X em uma caixa de dialogo 5x5.

String SaidaX = “”;

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {
SaidaX = SaidaX + " " + X[i][j];

}

SaidaX = SaidaX + “\n;

}
//Imprime saida Vetor O em uma caixa de dialogo 5x5.

String SaidaO = “”;

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

SaidaO = SaidaO + " " + O[i][j];

}

SaidaO = SaidaO + “\n;

}
for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

if (X[i][j].equals("#")) {

Aux1[i][j] = 1;

}else{

if(X[i][j].equals(".")) {

Aux1[i][j] = -1;

} else {

Aux1[i][j] = 0;

}

}

}

}

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

if (O[i][j].equals("#")) {

Aux2[i][j] = 1;

} else {

if (O[i][j].equals(".")) {

Aux2[i][j] = -1;

} else {

Aux2[i][j] = 0;

}

}

}

}

String ResultadoX = “”;

for(int i=0;i<5;i++){

for(int j=0;j<5;j++){

ResultadoX=ResultadoX+" “+Aux1[i][j];

}

ResultadoX=ResultadoX+”\n";

}

String ResultadoO = “”;

for(int i=0;i<5;i++){

for(int j=0;j<5;j++){

ResultadoO=ResultadoO+" “+Aux2[i][j];

}

ResultadoO=ResultadoO+”\n";

}

JOptionPane.showMessageDialog(null, “\n + SaidaX);

JOptionPane.showMessageDialog(null, “\n + SaidaO);

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

}

}

for(int i=0;i<5;i++){

for(int j=0;j<5;j++){

}

}

JOptionPane.showMessageDialog(null,"\n “+ResultadoX);

JOptionPane.showMessageDialog(null,”\n "+ResultadoO);
for(int i=0;i<5;i++){

for(int j=0;j<5;j++){

Teste[i][j] = JOptionPane.showInputDialog(Valores para Teste+i+"\n"+j);

}

}

String SaidaTeste="";

for(int i=0;i<5;i++){

for(int j=0;j<5;j++){

SaidaTeste = SaidaTeste + " " + Teste[i][j];

}

SaidaTeste = SaidaTeste + “\n;

}

int j=4;

int cont2=0;

for(int i=0;i<5;i++){

if(Teste[i][i].equals("#")){

cont=cont+1;

}else{

if(Teste[i][j].equals("#")){

cont=cont+1;

}

j=j-1;

}

}

//int y=0;

for(int i=1;i<5;i++){

if((Teste[i][0].equals("#"))||(Teste[i][4].equals("#"))||(Teste[0][i].equals("#"))||(Teste[4][i]).equals("#")){

cont1=cont1+1;

}

//y=y+1;

}
JOptionPane.showMessageDialog(null," "+SaidaTeste);

if(cont>cont1){

JOptionPane.showMessageDialog(null,“Esta letra é mais parecida com X);

}else{

JOptionPane.showMessageDialog(null,“Esta letra é mais parecida com O);

}

System.exit(0);

}

}

se alguem puder analizar e me dar uma luz eu agradeço mto

1 Resposta

Luca

Olá

Bem vindo ao GUJ.

Porque repete a mesma mensagem várias vezes?

[]s
Luca

Criado 3 de outubro de 2006
Ultima resposta 4 de out. de 2006
Respostas 1
Participantes 2