Upload
dinhkhanh
View
217
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE FEDERAL DE SANTA CATARIANA
TECLADO VIRTUAL PARA DISPOSITIVOS MÓVEIS
GUY BOORLLE OLIVEIRA SILVA
RASCUNHO DO TRABALHO DE CONCLUSÃO DE CURSO
Orientador: Profº Claudio Magalhaes de Oliveira
Florianópolis, 2 de Julho de 2008.
GUY BOORLLE OLIVEIRA SILVA
TECLADO VIRTUAL PARA
DISPOSITIVOS MÓVEIS
Rascunho do Trabalho de Conclusão de Curso a ser Entregue na disciplina Projetos 1
Profº Claudio Magalhaes de Oliveira
Florianópolis, 2 de Julho de 2008.
RESUMO
A usabilidade dos computadores de mão e das aplicações para estes equipamentos é um fator determinante do sucesso deste segmento da computação móvel. As necessidades e características do usuário móvel, o contexto de uso dos computadores de mão, as características das aplicações e as limitações físicas destes equipamentos são fatores que irão influenciar a interação e devem ser considerados tanto no projeto das interfaces quanto na avaliação de usabilidade destes equipamentos. Este trabalho teve como objetivo tratar uma das limitações dos dispositivos móveis, a entrada de dados. Foi apresentando uma maneira diferente de realizar esta tarefa seguindo conceitos de usabilidade e ergonomia.
Palavras chave: Teclado Virtual, Dispositivos Móveis, Algoritmos Genéticos.
SUMÁRIO
Introdução....................................................................................................................3
1 HANDHELDS.............................................................................................................5
1.1 Características...................................................................................................................6
1.1.1 Saída de dados...............................................................................................................................6
1.1.2 Entrada de Dados .........................................................................................................................6
1.1.3 Híbridos..........................................................................................................................................7
2 Teclado Virtual..........................................................................................................9
3 Algoritmos Genéticos............................................................................................11
3.1 Inicialização.....................................................................................................................12
3.2 Seleção...........................................................................................................................13
3.2.1 Seleção por Roleta.......................................................................................................................13
3.2.2 Seleção por Torneios...................................................................................................................14
3.2.3 Seleção por Elitismo....................................................................................................................14
3.3 Reprodução e Mutação...................................................................................................15
3.4 Algoritmos genéticos paralelos ...............................................................................16
4 Solução proposta...................................................................................................18
4.1 Novo Modelo <sofrerá mudanças>..................................................................................18
4.1.1 Clique ...........................................................................................................................................19
4.1.2 Deslize..........................................................................................................................................19
4.2 Utilização........................................................................................................................19
5 Resultados..............................................................................................................21
6 Considerações finais.............................................................................................22
6.1 Trabalhos Futuros............................................................................................................23
<ÍNDICE DE FIGURAS>
INTRODUÇÃO
Nos últimos anos o desenvolvimento de sistemas para dispositivos móveis vem
crescendo e se tornando um ótimo mercado para investimentos, com a popularização de
celulares com suporte a Java as aplicações destinadas a estes dispositivos tendem a crescer
ainda mais.
As pessoas estão a cada dia com mais mobilidade e a facilidade de se comunicar em
qualquer lugar é uma razão freqüente para se possuir um dispositivo móvel. Poucas pessoas se
encontram o tempo todo em apenas um único local físico, por isso a necessidade de se
compreender o hábito dessas pessoas para um bom projeto de sistema para dispositivos
móveis.
Assim como nos sistemas para computadores de mesa, os sistemas para dispositivos
móveis precisam de uma maior preocupação com a sua usabilidade, devido as suas restrições
que limitam em muito a capacidade de desenvolvimento de interfaces.
A interface de um sistema é o meio de comunicação e interação entre o usuário e o
sistema, interfaces mais usuais e agradáveis, chamam a atenção e definem a preferência por
um ou outro sistema, é mais uma das características que pode influenciar na escolha de um
software.
4
Este trabalho mostra uma abordagem diferente ao problema de inserção de dados em
dispositivos móveis com telas sensíveis ao toque, através de um novo conceito de interação
com o usuário. Para isso, noções de usabilidade foram empregadas resultando num novo
modelo de teclado e de maneira a aumentar a eficácia do teclado um programa para a
otimização do seu layout foi criado. Este programa utiliza uma técnica de computação
evolucionária chamada de Algoritmos Genéticos.
Objetivos
Sabendo das deficiências presentes na área de usabilidade em dispositivos móveis este
trabalho visa apresentar uma nova maneira mais eficiente e agradável ao usuário para a
inserção de dados nos dispositivos citados.
Organização do trabalho
Este trabalho está organizado de forma a se obter uma melhor compreensão dos assuntos
envolvidos, no Capítulo 1 é feita uma breve explanação sobre dispositivos móveis,
abrangendo conceitos, características e problemas relacionados a estes aparelhos.
No capitulo seguinte é apresentado o conceito de teclado virtual suas aplicações e
problemas inerentes ao seu desenvolvimento. Na sequencia existe uma abordagem ao
conceito de Algoritmos Genéticos, suas peculiaridades, funcionamento Por fim teremos uma
conclusão geral do trabalho e propostas para trabalhos futuros.
1 HANDHELDS
Há muito tempo que atividades como anotar os compromisso do dia seguinte, ligar para
seu amigo, ler um livro, tirar uma fotografia, escrever uma carta ou ouvir uma musica
deixaram de ser realizadas por um objeto distinto. Hoje nem mesmo um computador com
mouse, teclado, monitor, câmera web, etc. é necessário para realizar estas atividades, com o
avanço tecnológico é possível realizar tudo isso com um chamado “Handheld” que é um
dispositivo de bolso, com algum poder computacional<ref handheld>(HandHeld, Wikipedia).
A classe mais conhecida e difundida destes dispositivos é o celular. Pesquisas já indicam
que existem cerca de 3 Bilhões de linhas ativas no mundo segundo a GSMA<ref gsma>, este
número representa praticamente a metade da população do planeta. Isto, considerando apenas
um tipo de equipamento, se fossem contabilizados Assistentes Pessoais Digitais(PDAs),
tocadores de musica, consoles de jogos, etc. esse número cresceria muito mais.
Este tipo de comportamento evidencia como as pessoas de hoje estão cada vez mais
interessadas na mobilidade, assim é natural que mais empresas invistam na área e mais
produtos sejam lançados ou aperfeiçoados com novas tecnologias.
6
1.1 Características
A gama de dispositivos é muito vasta bem como suas aplicações, mas ainda assim eles
compartilham algumas características como métodos de entrada de dados ou métodos de
saída. Um detalhamento maior destes itens está abaixo.
1.1.1 Saída de dados
Na grande maioria destes aparelho o método de saída mais utilizado é uma tela seja ela
LCD ou Oled. Devido ao tamanho dos dispositivos é muito comum que sua tela também seja
pequena. Esta limitação no espaço da tela é um grande problema enfrentado pois a tela não
pode ser fisicamente maior, sem tornar o dispositivo grande, fazendo assim com que ele
perca a sua característica principal que é poder ser carregado na mão ou no bolso. Os
desenvolvedores tentam lutar contra esta limitação, fazendo uma interface melhor possível
mas mesmo assim como resultado ainda encontrase interfaces difíceis de serem usadas,
textos pequenos que tornam a leitura difícil, além de limitações com a apresentação de
gráficos e pequena informação contextual(BREWSTER; CRYER, 1999).
1.1.2 Entrada de Dados
A entrada de dados ainda não segue uma padronização, a exemplo dos computadores de
mesa que possuem teclado e mouse. Para os computadores de mão a entrada de dados é
diferente para cada dispositivo, podendo ser através de botões, mini teclados, telas de toque
ou por comando de voz, no caso dos celulares. Outra peculiaridade dos celulares é o seu
método de entrada dados, conhecido como multitap, que força o usuário a pressionar várias
7
vezes uma tecla para chegar a letra desejada, este método é padrão para praticamente todos
os celulares mas é considerado difícil, segundo Weiss<ref weiss> . Como alternativa ao
multitap, existe o método T9 que baseado na predição de palavras, faz com que o usuário
pressione apenas a tecla que contém a letra desejada e o software através de um banco de
dados tenta adivinhar a palavra(Bertiol; Cybis, 2004).
De acordo com um argumento de Dertouzos(2001) o uso da voz como forma de
interação entre pessoas e máquinas, deve tornase o principal método de comunicação, já para
o caminho inverso da informação, a visão é a forma mais adequada. Ainda segundo
Dertouzos, a tecnologia de reconhecimento de voz precisa amadurecer um pouco mais antes
de ser definida como padrão de entrada de dados
1.1.3 Híbridos
Em 1971 o Dr. Samuel C. Hurst patenteou um invento que, depois de muito tempo, viria
a se tornar moda entre os handhelds, o Elograph. Que nada mais é do que uma interface
sensível ao toque (Touch Screen). Essa interface é ao mesmo tempo um método de entrada
como um método de saída, uma vez que o usuário pode selecionar, com os dedos, valores na
tela e esta consegue exibir os resultados.
Os pontos fortes dessa interface seriam:
a) Aumento na gama de interação do usuário, já que agora ele possui uma área
muito maio para interagir;
8
b) Redução na quantidade de botões do aparelho pois quase todos podem ser
incorporados na tela;
c) Aumento na qualidade gráfica da informação a ser exibida devido ao aumento do
tamanho da tela.
Os pontos fracos dessa interface são :
a) A falta de resposta táctil às interações do usuário;
b) O tempo de vida útil da tela.
Mesmo a tecnologia já sendo conhecida a muito tempo, os programas que se utilizam
dela nos handhelds precisam de muitas melhorias quanto a usabilidade. Isto se da devido ao
fato do touchscreen ter iniciado sua comercialização em escala industrial a poucos anos o que
dificultou pesquisas e desenvolvimento nesta área.
2 TECLADO VIRTUAL
Teclado virtual é um software que permite entrada de texto em programas de computador
de maneira alternativa ao teclado convencional. A maioria se baseia em receber cliques do
dispositivo apontador (mouse, canetas ou touchscreen) sobre uma imagem de teclado. A
imagem clicada é convertida para um caractere de texto, que é escrito na tela do editor.
Normalmente temse todas as teclas de um teclado convencional como 'Ctrl', 'Alt',
'PgUp' , etc. porém em se tratando de um dispositivo com área reduzida é inviável, em termos
ergonomicos, considerar a disponibilização de todas as teclas ao mesmo tempo. A solução
Fonte: [Intelliadmin, 2007]
10
mais comum é agrupar as teclas menos utilizadas em outros modos de visão , onde poderão
ser acessadas quando requisitado pelo usuário pelo usuário. Na Figura 2 isso fica claro, na
visão atual o usuário só tem acesso aos símbolos numéricos, pontuais e acentuais para acessar
as letras o usuário deverá acessar a tecla 'abc'.
Figura 2: Teclado Virtual com Teclas
Escondidas
3 ALGORITMOS GENÉTICOS
Algoritmo genético(AG) é um método estocástico de busca baseado nos conceitos de
seleção e evolução das espécies. Foi desenvolvido por John Holland e sua equipe na
Universidade Michigan durante os anos setenta (OLIVEIRA; WAZLAWICK, 2004).
A execução do algoritmo genético se da por meio de iterações sobre uma população de
indivíduos. Cada indivíduo é uma codificação de uma solução em potencial do
problema e a cada iteração novos indivíduos são gerados, avaliados e selecionados sendo que
na(s) próxima(s) iteração(ões) esperase que uma melhor solução tenha sido alcançada. O
ciclo para quando uma das soluções atinge uma meta préestabelecida ou após um dado
período de atividade.
As principais dificuldades de se utilizar um AG para alcançar uma solução estão em:
● Construir uma representação genética do domínio da solução ;
● Obter uma função que consiga quantificar a qualidade de uma dada representação
genética.
12
Mesmo sendo um método eficiente na solução de alguns problemas NPCompletos os
AG não são a melhor opção para resolver todos as classes de problemas, na verdade eles são
melhor empregados em problemas do tipo:
● Problemas de otimização, como aprendizado de maquina e vida artificial. Este é o
campo mais desenvolvido dos AG;
● Problemas onde uma pequena otimização afeta drasticamente o modelo. Os AG
tendem a localizar pequenas melhorias em resultados já otimizados por outros
algoritmos;
● Problemas onde uma otimização direta não consegue ser realizada. Por possuir o
lado probabilístico os AG podem ter mais sucesso. Esse tipo de problema possui
vários ótimos locais, distorções, funções não continuas ou tanta complexidade que
alguns algoritmos simplesmente não conseguem tratar (problemas NPCompletos),
tais como o problema do caixeiro viajante (Travelling salesman problem, Wikipedia),
problema da mochila (Lee; Lee, 1985) dentre outros como os descobertos por Karp
(1972 ).
3.1 Inicialização
Este é o primeiro passo do algoritmo, aqui criase uma população de indivíduos gerados
aleatoriamente, o tamanho desta população está relacionado com o problema em questão.
Normalmente esta população é gerada de maneira aleatória mas existem casos onde a
população inicial é concebida nos intervalos onde se supõe estar a solução desejada.
13
Uma vez concluída dase inicio a parte cíclica do algoritmo que inicia pela seleção
seguida da reprodução e mutação, sendo que após essa o passo da seleção é retomado. Muitas
variantes desse ciclo podem ser encontradas em AG sendo que a melhor escolha está
associada as propriedades do problema em face.
3.2 Seleção
Durante esta fase uma porção da população existente é selecionada para ser a progenitora
da próxima geração. Os indivíduos são selecionados com base em sua aptidão sendo que a
mesma é calculada por uma função previamente estipulada, também conhecida como “fitness
function”.
A função de aptidão pode representar um dos pontos mais agravantes em AG, já que a
mesma se mal implementada pode num caso mais brando tornar muito lento o algoritmo e no
pior caso levar o mesmo a escolha de soluções não ótimas.
Uma vez calculada a aptidão dos indivíduos uma estratégia de seleção pode ser usada
para escolher quais indivíduos podem passar ao próximo passo. Exemplos de estratégias são:
seleção por roleta, por torneios, por elitismo.
3.2.1 Seleção por Roleta
Dada a população a ser selecionada o algoritmo deste método atribui um intervalo
numérico a cada individuo, este proporcional a sua aptidão naquele grupo. Uma vez que todos
os indivíduos foram direcionados a um intervalo, um numero aleatório então é consultado e o
14
individuo que possuir o intervalo que compreende o numero sorteado é então selecionado.
Isto se repete até que um a quantidade desejada de indivíduos selecionados seja alcançada.
Este método apresenta problemas quando muitos indivíduos possuem valores para
aptidão muito baixos, fazendo com que os mesmo quase não sejam escolhidos. Isto pode
causar uma convergência muito rápida para um ótimo local, já que muito da variabilidade das
soluções estarão sendo ignoradas.
3.2.2 Seleção por Torneios
Neste método são selecionados aleatoriamente alguns indivíduos da população e um
torneio entre eles é realizado onde quem possui a melhor aptidão é considerado vencedor.
Eventualmente utilizase um valor probabilístico para determinar qual individuo selecionar
detre os melhores do torneio.
3.2.3 Seleção por Elitismo
O método mais simples, onde uma cópia dos melhores indivíduos da população é
selecionada. Dos três este é o método com mais chances de trazer problemas ao AG, isto pois
com o passar das gerações os indivíduos tendem a se tornar homogêneos diminuindo o espaço
de busca do AG.
15
3.3 Reprodução e Mutação
O próximo passo é gerar a segunda geração de soluções a partir dos indivíduos já
selecionados em momentos anteriores através de operadores genéticos: crossover(também
conhecido por recombinação) e/ou mutação.
O Crossover consiste em, a partir de dois indivíduos, selecionar uma porção de material
de um deles e aglutinar com o complemento desta porção copiado do outro participante dando
origem assim a um novo individuo. Isto se repete com as partes não selecionadas
anteriormente de maneira que dois indivíduos gerem outros 2. É possível configurar o
crossover para que ele aconteça sob partes prédefinidas de cada solução, usando métodos
determinísticos ou probabilísticos.
Esta é a forma geral do método mas existem algoritmos que implementam variações do
mesmo, como o GreedyCrossover. Esse algoritmo foi desenvolvido para problemas do tipo
caixeiro viajante em que a nova solução não pode conter material repetido.
Considerando a representação genética da solução vemos que este algorítimo se
comporta da seguinte maneira: o primeiro gene do cromossomo do pai é repassado ao filho;
Procurase este gene no cromossomo de cada um dos pais e a partir calculase a distancia ate
o “gene seguinte”; O filho ira receber o “gene seguinte” do pai em que a menor distancia for
encontrada. Se este gene já existir no cromossomo do filho, então e repassado o gene do outro
pai (ou seja, com a maior distancia). Caso este gene também já exista, e selecionado
aleatoriamente um gene ainda não existente no filho; Repetemse os itens 2 e 3 ate o
cromossomo filho estar completo.
16
3.4 Algoritmos genéticos paralelos
Alguns problemas podem necessitar de grandes populações para que se possam obter
bons resultados com algoritmos genéticos. Uma população numerosa necessita de maior
quantidade de memória. Também é necessário avaliar estes indivíduos para que se possa
aplicar a função de seleção. O tempo de evolução é aumentado linearmente a medida que se
aumenta a população.
Outro ponto que pode tornar o algoritmo genético lento é a utilização de uma função de
aptidão complexa que demanda muito poder de processamento. Mesmo um pequeno aumento
no tempo de avaliação de um indivíduo pode acarretar em um grande impacto no
tempo total do algoritmo genético. A função é chamada para avaliar cada indivíduo
de todas as populações.
Qualquer acréscimo implica em um crescimento quadrático no tempo total de evolução.
A motivação básica para os estudos sobre algoritmos genéticos paralelos foi reduzir
o tempo de processamento necessário para se obter soluções aceitáveis. Isto foi
possível implementando algoritmos genéticos em diferentes arquiteturas paralelas.
A primeira tentativa de algoritmo genético paralelo foi feita por John
Grefenstette (1981). Uma classificação dos tipos de algoritmos genéticos paralelo
pode ser encontrada em (NOWOSTAWSKI, POLI, 1999) e (CANT'UPAZ, 1995). Esta
taxinomia divide os algoritmos genéticos paralelos em três categorias: paralelização global,
modelo em ilhas e modelo em células.
17
A paralelização global modifica o código original a fim de melhor aproveitar os recursos
de arquiteturas paralelas. Não altera a semântica nem os resultados obtidos. Somente
balanceia a carga de processamento entre vários processadores. A população é armazenada
em um único local e a probabilidade de cruzamentos entre os seus integrantes é mantida em
relação à versão serial do algoritmo genético.
As outras duas categorias de paralelização modificam o formato do algoritmo genético.
Ao invés de manterem uma única população, utilizam várias populações que simulam um
afastamento entre os indivíduos. As populações evoluem com certa independência
e, em certos momentos, trocam informações genéticas com as outras populações
através de “migrações ”. Ao se utilizar várias populações parcialmente isoladas, reduzse a
probabilidade de que a busca fique presa em um máximo local. Além disso, é possível
que, ao final da evolução, apareçam boas soluções com genótipos divergentes nas
várias populações. Alguns estudos mostram que, mesmo em equipamentos
monoprocessados, estes algoritmos obtêm melhores resultados que algoritmos
genéticos seriais (GORDON, WHITLEY, 1993, p.183).
Também é possível realizar várias evoluções completamente independentes. Ao final do
processo, cada algoritmo genético pode ter encontrado uma boa solução diferente. As
melhores soluções são coletadas dentre as populações e se tem então a solução final.
4 SOLUÇÃO PROPOSTA
4.1 Novo Modelo <sofrerá mudanças>
Visando cobrir as deficiências dos teclados virtuais para handhelds um esquema novo de
teclado foi concebido visando maximizar o espaço do botões para facilitar o manuseio com os
dedos assim como a visualização de seu conteúdo.
Para tal uma nova abordagem de uso foi criada, onde além dos comuns clique foi
adicionado o efeito deslize. A idéia é simples clicando em um ponto e deslizando até um
outro ponto produz os símbolos que forem interceptados no movimento.
Figura 3: Modelo de Teclado Proposto
19
A Figura 3 mostra o modelo criado neste trabalho. Neste modelo para produzir um
símbolo existem duas maneiras:
4.1.1 Clique
Quando o símbolo estiver centralizado em uma das teclas grandes (as de cor clara na
Figura 3) basta clicar nele e o símbolo será exibido na saída Por exemplo clicando na tecla
que possui um 'X' fará com que um 'X' seja exibido na saída
4.1.2 Deslize
Quando o símbolo estiver em uma das arestas do botões basta deslizar entre as teclas com
a qual o símbolo faz divisa, não importando a direção. Por exemplo apertando a tecla 'X' e
deslizando (sem soltar) até a tecla 'V' fará com que na saída seja exibido 'n'. O acesso via
deslize pode continuar enquanto for necessário sendo que a cada borda de tecla atravessada
será produzido na saída o símbolo ali presente.
4.2 Utilização
Como esse sistema de uso não é comum uma pequena indicação visual acontecerá assim
que o usuário pressionar uma das teclas(Figura 4). Onde a coloração das outras teclas serão
modificadas passando a idéia de que elas não estão acessíveis naquele instante.
20
Se o usuário soltar a tecla, o sistema volta a coloração inicial, no entanto se ele deslizar
na direção de algum dos símbolos acessíveis1 aquele símbolo será produzido na saída e a
coloração das teclas será atualizada.
1 No caso da Figura 4 os simbolos acessíveis são: b, d, i, m, n, espaço.
Figura 5: Atualização das cores apos uma seleção
de simbolo utilizando o deslize
6 CONSIDERAÇÕES FINAIS
Uma boa interface com facilidade de uso realmente é fator de sucesso para um software e
pode ser item decisivo na hora de escolher entre softwares que tenham a mesma
funcionalidade. Haja visto a briga dos Sistemas operacionais modernos Windows vs Linux,
sendo que este último apesar de apresentar uma robustes maior, em termos de confiabilidade e
segurança, sob seu adversário não é tão bem quisto entre os usuários finais dada sua falta de
usabilidade.
Desenvolver softwares para dispositivos móveis requer um estudo maior em relação a
interface devido as restrições destes dispositivos, em relação a tamanho de tela, entrada de
dados e utilização dos recursos. Apesar de esforços estarem sendo feitos nesta área ainda
existe muito a ser repensado.
Em se tratando de teclado virtual, o presente trabalho não visa propor uma solução
completa à questão, pois tecnologias novas surgem a cada instante junto a novas maneiras de
aplicalas que podem tornar essa solução impraticável. Porém, no estado tecnológico atual,
este trabalho tenta abrir um novo sugerir uma nova abordagem ao problema.
REFERÊNCIAS BIBLIOGRÁFICAS
<sofrerá mudanças>
Lee, C. C.; Lee, D. T. A simple online binpacking algorithm.Journal of the ACM Volume 32 , Issue 3(July 1985)
Richard M. Karp (1972). "Reducibility Among Combinatorial Problems", in R. E. Miller and J. W. Thatcher (editors): Complexity of Computer Computations. New York: Plenum, 85–103.
ROCHA, José Antonio Meira da. Modelo de Trabalho de Conclusão de Curso (TCC). Modelo de documento digital do programa OpenOffice 2.0 disponível em <http://www.meiradarocha.jor.br/uploads/1021/196/modelo_de_projeto_de_TCC20060612a.sxw>. Acesso em: 29 nov. 2007 .
Travelling salesman problem. Wikipedia the free Enciclopedia. Disponível em: <http://en.wikipedia.org/wiki/Traveling_salesman_problem>. Acessado em 10 mar. 2008.
HANDHELD. Wikipedia the free Enciclopedia. Disponível em : <http://en.wikipedia.org/wiki/Handheld>. Acesso em: 29 nov. 2007.
GSMA. GSM Association. Disponível em: <http://www.gsmworld.com/>. Acessado em: 29 nov. 2007.
OLIVEIRA, Cláudio M de; WAZLAWICK, Raul S. Electrical reallocation of transformers in distribution systems using genetic algorithms. Engineering Intelligent Systems. CRL Publishing Ltd. 2004
INTELLIADMIN. Windows XP Tablet Keyboard. Disponível em: <http://www.intelliadmin.com/images/Windows%20XP%20Tablet%20Keyboard.gif>. Acessado em: 30 nov. 2007.
BREWSTER, Stephen A., CRYER, Peter G. Maximising ScreenSpace on Mobile Computing Devices. Conference on Human Factors in Computing Systems, 1999.
WEISS, S. Handheld Usability. England: John Wiley & Sons Ltd, 2002.
25
BETIOL, Adriana H., CYBIS, Walter de A. Avaliação de usabilidade para os computadores de mão: um estudo comparativo entre três abordagens para ensaios de interação. Florianópolis, 2004.
DERTOUZOS, M. The Unfinished Revolution: Humancentered Computers and What They Can Do for us. Nova Iorque, 2001.
CANT'UPAZ, Erick. A summary of research on parallel genetic algorithms. IlliGAL report No. 97003. University of Illinois at UrbanaChampaign. 1995
GORDON, V.;WHITLEY, D. Serial and Parallel Genetic Algorithms as Function Optimizers. Proceedings of the 5th International Conference on Genetic Algorithms (ICGA5). 1993
NOWOSTAWSKI, Mariusz; POLI, Riccardo. Parallel Genetic Algorithms Taxonomy. Proceedings of Third International Conference on Knowledgebased Intelligent Information Engineering Systems KES' 99. 1999
GREFENSTETTE, J. J. Parallel adaptive algorithms for function optimization.. Technical Report CS8119. Computer Science Department, Vanderbilt University, Nashville, TN. 1981