2007 August 30 17:33:21 BRT August 30, 2007
Posted by Girino Vey in : Uncategorized , add a commentTu-tu-tu-tu-tu
Pois é, funcionário público também trabalha de vez em quando. E enquanto eu tou atolado de serviço, fico sem tempo pra blog(g)ar (em português, blogar tem um ou dois gs?)!
Então acho que vou voltar ao modo “use seu blog como diário” que é pra que ele foi inventado (abaixo a web 2.0, viva o capitalismo monopolista, e deixe que os outros ditem o que você quer!)
Querido diário
Estou atolado de serviço, te vejo mais tarde! Beijos!
–girino 17:41, 30 Agosto 2007 (BRT)
P.S.: O Paulosta vem pra BSB semana que vem, minha mãe está aqui essa semana e eu tive 3 reuniões de uma tarde inteira nos últimos 3 dias!
2007 August 27 00:10:38 BRT August 27, 2007
Posted by Girino Vey in : Uncategorized , add a commentResumo da semana
Bom, eu fiquei sem assunto pra falar aqui, então acabei resolvendo retomar um projeto que eu deveria ter feito a anos atrás: Meu segundo projeto de final de curso (eu tive 3 projetos, o único que terminei foi o terceiro). Bom, eu nem sei se ainda tenho algum dos documentos que produzi na época. Provavelmente só escrevi o resumo inicial do projeto, porque logo logo eu abandonei (como sempre).
A idéia era basicamente uma variação de algoritmo genético que funcionasse de forma assíncrona. Mais ou menos assim:
Um GA tradicional tem uma geração de tamanho fixo. A partir dela você aplica operações de “mating” (como chama isso? cruzamento?) de mutação e de cópia, para formar uma nova geração, com novos indivíduos, e do mesmo tamanho da anterior. Aí você repete geração por geração até cansar ou achar o resultado desejado.
No GA assíncrono, os indivíduos da nova geração “convivem” com os indivíduos da geração anterior. A população não tem tamanho fixo. Aí você precisa de um novo operador, o operador de “morte”, que é responsável por se livrar dos indivíduos “ruins” pra que a população não cresça demais.
Na minha implementação simplória do negócio, eu associei uma “idade” com cada indivíduo, e eu “mato” eles quando ficam velhos demais. Cada “rodada” do algoritmo passa por 3 etapas:
- “mating”
- mutação
- morte
E em cada etapa eu atuo sobre a população como um todo. A solução é bem diferente do que eu tinha pensado em 99, quando era preu ter feito isso. Na época eu pensava em associar probabilidades pras operações e aplicar elas nos indivíduos isoladamente. Não cheguei a nenhuma solução prática pra isso, entretanto, porque abandonei antes…
A separação em rodadas também ajuda a fazer comparativos com o GA tradicional: uma rodada pode ser comparada com uma geração do GA tradicional.
A “expectativa de vida” dos individuos é um parâmetro do sistema. Eu usei nos testes o valor de 10 rodadas. Esse valor define também o número de indivíduos novos em cada geração na minha versão simplista: Eu produzo sempre
indivíduos novos a cada rodada.
A mutação é aplicada com probabilidade igual na população inteira.
Na hora da morte eu implementei duas soluções:
- morte por idade
- morte por idade ponderada pela função objetivo
Na morte por idade, tudo vai muito bem. A população sempre tem tamanho constante, etc e tal.
Quando se pondera a idade com a função objetivo, os “mais aptos” vivem mais tempo enquanto os menos aptos vivem menos. Por enquanto esta estratégia tem dado bons resultados, mas não fiz nenhum teste “sério” com ela. Eu usei as funções f1 e f2 de De jong[1] só pra ver como a coisa ficaram e “me pareceu” que a convergência é mais rápida (na verdade a convergência leva o mesmo número de rodadas, mas as rodadas do assíncrono são mais curtas).
Agora é ver o que mais de idéias eu vou ter em cima disso e rodar uns testes de verdade (pelo menso com todas as 5 funções de De Jong).
Links
- Página do projeto no Google Code. Dá pra ver os fontes, comentar, baixar, etc!
Notas
- ? De Jong, K. A.. An analysis of the behaviour of a class of genetic adaptative systems. Dissertação de doutorado, University of Michigan, 1975. in Goldberg, David E.. Genetic Algorithms in Search, Optimization, and Machine Learning. EUA: Addison-Wesley, 1989.
–girino 00:41, 27 Agosto 2007 (BRT)
- Update
O código está sob licença MIT no Google Code, mas só porque não tinha a opção de usar a Girino’s Anarchist License. Considerem o produto duplamente licenciado (MIT ou Girino’s Anarchist License).
2007 August 23 14:01:29 BRT August 23, 2007
Posted by Girino Vey in : Uncategorized , add a commentVocê não vê?
Já começou:
–girino 14:03, 23 Agosto 2007 (BRT)
Hum, já estava previsto…
«et concurrere faciam Aegyptios adversum Aegyptios et pugnabit vir contra fratrem suum et vir contra amicum suum civitas adversus civitatem regnum adversus regnum» (Isaiah 19:2)
–girino 14:50, 23 Agosto 2007 (BRT)
2007 August 22 18:10:06 BRT August 22, 2007
Posted by Girino Vey in : Uncategorized , add a commentPoço cartesiano
Em homenagem ao
vou explicar a estória do poço cartesiano.
Como vocês já devem ter lido por aí, eu tenho uma tia que é matemática (i.e. ela é professora e pesquisadora na área de matemática, ela não é a própria matéria não). Ela uma vez pegou uma prova de um aluno onde o professor perguntava quem era Descartes, ou algo que o valha. No que o aluno respondeu que:
- Descartes foi o inventor do poço cartesiano.
Pronto, tá explicado!
E já que estou falando besteira de alunos em provas mesmo, tem aquela famosa da época do COLTEC:
- Pergunta
- O que é a mais valia segundo Marx?
- Resposta do aluno
- Mais valia um pássaro na mão do que dois voando.
–girino 18:16, 22 Agosto 2007 (BRT)
P.S.: tou sem idéia pra blogar nos últimos dias, por isso o blog tá meio parado mesmo.
2007 August 16 23:33:55 BRT August 17, 2007
Posted by Girino Vey in : Uncategorized , add a commentBrasília
Quando um casal de mineiros vem à capital candanga, diálogos surreais acontecem:
–girino 23:38, 16 Agosto 2007 (BRT)
Notas
2007 August 16 10:33:25 BRT August 16, 2007
Posted by Girino Vey in : Uncategorized , add a commentFontes sambadas no Firefox/ubuntu
Eu sempre reinstalava o Firefox “por fora” no Ubuntu porque as fontes
dos menus ficavam sambadas (grandes demais ou pequenas demais,
deformadas etc). E também as fontes nas caixas de texto e algumas
outras coisinhas.
Isso causava um monte de encheções de saco (o Firefox não estava no
path, então eu mudava o link em /usr/bin pra apontar pra versão
correta, mas o ubuntu desfazia o link sempre que atualizava a versão
do Firefox no update automático).
Saí fuçando na internestica e descobri a solução:
- Acesse
about:config(URL de configuração do Firefox) e mude a propriedadelayout.css.dpipara o valor96.
(veja na imagem abaixo)
Basta reiniciar o Firefox que tudo se resolve!
–girino 10:36, 16 Agosto 2007 (BRT)
P.S.: isso deve funcionar em outras versões de linux onde esse problema ocorrer também… quem tiver experimentado, deixe comentário avisando qual distro tem esse problema também.



