UTILIZANDO TÉCNICAS DE ALGORITMO GENÉTICO PARA RESOLUÇÃO DO PROBLEMA DE GERAÇÃO DE GRADE HORÁRIA PARA ENFERMARIAS

Documentos relacionados
3. Resolução de problemas por meio de busca

Técnicas de Inteligência Artificial

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Max Pereira. Inteligência Artificial

Introdução aos Algoritmos Genéticos

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira

Técnicas de Inteligência Artificial

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

3 Algoritmos Genéticos

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan

1. Computação Evolutiva

3 Algoritmos Genéticos

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

Inteligência Artificial

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO

Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva

Algoritmos Genéticos

OTIMIZAÇÃO DA LIMPEZA DE REDES DE TROCADORES DE CALOR EMPREGANDO OS ALGORITMOS GENÉTICOS

Sistema para Geração de Escalas de Plantões Médicos

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

4 Implementação Computacional

11/1/2012. Agenda. Classe de problemas de interesse. Busca Local. Busca Local. Exemplo de Espaço de Estados

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP

Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO

Inteligência Artificial

UM ALGORITMO HEURÍSTICO PARA O PROBLEMA DE GERENCIAMENTO DE ESCALA OPERACIONAL DE CONTROLADORES DE TRÁFEGO AÉREO

3 Computação Evolucionária

Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos

Tópicos Especiais em Informática Fatec Indaiatuba

Aplicação de algoritmos genéticos. Problema da Mochila (knapsack problem)

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

Algoritmos Genéticos

COMPUTAÇÃO EVOLUTIVA APLICADA AO PROBLEMA DE PRODUÇÃO DE GRADE HORÁRIA: O CASO DO CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DO IFTM

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Introdução a Algoritmos Genéticos

Inteligência Computacional Aplicada. O que é Inteligência Computacional? Áreas de Aplicação Algoritmos Genéticos

Inteligência Artificial

Algoritmos Evolutivos para Otimização

Branch-and-Bound para problemas de Otimização Combinatória

3 Métodos de Otimização

3 Otimização Evolucionária de Problemas com Restrição

3 Otimização Aplicada a Reconstituição de Acidentes

Algoritmos Genéticos. 1 Semestre de Cleber Zanchettin UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática

ELABORAÇÃO DE UMA HEURÍSTICA PARA O PROBLEMA DE QUADRO DE HORÁRIOS DOS PROFESSORES DA UNIVERSIDADE ESTADUAL DO PARANÁ CAMPUS CAMPO MOURÃO

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações

Marcone Jamilson Freitas Souza

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Implementação De Um Algoritmo Genético Codificado Para A Solução do Problema do Caixeiro Viajante

PROPOSAL OF AN EVOLUTIONARY COMPUTATION BASED SYSTEM FOR HANDLING THE SPACE ALLOCATION PROBLEM: THE CASE OF UNIVERSIDADE FEDERAL DE UBERLÂNDIA

Métodos de pesquisa e Optimização

METAHEURÍSTICA Encontrar soluções boas ou até mesmo ótima

Ummétodohíbridoparaescalonar turnosdeenfermeiras

VERIFICAÇÃO DO DECAIMENTO DE INFORMAÇÃO EM REDES NEURAIS RECORRENTES APLICADAS AO PROBLEMA DO MUNDO DE WUMPUS 1

GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor:

INF 1771 Inteligência Artificial

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas

ESTUDO DO EFEITO DOS PARÂMETROS GENÉTICOS DE UM ALGORITMO GENÉTICO NA SOLUÇÃO OTIMIZADA E NO TEMPO DE CONVERGÊNCIA EM UMA FUNÇÃO DE DUAS VARIÁVEIS

COMPOSIÇÃO DE UMA CARTEIRA DE AÇÕES COM RISCO MÍNIMO E RETORNO ESPECIFICADO: UM ESTUDO UTILIZANDO ALGORITMO GENÉTICO E A FUNÇÃO SOLVER

Breve Avaliação de Parâmetros básicos de Algoritmos Genéticos

Figura 4.1: Módulos que compõe o sistema de otimização do OCTOPUS

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos

4 Métodos Existentes. 4.1 Algoritmo Genético

Pesquisa Operacional Aplicada à Mineração

6 Estudos de Casos Porta Lógica OU de 4 Entradas

1. Computação Evolutiva

Otimização com Algoritmos Genéticos no MATLAB. Prof. Rafael Saraiva Campos CEFET-RJ

APLICAÇÃO DE REDES NEURAIS RECORRENTES EM AMBIENTES PARCIALMENTE OBSERVÁVEIS 1

Uma Ferramenta Baseada em Algoritmos Genéticos para a Geração de Tabela de Horário Escolar

GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor:

Motivação Computação Evolucionária e Algoritmos Genéticos. Teoria da Evolução. Teoria da Evolução. Otimização. Algoritmos Genéticos AG

Problema de Satisfação de Restrições

Problema de Satisfação de Restrições. Problema de Satisfação de Restrições. Grafo de restrições. Exemplo: 4 Rainhas como um PSR

Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Estudo da influência de elitismo e mutação em algoritmos genéticos

Otimização dos horários de professores e turmas

Elaboração de Grades Horárias Utilizando Algoritmos Genéticos

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

UMA ABORDAGEM AO PROBLEMA DE SEQUENCIAMENTO EM UMA MÁQUINA COM PENALIDADES POR ANTECIPAÇÃO E ATRASO DA PRODUÇÃO POR MEIO DE ALGORITMOS EVOLUTIVOS

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo

Escalonador de Ordens de Produção Utilizando Algoritmos Genéticos

Uso de Algoritmo Genético para a otimização do ponto de corte da probabilidade de sucesso estimada do modelo de Regressão Logística

O USO DE ALGORITMOS GENÉTICOS NA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR RESUMO INTRODUÇÃO

Algoritmos Genéticos Fundamentos e Aplicações. Prof. Juan Moisés Mauricio Villanueva

Projeto de Escalonamento Alocação de médicos

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

Um Estudo Empírico de Métodos Hiper-Heurísticos

Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora

Transcrição:

Conferência IADIS Ibero-Americana Computação Aplicada 2013 UTILIZANDO TÉCNICAS DE ALGORITMO GENÉTICO PARA RESOLUÇÃO DO PROBLEMA DE GERAÇÃO DE GRADE HORÁRIA PARA ENFERMARIAS Ricardo Soares Bôaventura 1, Bruno Queiroz Pinto 1 e Keiji Yamanaka 2 1 Instituto Federal do Triângulo Mineiro Câmpus Uberlândia Centro Rua Blanche Galassi, 150 CEP 38401-114 Uberlândia/MG, Brasil 2 Universidade Federal de Uberlândia Faculdade de Engenharia Elétrica Av. João Naves de Ávila, 2121 CEP 38408-100 Uberlândia/MG, Brasil RESUMO A teoria da evolução inspirou a criação da computação evolutiva, ramo da computação capaz de solucionar problemas de otimização. Esta categoria de problemas pode ser solucionada eficientemente através da adoção de técnicas como algoritmos genéticos. Problemas de geração de grade horária são identificados em diversos contextos, o objetivo deste trabalho é descrever a aplicação de algoritmos genéticos na criação de uma grade horária otimizada para enfermarias. PALAVRAS-CHAVE Algoritmo Genético, Geração de Horário, Horários de Enfermarias e Inteligência Artificial 1. INTRODUÇÃO Uma importante tarefa na computação é a otimização na resolução de problemas, existe diversos problemas que apresentam grande quantidade de soluções possíveis e a identificação de uma solução eficiente é uma tarefa complexa, podendo demandar um esforço computacional considerável [Linden 2012]. Há diversas técnicas que podem ser utilizadas na solução deste tipo de problema, tais como: Algoritmos Genéticos (AG), GRASP (Greedy Randomized Adaptive Search Procedure), Busca Tabú, Algoritmo da colônia de formigas, Redes neurais artificiais, Simulated annealing, entre outras. Este trabalho utilizou a técnica de algoritmo genético. Tal técnica é baseada em três partes distintas: a codificação do problema, a função objetivo que se deseja maximizar ou minimizar e o espaço de soluções associado. A escolha da técnica de algoritmos genéticos é baseada na ampla utilização desta técnica na elaboração de escala de trabalho, devido principalmente à diversificação promovida pelo AG para obter os melhores resultados. O Problema de Geração de Horários, também conhecido como Timetabling Problem, trata da alocação de horários para as atividades em um determinado contexto, considerando-se restrições nestes horários. Este problema pode ser identificado em diversos contextos, tais como: escalonamento de enfermeiros, horários de aulas em instituições de ensino, horários de médicos e planejamento de transporte publico, entre outros. O desenvolvimento de uma solução para este problema de forma manual, além de ser trabalhosa e lenta, pode gerar soluções não tão boas. Este tipo de problema tem sido constantemente solucionado através do uso da técnica de algoritmos genéticos [Poltosi and Goméz 2007]. Desta forma, este trabalho desenvolveu um algoritmo, utilizando técnicas de algoritmos genéticos, capaz de encontrar uma boa solução na montagem de grade horária para enfermarias. 2. ALGORITMO GENÉTICO Algoritmo Genético é uma técnica baseada em computação evolutiva, tais técnicas se inspiram em princípios da teoria da evolução e seleção natural e utiliza modelos destes processos naturais para encontrar soluções de problemas [Bergamaschi and Bonfim 2010]. 71

ISBN: 978-972-8939-96-0 2013 IADIS Uma atividade essencial nesta técnica é a definição da representação de cada individuo que fará parte do processo de seleção natural, tal individuo é definido como cromossomo. Existem diversas formas de representá-lo, tais como: binária, inteira, real ou alfanumérica. Esta representação também é conhecida como alfabeto do Algoritmo Genético [Bergamaschi and Bonfim 2010]. A Figura 1 mostra um exemplo de representação do tipo alfanumérica, onde cada gene pode possuir somente um caractere. a b a b 0 1 a a 1 5 T r k v Figura 1. Representação alfanumérica do cromossomo. A primeira atividade na elaboração de um algoritmo genético é a criação de uma população aleatória de cromossomos (indivíduos). Os indivíduos que possuírem os cromossomos que representem uma boa solução receberão valores maiores, indicando uma maior probabilidade de ser uma boa solução do problema. A seleção de um bom indivíduo é dependente de uma função objetivo, que indica aquele que atende de forma mais adequada o problema que está sendo solucionado. A função objetivo informa o quanto um cromossomo está próximo da solução. Essa função fornece um valor que será usado para o cálculo de sua probabilidade para ser selecionado para reprodução. Esta função também é conhecida como função de aptidão [Linden 2012]. Dois indivíduos (pais) deverão ser selecionados para permitir a geração de dois novos indivíduos (filhos). Existem vários métodos de seleção utilizados nas aplicações de Algoritmos Genéticos: seleção por roleta, seleção Boltzmann, seleção por torneio, entre outros [Mattioli and Yamanaka 2009]. A seleção por roleta divide os indivíduos em grupos e faz aleatoriamente a sua seleção. Os melhores indivíduos ganham maiores espaços na roleta e piores indivíduos ganham espaços menores na roleta. Esta técnica permite selecionar indivíduos mais aptos, mas não exclui os indivíduos que não possuem um bom material genético [Russel and Norvig 2004]. Para a otimização ou substituição da seleção por roleta é possível adotar a técnica de seleção por torneio, que limita o tamanho (k) da população colocada na roleta. Esta técnica permite que indivíduos com baixa probabilidade participe de alguns cruzamentos. A geração dos novos indivíduos é possível pelo cruzamento entre os cromossomos dos indivíduos selecionados. Tal operação é essencial para o funcionamento de um Algoritmo Genético. Há diversas formas de realizar o cruzamento como: ponto de cruzamento único, dois pontos de cruzamento, cruzamento uniforme e cruzamento aritmético [Poltosi and Goméz 2007]. Garantir uma varredura ampla no espaço de possíveis soluções é essencial em todos os problemas de otimização. Para atender esta necessidade, algoritmos genéticos aplicam a operação de mutação após a operação de cruzamento. Esta operação evita que o algoritmo genético encontre precocemente mínimos ou máximos locais. A mutação é efetuada alterando-se o valor de um ou mais genes de um indivíduo sorteado aleatoriamente com uma determinada probabilidade, denominada probabilidade de mutação [Russel and Norvig 2004]. A reinserção dos indivíduos na população é a última etapa necessária, na qual os indivíduos capazes são preservados e os indivíduos com menor aptidão são descartados. Nesta etapa é possível utilizar a técnica de Elitismo, que permite manter os k melhores indivíduos e aleatoriamente preencher o restante, outra abordagem é o Elitismo Total, que mantém apenas os melhores indivíduos [Poltosi and Goméz 2007]. 3. GERAÇÃO DE GRADE HORÁRIA EM ENFERMARIAS A geração de horário em enfermaria geralmente apresenta o problema de determinar um cronograma de trabalho, geralmente no prazo de um mês, para os enfermeiros, que seja razoável e eficiente. Apesar de parecer trivial, este é um problema complexo devido às suas diversas restrições e muitas combinações possíveis [Camillo and Stelle 2008][Beppler and Leite 2009]. Este problema pode ser classificado como NP(Non-Deterministic Polynomial time), implicando a necessidade de utilizar técnicas não determinísticas na solução do problema [Camillo and Stelle 2008]. 72

Conferência IADIS Ibero-Americana Computação Aplicada 2013 Neste problema é necessário realizar a atribuição de turnos e férias para cada enfermeiro. Cada enfermeiro tem a sua vontade e suas preferências. A solução deve atender ao máximo possível estas preferências e também atender as necessidades das enfermarias. Normalmente um enfermeiro pode trabalhar nos turnos da manhã, tarde e noite (seis primeira horas) [Dias 2010]. Um enfermeiro também pode realizar plantão de 12 horas, que durante o dia compreende os turnos da manhã e tarde e durante a noite compreende toda a noite [Burke et. al. 2001]. As restrições das enfermarias são definidas por regras internas ou mesmo leis nacionais ou do órgão que regula a profissão. Uma enfermaria precisa respeitar estas regras para não ter problemas trabalhistas [Dias 2010]. A definição de uma grade horária eficaz permite a geração de quadros de horários otimizados garantindo a cobertura correta de profissionais ao longo do período e diminuindo o montante necessário de horas extras exigidas dos funcionários, o que implica em uma significativa redução de custos. Já os enfermeiros têm como benefício uma melhor qualidade de vida, visto que a escala gerada permite uma distribuição mais uniforme do trabalho. A melhoria no ambiente de trabalho permite que se ofereça um melhor atendimento à população [Camillo and Stelle 2008]. 4. DESENVOLVIMENTO DA APLICAÇÃO 4.1 Representação do Indivíduo Neste problema foi utilizado um cromossomo com n genes, onde n é igual a 2*Quantidade de Enfermeiros*Quantidade de Dias no Mês. A representação do cromossomo utiliza valores decimais, onde o gene em uma posição par representa o trabalho realizado pelo enfermeiro e as posições impares representa a enfermaria onde deverá ser realizado tal trabalho. Na representação do cromossomo há valores entre 0 e 6, onde: 0 representa que o enfermeiro irá trabalhar durante a manhã. 1 representa que o enfermeiro irá trabalhar durante a tarde. 2 representa que o enfermeiro irá trabalhar durante a noite. 3 representa que o enfermeiro folga nos três períodos do dia. 4 representa que o enfermeiro está de férias neste dia. 5 representa que o enfermeiro irá trabalhar em plantão durante o dia. 6 representa que o enfermeiro irá trabalhar em plantão durante a noite. Já na representação da enfermaria temos valores entre 1 e n, que indicam a enfermaria no qual o enfermeiro irá fazer seu trabalho, onde n é a quantidade de enfermarias cadastradas. Quando o trabalho é folga ou férias o valor da enfermaria será -1, pois este trabalho não é vinculado a nenhuma das enfermarias. A figura 2 mostra a representação de um cromossomo. Cada par de genes representa um dia especifico e 2*quantidade de dias representa o horário de um enfermeiro. Um cromossomo é um vetor com n*m elementos, onde n é a quantidade de enfermeiros e m é a quantidade de dias no mês multiplicado por dois. A escala de um enfermeiro é representado a cada m elementos. 0 1 0 1 1 2 1 2 2 1 3 3 3 5 1 3 6 2 3 Figura 2. Representação de parte do cromossomo. 4.2 Função Objetivo A função de aptidão foi gerada a partir de informações coletadas junto ao hospital das clinicas da USP de Ribeirão Preto. Nesta versão desenvolvida são consideradas 11 regras básicas que quando unidas geram o resultado da função de aptidão. A função de aptidão é definida pela fórmula: temr1*regra1() + temr2*regra2() + temr3*regra3() + temr4*regra4() + temr5*regra5() + temr6*regra6() + temr7*regra7() + temr8a*regra8a() + temr8b*regra8b() + temr9a*regra9a() + temr9b*regra9b(). 73

ISBN: 978-972-8939-96-0 2013 IADIS Cada uma das regras pode ser desativada ou ativada pelo usuário. Abaixo a descrição de cada uma das regras: Regra 1: penaliza a solução, quando ela não respeita o período de férias de um enfermeiro. A cada dia de férias não respeitado é acrescido o valor da penalidade. Regra 2: penaliza a solução, quando ela permite que um determinado período (Manhã, Tarde e Noite) fique sem enfermeiro. A cada período não atendido é acrescido o valor da penalidade. Regra 3: penaliza a solução, quando ela não permite a um enfermeiro que trabalhou a noite, folgar no outro dia. A cada ocorrência é acrescido o valor da penalidade da regra. Regra 4: penaliza a solução, quando ela não permite a um enfermeiro que trabalhou em um plantão noturno, folgar 36 horas. A cada ocorrência é acrescido o valor da penalidade da regra. Regra 5: penaliza a solução, quando ela não encontra uma quantidade suficiente de enfermeiros por período, esta quantidade é definida pelo usuário. Quando esta regra esta ativa ela desabilita a regra 2. Regra 6: penaliza a solução, quando ela não respeita a carga horária máxima de trabalho de um enfermeiro. A penalidade nesta regra é a quantidade de horas que excederam o limite mensal multiplicada pelo valor da penalidade da regra. Regra 7: penaliza a solução, quando ela permite a um enfermeiro trabalhar mais de 6 dias seguidos. A cada ocorrência é acrescido o valor da penalidade da regra. Regra 8a: penaliza a solução, quando um determinado dia fica sem plantonista noturno. A cada ocorrência é acrescido o valor da penalidade da regra. Regra 8b: penaliza a solução, quando um determinado dia fica sem plantonista diurno. A cada ocorrência é acrescido o valor da penalidade da regra. Regra 9a: penaliza a solução, quando a preferência do enfermeiro quanto ao período preferido não é atendido, o enfermeiro pode indicar o período de preferência para seu trabalho (Manhã, Tarde ou Noite). A cada ocorrência é acrescido o valor da penalidade da regra. Regra 9b: penaliza a solução, quando a preferência do enfermeiro quanto aos seus plantões não é atendido, o enfermeiro pode indicar o horário de preferência para seus plantões (noturno ou diurno). A cada ocorrência é acrescido o valor da penalidade da regra. A tabela 1 apresenta os pesos e situação padrão de cada regra. O usuário tem opção de modificar tais valores. Tabela 1. Pesos e condição de cada regra. Regra Ativada Peso Regra Ativada Peso Regra 1 Sim 10 Regra 7 Sim 3 Regra 2 Não 5 Regra 8a Sim 5 Regra 3 Sim 4 Regra 8b Não 1 Regra 4 Sim 4 Regra 9a Sim 1 Regra 5 Sim 3 (5 caso, número de enfermeiros = 0) Regra 9b Sim 1 Regra 6 Sim 3 4.3 Mutação, Cruzamento e Reinserção Nesta solução foram desenvolvidas as seguintes estratégias: Mutação: Mutação de um ponto. Foi adaptado para permitir mudar uma quantidade de até 10 genes. Mas o padrão é realizar a mutação de apenas um gene. Cruzamento: Foram desenvolvidas as técnicas de roleta e torneio que podem ser utilizados para selecionar os pais para o cruzamento, no cruzamento é considerado um ponto de corte. Reinserção: Foram desenvolvidas soluções baseadas em elitismo total ou parcial, com um máximo de k indivíduos elitizados. 74

Conferência IADIS Ibero-Americana Computação Aplicada 2013 4.4 Interface Gráfica Desenvolvida Neste projeto foi desenvolvido uma interface gráfica, apresentada na figura 3, que contém 5 partes distintas: Enfermaria: Permite ao usuário selecionar um arquivo em formato excel (XLS) que armazena os dados da enfermaria. Horário Mensal da Enfermaria: O usuário pode selecionar o mês e então executar o algoritmo genético. Após a sua execução, o usuário tem três modos de visualizar o resultado: Tabela com todos os dados gerados, grade horária por enfermaria, grade horária por enfermeiro. Preferências: O usuário tem a possibilidade de habilitar ou desabilitar regras, bem como modificar os pesos delas. Configuração do Algoritmo Genético: Esta interface permite definir várias configurações para a execução do algoritmo, tais como: quantidade de gerações, de indivíduos, taxas de mutação e de cruzamento, definição de quantidade de genes mutáveis e seleção do modo de elitismo. Gráfico: apresenta o desempenho do algoritmo genético. Figura 3. Interface Gráfica desenvolvida 5. EXPERIMENTOS O algoritmo genético desenvolvido foi executado em seis experimentos em ciclos contínuos de 5.000 gerações para evolução da solução. O experimento é finalizado quando um ciclo não apresenta melhorias ou quando apenas erros gerados em regras relacionadas às preferências dos enfermeiros ou horas extras forem identificados. Cada experimento foi executado três vezes, modificando a quantidade de enfermeiros. Em cada uma delas, a quantidade de enfermeiros testará os limites na geração da grade horária, de uma configuração fácil até uma difícil. A tabela 2 apresenta a configuração de cada um dos experimentos. 75

ISBN: 978-972-8939-96-0 2013 IADIS Tabela 2. Configurações dos experimentos Experimento Configurações 1 2 3 4 5 6 7 8 9 10 11 Primeiro 50 0.8 1 0.5 Ativa Ativa 2 11 15 7 2 Segundo 100 0.9 3 0.6 Ativa Ativa 2 11 15 7 2 Terceiro 100 0.9 3 0.5 Ativa Ativa 2 15 30 7 4 Quarto 50 0.9 3 0.6 Ativa Ativa 3 11 15 10 2 Quinto 50 0.7 1 0.6 Ativa Ativa 3 17 15 10 2 Sexto 100 0.9 5 0.7 Ativa Ativa 3 17 15 10 2 Legenda das configurações: 1 : Quantidade de Indivíduos; 2 : Taxa de mutação; 3: Quantidade de genes mutáveis; 4: Taxa de Cruzamento; 5: Seleção por torneio (ativo ou inativo); 7: Quantidade de Enfermarias; 8: Quantidade de Preferências 9: Quantidade de dias de férias dos enfermeiros 10: Necessidade de enfermeiros por dia(manhã+tarde+noite) nas enfermarias 11: Mês (1 à 12); 6: Elitismo Total (ativo ou inativo); A figura 4 apresenta os gráficos gerados pela aplicação, com o desempenho do algoritmo no primeiro experimento. A ferramenta desenvolvida disponibiliza informações quando ao desempenho apresentado, permitindo ao usuário otimizar a sua configuração. Cada gráfico mostra a evolução da solução do problema em cada configuração. Figura 4. Gráfico com o desempenho do algoritmo genético. A tabela 3 apresenta a análise das execuções de cada um dos experimentos, apresentando, a quantidade de enfermeiros (QE) cadastrados para teste, a penalidade identificada (Erros) pela função objetivo e o número de gerações que foram necessárias para encontrar uma solução adequada. Uma solução adequada é aquela no qual todas as regras que apresentam grande penalidade são satisfeitas e geram erro próximo a zero. O segundo número presente no campo Erros, entre parênteses, representa uma descrição do erro. Os experimentos um e dois conseguiram criar soluções que respeitavam as regras da enfermaria, entretanto não conseguiram atender a todas as preferências dos enfermeiros. Quando a quantidade de enfermeiros foi igual a 13 gerou soluções que necessitam de hora extra de alguns enfermeiros. 76

Conferência IADIS Ibero-Americana Computação Aplicada 2013 Tabela 3. Resultado dos experimentos Primeira Execução Segunda Execução Terceira Execução QE Erros Gerações QE Erros Gerações QE Erros Gerações 1 13 15 (2) 15000 14 6 (1) 5000 15 5 (1) 5000 2 13 13 (2) 15000 14 6 (1) 5000 15 5 (1) 5000 3 13 52 (3) 25000 14 36 (2) 15000 15 24 (2) 10000 4 18 20 (3) 20000 19 6(2) 5000 20 2(1) 5000 5 18 25 (3) 20000 19 10(2) 5000 20 6(1) 5000 6 18 22 (3) 20000 19 08(1) 5000 20 5(1) 5000 QE: Quantidade de Enfermeiros Erros: valor retornado pela função objetivo, indicando a penalidade da solução, onde: (1): Apenas regras relacionadas a preferências dos enfermeiros não respeitadas. (2) : Regra número 6 não respeitada, necessidade de pagar hora extra. (3) : Regras internas ou leis foram desrespeitadas (regras 1, 2, 3, 4, 7, 8) O experimento três apresentou mais restrições, gerando soluções que acarretaram uma quantidade maior de horas extras e no caso de poucos enfermeiros, o não atendimento da folga de 36 horas após a execução de um plantão. Os demais experimentos mostraram que é possível evoluir a solução propondo configurações diferentes para o algoritmo genético. Os experimentos demonstram que o algoritmo consegue evoluir a solução, entretanto necessita, em alguns casos, de muitas gerações. O algoritmo conseguiu na maioria dos casos encontrar uma solução satisfatória. Tais soluções podem ser evoluídas disponibilizando mais gerações para a sua evolução. 6. RESULTADOS E DISCUSSÕES As regras propostas apresentaram um bom desempenho, permitindo definir um horário que foi capaz de satisfazer tanto restrições das enfermeiras como dos hospitais, entretanto seria possível criar diversas outras, tais como: restringir um enfermeiro a uma enfermaria especifica, definir uma preferência a dias da semana, definir preferências de trabalho em equipe e definir restrições de acessibilidade nas enfermarias. A solução proposta, além de poder ser utilizada para geração do escalonamento da força de trabalho de uma enfermaria, pode ser empregada para o planejamento do quadro necessário de enfermeiros. A configuração do problema gera cromossomos grandes, que oneram muito o processamento. A criação de grades horárias para diversas enfermarias com dezenas de enfermeiros pode gerar cromossomos com milhares de genes. O algoritmo demandou uma grande quantidade de gerações para encontrar uma solução adequada ao problema, isto se deve principalmente a complexidade do cromossomo. A função de aptidão influenciou diretamente no desempenho do algoritmo, uma grande quantidade de regras ativas gera uma necessidade de grande processamento. Para superar tais dificuldades, é proposto como trabalho futuro: paralelizar a solução das regras e os processos de cruzamento e mutação, otimizar a representação do cromossomo e também estudo e implantação de outras técnicas de computação evolutiva para solucionar o problema. A identificação de uma configuração ótima para o algoritmo genético poderia ser obtida através da aplicação de técnicas de redes neurais, que permitiria identificar um padrão ótimo para tal configuração. 77

ISBN: 978-972-8939-96-0 2013 IADIS REFERÊNCIAS BIBLIOGRÁFICAS Beppler, A. and Leite, D. P., 2009. Sistema para geração de escalas de plantões médicos, in III EPAC Encontro Paranaense de Computação. pp. 174-183. Bergamaschi, P. R. and Bonfim, I. P, 2010). O Método de Otimização Evolução Diferencial: uma análise dos parâmetros fator de perturbação e probabilidade de cruzamento, in Anais do II Simpósio de Matemática e Matemática Industrial SIMMI 2010, Vol. 1, ISSN 2175-7828. Burke, E. B., et al, 2001. Fitness Evaluation for Nurse Scheduling Problems. In Evolutionary Computation. pp. 1139-1146 vol. 2. Camillo, C. and Stelle, D., 2008. Aplicando Algoritmos Genéticos ao problema de definição de escala de trabalho do corpo de enfermagem de um Hospital Universitário. In XL SBPO Simpósio Brasileiro de Pesquisa Operacional. pp. 1216-1224. Dias, H. J. C., 2010. Escalonamento de equipas de enfermagem de acordo com a previsão das necessidades de serviço. Dissertação de Mestrado. Universidade Técnica de Lisboa. Instituto Superior de Economia e Gestão. Linden, R., 2012. Algoritmos genéticos: uma importante ferramenta da inteligência computacional. 3ª Edição. São Paulo: Brasport. Mattioli, F. and Yamanaka, K., 2009. Algoritmos Genéticos aplicados à programação de Manutenção de Sistemas Elétricos de Potência. Poltosi, M. R. and Goméz A. T., 2007. Elaboração de escalas de trabalho de técnicos de enfermagem com busca tabu e algoritmo genético. In XXXIX Simpósio Brasileiro de Pesquisa Operacional - SBPO. Pp 1832-1843. Russel, S. and Norvig P., 2004. Inteligência Artificial. São Paulo : Editora Campus. 78