Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!



Algoritmos Genéticos em Java - Java Magazine 82

Neste artigo, é apresentada uma introdução aos principais conceitos de Algoritmos Genéticos, uma importante subárea da Inteligência Artificial, e um exemplo de aplicação a um problema de distribuição de produtos.






BRK##: 0 - 0
Algoritmos Genéticos em Java
Conceitos e aplicação
Saiba como a teoria da evolução das espécies pode ser aplicada na solução de problemas

O aumento da concorrência no mercado de software tem direcionado a atenção de desenvolvedores para conceitos, técnicas e tecnologias que criem diferenciais competitivos e contribuam para que seus produtos ocupem uma posição de destaque.
Neste contexto, técnicas de Inteligência Artificial (IA) desempenham um papel importante, uma vez que, se utilizadas com bom senso, bem planejadas e desenvolvidas, podem ampliar e tornar mais úteis e interessantes as funcionalidades de uma aplicação.
Para chegar a tal conclusão, basta comparar a utilidade de um software de controle de empréstimos bancários, por exemplo, que possui apenas funcionalidades para o registro e consulta de empréstimos realizados, com outro que utiliza técnicas de IA  para determinar o risco da concessão de um empréstimo para um cliente em função do seu perfil e de dados históricos de inadimplência.
Exemplos de aplicações de técnicas de IA incluem a criação de interfaces adaptativas, alocação de profissionais em tarefas, detecção de intrusão e predição de falhas em redes de computadores, detecção de SPAM, inteligência em jogos, entre outros. Veja as referências, no final do artigo, com links para alguns exemplos disponíveis na Web.
Pode-se definir Inteligência Artificial como sendo uma área multidisciplinar, inspirada em processos naturais e relacionada à reprodução de capacidades normalmente associadas à inteligência humana, como a aprendizagem, adaptação, o raciocínio, entre outras.
Para reproduzir estas capacidades, ersas foram as abordagens adotadas no decorrer da história da IA, como a abordagem simbolista, também conhecida como simbólica ou cognitiva, baseada em aspectos cognitivos e algorítmicos – procurando reduzir a inteligência a um conjunto de símbolos, regras e passos –, a conexionista, baseada na simulação das estruturas consideradas responsáveis pela produção de comportamentos inteligentes, como os neurônios, e a evolutiva, inspirada na teoria da evolução das espécies.
Na Tabela 1, estão listados, para as abordagens citadas, exemplos de subáreas e suas respectivas inspirações.

Abordagem    Subárea    Inspiração
Conexionista    Redes Neurais Artificiais    Neurônios biológicos
Simbolista    Sistemas Especialistas    Inferência humana
Evolutiva    Algoritmos Genéticos    Evolução das espécies
Tabela 1. Principais abordagens da IA, exemplos de subáreas e suas respectivas inspirações.

As Redes Neurais Artificiais (RNA) são modelos computacionais inspirados na estrutura e comportamento do cérebro humano e são geralmente utilizadas na reprodução do processo de aprendizagem, associação e generalização. São efetivas principalmente no aprendizado de padrões – reconhecimento de caracteres e voz, dados em imagens, entre outros.
Os Sistemas Especialistas (SE) são sistemas computacionais que procuram apresentar um comportamento semelhante ao de um especialista de um determinado domínio, possuindo a capacidade de armazenar conhecimentos e os utilizar na solução de problemas.
Por sua vez, os Algoritmos Genéticos (AG) são algoritmos de busca e otimização inspirados na teoria da evolução das espécies, e consideram a busca pela solução de um problema como um processo de competição entre soluções candidatas.
Devido ao seu potencial de uso em diferentes áreas, há um crescente número de aplicações de AGs, incluindo a geração de casos de teste de software, redução do acoplamento e o aumento da coesão em modelos de classes, a alocação de profissionais em tarefas, alocação de docentes e salas em instituições de ensino, definição de escalas de plantão médico, rotas de entrega, otimização de projetos de carros e aviões, inteligência em jogos, entre outras.
Neste artigo, serão apresentados os principais conceitos de Algoritmos Genéticos e uma biblioteca voltada para a implementação deste tipo de algoritmo em Java – JGAP. Para ilustrar a aplicação deste tipo de algoritmo e da biblioteca, será apresentado um exemplo de otimização de rotas de distribuição de produtos.
Algoritmos Genéticos
Inspiração Biológica
Os Algoritmos Genéticos fazem parte de uma classe de algoritmos, conhecidos como Algoritmos Evolutivos, inspirados na teoria da evolução das espécies, proposta simultaneamente por Charles Robert Darwin e Alfred Russel Wallace.
Esta teoria descreve os mecanismos regentes do processo de evolução das espécies e, para entendê-la, é apresentada, a seguir, uma breve descrição dos seus principais conceitos.
Em uma comunidade biológica qualquer, a limitação na disponibilidade de recursos necessários à sobrevivência – como alimento e abrigo – faz com que haja uma competição, direta ou indireta, entre os iníduos da comunidade.


ATENÇÃO! A exibição deste artigo foi interrompida.


  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!







    3 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Álamo Carlos Cruz Da Silva
Por que o ponto C1 e C8 visivelmente mais próximo levam 8 como pontuação na tabela de distâncias, superior a outros pontos mais distantes?
Estou tendo como base a origem Distribuidora.


em 8/8/2010 09:21 - Responder

 

  Leandro Luque
Caro Álamo, Bom dia.

  Em situações reais, a distância entre dois pontos de uma área qualquer não reflete apenas a distância euclidiana (a semireta que pode ser traçada entre os dois pontos). As vias não são necessariamente retilíneas. Assuma o exemplo de imagem anexa: a distância que um entregador teria que percorrer para sair do ponto A e chegar ao ponto C é muito maior do que a distância que teria que ser percorrida entre A e B, embora A e C estejam muito mais próximos fisicamente.
  Em problemas nos quais o tempo é levado em consideração, fatores como trânsito e meio de transporte (e outros) disponível também devem ser levados em consideração.




em 9/8/2010 10:28 - Responder
 

  Álamo Carlos Cruz Da Silva
Ok Leandro entendi, então o exemplo utilizado utilizou valores justamente para simular situações como as apresentadas por você é isso?
Obrigado


em 9/8/2010 22:16 - Responder
 



[Este post ainda não foi associado a uma sequência]
Autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 4,90 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 1,96 (assinante) ou R$ 2,45 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 1,47
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03