Alguem pode me indicar um exemplo de aplicação java implantado (ou em implantação) usando técnicas de Inteligencia Artificial?
Ex de IA em Java?
23 Respostas
Qual técnica você quer?
Eu tenho algumas implementações que fiz pra matéria de IA da faculdade.
Abraço.
Aqui tem ótimos exemplos de várias arquiteturas de redes neurais artificiais. É uma ótima biblioteca, sendo tão boa quanto a FANN c++.
Agora tem que ler algo sobre RNAs, topologia das redes, perceptron, etc… , senão vai ser complicado trabalhar com isso.
Eu usei o Joone e não gostei. Nunca botei fé nos resultados que ele me retornava.
Se você procurar por problemas clássicos de IA (como 8 Queens), você acha bastante coisa (algumas delas inclusive em Java). Outro problema, como aquele que você tem um quarado e tem que colocar os números na ordem correta e é resolvido com Java é esse.
Abraço.
Estranho, fiz vários testes com o Joone, e não vi nada de anormal nele. Quais foram os testes que você fez com ele ?
Eu usei o Joone e não gostei. Nunca botei fé nos resultados que ele me retornava.Se você procurar por problemas clássicos de IA (como 8 Queens), você acha bastante coisa (algumas delas inclusive em Java). Outro problema, como aquele que você tem um quarado e tem que colocar os números na ordem correta e é resolvido com Java é esse.
Abraço.
Resolvi o problema das 8 rainhas com joone, quando fiz trabalho de IA a muito tempo. Você não deve estar normalizando os dados de entrada, ou está usando uma arquitetura de rede inapropriada para os dados.
O problema das 8 rainhas não precisa ser resolvido com rna, pode ser resolvido com algoritmos genéticos tmb.
Meio que pegando carona no tópico, quanto a IA de jogos de estratégia em java, alguém tem uns links interessantes por aí?
Rapaz, sabe que nunca vi. Mas também não vejo tanta gente desenvolvendo jogos em java para desktop. Normalmente usam c/c++ e allegro.
Aqui tem o link:
Nele você encontra artigos sobre ia. Pode portá-los para java.
Rapaz, sabe que nunca vi. Mas também não vejo tanta gente desenvolvendo jogos em java para desktop. Normalmente usam c/c++ e allegro.
Aqui tem o link:
Nele você encontra artigos sobre ia. Pode portá-los para java.
Sim, conheço o allegro e já desnvolvi alguns jogos com ele (inclusive fiquei em segundo lugar no speedhack de 2006). O que eu queria mesmo era ver como funciona a IA.
No age of empires ele usa uns scripts em uma linguagem semelhante a LISP, mas entre aquilo e a mecãnica do jogo existe um abismo enorme.
Talvez o jeito seja procurar em outras linguagens mesmo e depois tentar trazer para o java. De qualquer forma, valeu aí.
Dê uma olhada no Caça a Bandeira. Inclui calculos de campo de visão, steering behaviors e path-finding com a*:
http://vinigodoy.wordpress.com/meus-jogos
Dê uma olhada nesse projeto também, que inclui algoritmos genéticos e steering behaviors:
Eu usei o Joone e não gostei. Nunca botei fé nos resultados que ele me retornava.Se você procurar por problemas clássicos de IA (como 8 Queens), você acha bastante coisa (algumas delas inclusive em Java). Outro problema, como aquele que você tem um quarado e tem que colocar os números na ordem correta e é resolvido com Java é esse.
Abraço.
Resolvi o problema das 8 rainhas com joone, quando fiz trabalho de IA a muito tempo. Você não deve estar normalizando os dados de entrada, ou está usando uma arquitetura de rede inapropriada para os dados.
O problema das 8 rainhas não precisa ser resolvido com rna, pode ser resolvido com algoritmos genéticos tmb.
Oi Julio.
Na verdade, eu peguei um data set pronto do UCI Data Set, sobre câncer de mama, contendo (acho que) 6 exames e o resultado (se era câncer ou não, ou algo assim, não lembro muito bem). No total eram mais ou menos 250 casos.
Era uma rede MLP e eu treinava ela usando 4 sets de 50 casos. O interessante é que quando eu entrava um conjunto de padrões que a rede não conhecia, ela acertava 99% dos casos (errava 2, 1 e nada, nessa ordem). Eu me impressionei porque até achei alguns artigos em que falava que era muito difícil acertar mais que 80% (usando a mesma base, com RNA implementada na unha e outras técnicas também (Genético Fuzzy sendo uma delas)). Vai que eu quebrei as barreiras… hehe. Nunca se sabe.
Acho que o problema das 8 Rainhas pode ser resolvido usando A* também. Ou outra técnica (como uma baseada em regras - o problema é que a quantidade é 8! regras, se não me engano).
Abraço.
Ou seja, força-bruta. Daí não é inteligência artificial.
Obrigado, hoje a noite vou olhar isso.
Quando o problema é seleção otimizada, não existe algoritmo melhor que AG.
Ou seja, força-bruta. Daí não é inteligência artificial.
Obrigado, hoje a noite vou olhar isso.
Victor,
A* é força bruta?!
Abraço.
Ou seja, força-bruta. Daí não é inteligência artificial.
Obrigado, hoje a noite vou olhar isso.
Victor,
A* é força bruta?!
Abraço.
Não, a técnica baseada em 8! regras é força bruta.
Se bem que confesso que quotei você errado, não deveria ter incluído a parte do A* no quote.
Não, a técnica baseada em 8! regras é força bruta.
Se bem que confesso que quotei você errado, não deveria ter incluído a parte do A* no quote.
No problems.
A do 8! também acho que é força bruta.
Abraço.
E quem foi que disse que força bruta não é IA?
Aliás, alguém aqui tem uma definição precisa de IA??? Não!
Ela simplesmente não existe!!
Nós usamos força bruta para resolver problemas no dia-a-dia. Também usamos regras pré-criadas.
Agora, algumas pessoas associam IA a cognição, mas daí o que dizer das outras formas de inteligência?
Você pode usar o teste de turing para tentar definir IA, numa abordagem mais humanística: “Se uma pessoa interagir, e não perceber que é um computador, então é inteligente”.
O último caso é uma das definições mais úteis para jogos.
Experimenta usar força bruta em um jogo de xadrez, você vai levar anos para resolver o problema. Não se deve considerar isso como ia(IA Fraca)
E quem foi que disse que força bruta não é IA?Aliás, alguém aqui tem uma definição precisa de IA??? Não!
Ela simplesmente não existe!!Nós usamos força bruta para resolver problemas no dia-a-dia. Também usamos regras pré-criadas.
Agora, algumas pessoas associam IA a cognição, mas daí o que dizer das outras formas de inteligência?Você pode usar o teste de turing para tentar definir IA, numa abordagem mais humanística: “Se uma pessoa interagir, e não perceber que é um computador, então é inteligente”.
O último caso é uma das definições mais úteis para jogos.
O mais correto seria utilizar busca heurística.
Claro, mas isso não invalida a força bruta como técnica válida de IA.
Aliás, já exclarecendo, A* é um algoritmo de busca heurística. E como todo algoritmo de busca heurística, tem uma limitação: A função heurística, no caso do A*, não deve retornar valores maiores do que o custo real. Um caso simples de onde isso se quebra. Você implementa seu jogo, lindo e maravilhoso, com A* para seus bonequinhos andarem no mapa. E lá pelo meio do projeto, você tem a idéia de adicionar no mapa um ponto de teleporte. Parabéns, seus bonequinhos NUNCA vão entrar no teleporte. Um algoritmo de mais força bruta, como Dijkstra resolveria melhor o problema.
Já o caso dos AGs, entra na categoria de busca estocástica. O que também é força bruta, embora existam um conjunto de regras para verificar de forma ótima o espaço da solução do problema. Mas vamos falar a verdade, testa-se um a um MILHARES de indivíduos em busca de solução, de maneira sequencial.
Mas estamos falando aqui de técnicas de IA, não exatamente da raiz do problema: o que é IA? Como vocês definiriam IA?
Sem uma definição precisa, vamos divergir sempre sobre o que é ou não técnica de IA.
Quer alguns exemplos? Máquina de estados é IA? Ela pode ser modelada como um conjunto de ifs.
E ter um conjunto de ifs fixos, é IA? E os steering behaviors?
Talvez por trabalhar muito com IA para jogos, eu tenha chegado a uma definição mais próxima da regra de turing. Ou seja, uma abordagem mais humanística de IA. Há quem estude IA para procurar o “pensador perfeito”, ou um computador capaz de se adaptar e resolver de maneira eficiente qualquer problema.
Agora, uma das definições de IA que mais gosto é a seguinte:
“É a ciência que estuda como fazer um computador fazer de forma eficiente o que os seres humanos fazem muito melhor do o computador.”
Essa definição aborda o processamento de imagens, steering behaviors, e não invalida técnicas como a força bruta.
Agora, já dizia o professor Roberto, lá da ET/UFPR: “Precisão demais é burra”. A IA, para ser inteligente de verdade, deve saber lidar com a imperfeição. Essa é uma diferença fundamental entre o ser humano e o computador e é nisso que superamos ele de longe. Temos a capacidade de entender a imperfeição, de conhecer só parcialmente as regras, de fazer hipóteses, extrapolações, etc.
Concordo. Mas somente quando a árvore de opções é pequena.
Mas então, preciso de um exemplo de aplicação de aplicação real em um sistema implantado (ou em implantação), que resolva algum problema da empresa. Alguma dica?
Found!
www.aaai.org
Eu usei o Joone e não gostei. Nunca botei fé nos resultados que ele me retornava.Se você procurar por problemas clássicos de IA (como 8 Queens), você acha bastante coisa (algumas delas inclusive em Java). Outro problema, como aquele que você tem um quarado e tem que colocar os números na ordem correta e é resolvido com Java é esse.
Abraço.
Resolvi o problema das 8 rainhas com joone, quando fiz trabalho de IA a muito tempo. Você não deve estar normalizando os dados de entrada, ou está usando uma arquitetura de rede inapropriada para os dados.
O problema das 8 rainhas não precisa ser resolvido com rna, pode ser resolvido com algoritmos genéticos tmb.
Olá, você teria como me passar o algoritmo de IA usando Joone resolvendo o problema das 8 rainhas?
valeu.