Em um recente trabalho no mestrado necessitei apresentar uma solução para um problema de Otimização Combinatória: Escalonamento de Enfermeiras.

A biblioteca GLPK (GNU Linear Programming Kit) é uma das que podem ser utilizadas para resolver este tipo de problema. Procurei por uma unit com a tradução das funções da dll para Delphi. Consegui encontrar referência para uma interface, chamada DELI, que foi feita no ano de 2003. Porém a mesma está muito defasada e sem atualização, além de não conter mapeamento para as funções que eu necessitava. Na época havia referências que ela seria distribuída juntamente com a distribuição oficial do GLPK. Não é o que se vê hoje, no repositório.

Dado estes fatos, resolvi criar uma interface para Delphi atualizada. O link abaixo dá acesso à interface.

Para usar e distribuir o software, você precisa adicionar a unit glpk.pas no seu projeto no Delphi e distribuir a glpk.dll.

Existe um projeto que distribui a glpk.dll, mas a última atualização foi para a versão 4.34. Esta versão da dll também depende de duas outras, libltdl3.dll e zlib1.dll.

Percebi que, compilando os fontes atuais com Visual Studio, a dll gerada não necessita mais destas bibliotecas. Então deixo o link para ela também. A versão compilada é a 4.39 obtida diretamente do site da fundação GNU.

O arquivo acompanha um pequeno exemplo, carregando um modelo em MathProg e exibindo a solução.

GLPK Interface for Delphi

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s