domingo, setembro 26, 2010

Resolvendo UKP em Erlang.

Comecei a estudar Scala e foi batendo uma saudade de Erlang.
Resolvi atualizar a versão instalada no meu notebook da 11B pra 14B e pesquisei se já havia um plugin pra Eclipse pra Erlang e felizmente existe: Erlide. Se alguém conhecer um plugin melhor peço que me enviem, mas por enquanto o Erlide está me atendendo.

Após um revisão da linguagem aproveitei o clima de nostalgia e resolvi testar meus conhecimentos implementando o algoritmo de Garfinkel e Nemhauser para resolução de Unbounded Knapsack Problems (aka: UKP) ou em bom português: Problema da Mochila Ilimitada.












Para rodar basta executar no console do Eclipse (ou no shell do Erlang):
 ukpGN({{1,1,1},{2,3,4},{3,3,5}}, 5).
(Ou seja, resolva o problema para o cenário com:
Objeto 1 - peso 1 e valor 1
 Objeto 2 - peso 3 e valor 4
 Objeto 3 - peso 3 e valor 5
e "mochila" com capacidade para suportar peso de até 5)
Resposta:
[{1,2},{3,1}]
(Ou seja, objeto 1 aparece 2 vezes  e objeto 3 aparece 1 vez na solução ótima encontrada).

Da próxima vez quero ver se implemento algum algoritmo para computação distribuída em Erlang, já que esse é o grande appeal da linguagem.

quinta-feira, setembro 23, 2010

The Design of Design.

Resolvi dar uma passeada hoje após o trabalho na Livraria Cultura do Conjunto Nacional e ao passar os olhos pelos livros de IT me deparei com um livro que me despertou o interesse (a ponto de comprá-lo):

The Design of Design : Essays from a computer scientist  -- Frederick P. Brooks, Jr.

Making Sense of Design
Effective design is at the heart of everything from software development to engineering to architecture. But what do we really know about the design process? What leads to effective, elegant designs? The Design of Design addresses these questions.


Ou seja, aguardem posts futuros sobre minhas viagens na (lenta) leitura do mesmo.