Em 2010, na Universidade Católica de Pernambuco, desenvolvi um projeto junto com um amigo sobre a complexidade computacional do algoritmo de aprendizagem competitivo, para a cadeira de inteligência artificial ministrada pelo professor Francisco Madeiro.
O algoritmo, e sua complexidade computacional, foram inferidos do artigo Complexidade Computacional de um Algoritmo Competitivo Aplicado ao Projeto de Quantizadores Vetoriais, escrito pelo professor Madeiro em conjunto com outros mestres para a revista da Sociedade Brasileira de Redes Neurais.
A implementação foi feita usando a linguagem de programação Python, a biblioteca Python para manipulação de imagens PIL e a biblioteca de interface gráfica padrão Tkinter.
A aplicação recebe como dados de entrada:
- k = A quantidade de números que irão compor cada vetor;
- w = A quantidade de vetores de peso (W);
- nAC = A quantidade de iterações de aprendizagem;
- Fator de aprendizagem inicial;
- Fator de aprendizagem final;
- Um arquivo contendo os números que serão utilizados pelo algoritmo;
A aplicação gera/retorna:
- Retorna os vetores de peso inicial;
- Retorna os vetores de peso após as iterações de aprendizagem;
- Retorna a quantidade de operações utilizadas no processo de aprendizagem;
- Gera um arquivo chamado VetoresDeTreino.jpg que exibe todos os vetores de treino;
- Gera um arquivo chamado VetoresDePesoAntes.jpg que exibe todos os vetores de peso antes do aprendizado;
- Gera um arquivo chamado VetoresDePesoDepois.jpg que exibe todos os vetores de peso depois do aprendizado;
Note que as 3 imagens só serão geradas se a quantidade de números (k) que irão compor cada vetor for igual a 2 (duas dimensões).
O projeto pode ser baixado no link Algoritmo competitivo em Python ou através da URL:
www.frenetic.com.br/projetos/ia_python/IA_Python.zip
Screenshots do projeto:






