Blog do faraohh

Assuntos diversos, inclusive tecnologia.

Arquivo da categoria ‘Software Livre

Nurse Scheduling Problem (Problema de Escalonamento de Enfermeiras)

fazer um comentário »

Introdução

Mais conhecido com NSP (Nurse Scheduling Problem) ou Problema de Escalonamento de Enfermeiras(os) determina o ação de trabalho em um quadro de enfermeiras em um período específico levando em considerações várias restrições, buscando atender um objetivo específico.

Definição do Problema

Dependendo da quantidade de restrições e das relações entre elas, o problema pode ser NP-difícil e pode ser usado (meta-)herísticas para ser resolvido.

Modelagem

Iremos abordar o assunto tratando uma instância simples, seguindo a seguinte estrutura para cada enfermeira:

Turno/Semana Domingo Segunda Terça Quarta Quinta Sexta Sábado
Turno1
Turno2
Turno3

Cada enfermeira preeche a tabela segundo sua preferência de trabalho, seguindo os seguintes critérios:

  • Não Quero (0,0)
  • Talvez (0,5)
  • Quero (1,0)

Essa estrutura será replicada dentro do horizonte de planejamento, que pode ser de 1 mês, 1 semestre (6 meses) ou o período que for necessário.

Restrições

São inúmeras restrições que podem variar segundo a realidade de cada hospital/enfermaria e realidade trabalhista de cada país/estado, logo iremos definir nossas restrições para abordar um instância do problema, mais ou menos segundo a realidade dos hospitais brasileiros.

  1. Uma enfermeira não pode trabalhar mais de um turno por dia;
  2. As enfermeiras podem trabalhar no máximo “x” dias seguidos de trabalho;
  3. Quantidade mínima e máxima de enfermeiras por dia e turno de trabalho;
  4. Carga mínima de trabalho por enfermeira;
  5. Enfermeiras que não podem trabalhar juntas;
  6. Alocar a enfermeira segundo sua preferência por Turno/Semana de trabalho.

Função Objetivo

O problema pode ser resolvido usando Programação Linear ou Programação Linear Inteira dependendo do tipo de modelagem, para resolver o problema temos que definir um função objetivo que pode ser maximizar ou minimizar algo, por exemplo no modelo acima queremos maximizar as preferências das enfermeiras.

Software

Criamos um software em PHP usando banco de dados MySQL e uma ferramenta chamada GLPK (GNU Linear Programming Kit) e versionamos o código em Projeto NSP quem quiser dar um olhada o projeto está no ar.

Escrito por Marcello Henrique

30/12/2009 em 10:40

Publicado em Software Livre

Etiquetado com ,

Software Livre e Ferramenta de Desenvolvimento

fazer um comentário »

Recebi o convite para participar do “Encontro Qualidade de Software e Tecnologia Aberta” [0] promovido pela SEFAZ [1] (Secretaria da Fazenda) e UEG [2] (Universidade Estadual) de Goiás.

Coordenadores de TI da Secretaria de Segurança Pública [3], Secretaria de Saúde de Goiás [4], UFG (Universidade Federal de Goiás) [5] e ASL-GO (Associação do Software Livre de Goiás) [6] compareceram e concluíram que devem unir esforços para promover a evolução tecnológica e intelectual nas esferas do governo.

Tive a oportunidade de falar de Software Livre e ferramentas de desenvolvimento de software, durante o evento perguntas valiosas foram feitas e tivemos a oportunidade de compartilhar o conhecimento adquirido que é a razão da existência das comunidades livres baseadas na filosofia Open Source.

Fomos informados que o próximo evento que acontecerá ainda no primeiro semestre de 2009, as informações serão divulgadas em [0], parabenizamos os idealizadores do evento, um grande exemplo a ser seguido. Como bom membro da comunidade gostaria de deixar o link dos fontes da palestra [7] e a palestra em si [8] para os proveitos que se fizerem necessários.

Referências:

[0] http://www.softwarelivre.goias.gov.br/

[1] http://www.sefaz.go.gov.br

[2] http://www.ueg.br

[3] http://www.sspj.go.gov.br

[4] http://saude.go.gov.br

[5] http://www.ufg.br

[6] http://www.aslgo.org.br

[7] http://git.cercomp.ufg.br/?p=catedralxbazar.git;a=summary

[8] catxbzr

Escrito por Marcello Henrique

30/04/2009 em 19:24

Publicado em Software Livre

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.