Implementação do algoritmo "Bottom-Left Fill". Ele serve para posicionar as
peça na folha, para que posteriormente seja feito a otimização do espaço.
Por enquanto, não foi implementado o posicionamento de imagens rotacionadas.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Inserido lista de coisas a fazer (TODO List) ao projeto.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Os arquivos TODO e bottom_left_fill.py foram movidos para o branch de projeto.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Arquivo .gitignore adicionado! Agora arquivos com extensão swp e pyc sera
ignorado pelo git.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Implementado a função fitness (calculo da área total da população) e adicionado
os comentários para as funções.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
TODO and bottom_left_fill.py were moved to project branch.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Diretório project foi removido, já que foi criado um branch.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Implementação de um modulo para carregar/salvar os dados das formas em arquivo.
E a criação de um arquivo que pode ser carregado usando esse módulo.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Modifcação do teste do algoritmo bottom_left_fill para suportar arquivos
carregados com o módulo de file_io.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Adicionada a tarefa da modificação da estrutura usada para ler e gravar os dados
das formas. Onde após a modificação deverá ser adicionado o suporte ao
carregamento de formas rotacionadas.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Implemtação da funcionalidade de seleção de cruzamento dos pais.
A funcionalidade de seleção está usando atualmente uma abordagem randômica,
futuramente pode ser escolhido uma abordagem melhor.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Os testes dos modulos das pastas src/lib foram movidos para a pasta test.
Assim como o arquivo que contem as informações sobre as formas.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
A pasta de testes foi criada para retirar os testes dos módulos na pasta
src/lib.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Atualização da lista de tarefas.

Módulo file_io salva e carrega dados serializados. É responsabilidade do
programador seguir o formato que deve ser salvo no arquivo, ou seja, uma lista
de listas [[x1,y1,w1,h1], ... , [xn, yn, wn, hn]]

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Modificações:
  * Adicionado "from bottom_left_fill import *" no módulo genetic.py;
  * criação do teste do módulo genetic;
  * ajuste no test_file_io.py para que ele siga o padrão para criação de
    arquivos (lista de listas);
  * arquivo shape_data.dat atualizado com o padrão que é usado pelo
    bottom_left_fill.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Mudanças:
  * Implementado o método de seleção da roleta;
  * Função de get_fitness_list foi trocada por fitness;
  * Função que calcula o total da área usada pelas formas.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Os arquivos de src/lib foi movido para src. Também foi criado o arquivo de teste
do genetic, mas ele ainda não está completo.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Modificações:
  * Criação de uma classe genérica para as formas (shape);
  * Criação de uma classe forma retangulo;
  * Modificação dos módulos e testes para suportar a classe Shape/Rectangle.

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Remoção do arquivo de formas da pasta de testes e adição de um filtro para os
arquivos ".dat".

Signed-off-by: Emerson MX <emersonmx@gmail.com>
Um individuo pode ser encontrado numa lista a partir do seu id.

Com isso foi implementado o método __eq__ na classe Shape, para que ao fazer
uma busca em uma lista Shapes, seja retornado a posição do individuo que foi
requisitado pelo método "index" de uma lista.

Pra que isso? como o cruzamento não pode ser feito usando uma codificação
binária, pois irá resultar em genes duplicados, foi escolhido uma codificação
por permutação. Isso simplificou a maneira de buscar um gene
(lista.index(gene)) e fez com que não precisasse mudar a função
permutation_encoding.

Signed-off-by: Emerson MX <emersonmx@gmail.com>