Você está na página 1de 8

Uma Aplicao de Simulated Annealing para o Problema de Alocao de Salas

Amanda Svio Nascimento e Silva1, Rudini Menezes Sampaio2, Guilherme Bastos Alvarenga3 UFLA Universidade Federal de Lavras DCC Departamento de Cincia da Computao Cx Postal 37 CEP 37200-000 Lavras (MG) 1 amanda.nascimento@gmail.com, {2rudini, 3guilherme}@dcc.ufla.br

Resumo. Este artigo apresenta uma soluo algortmica para o Problema de Alocao de Salas (PAS) utilizando a meta-heurstica Simulated Annealing (Tmpera Simulada). A soluo por meta-heursticas foi escolhida, visto que o PAS um problema de otimizao NP-Difcil [16]. Alm disso, escolheu-se a Tmpera Simulada por j haverem outros estudos com esta abordagem para o PAS. Em comparao com esses estudos, os resultados foram satisfatrios, visto que o mtodo permite movimentos de piora como forma de escapar de timos locais. Para implementao do algoritmo, usou-se a linguagem de programao Java e trs conhecidas instncias do PAS para testes. Palavras-chaves: Problema de Alocao de Salas, Simulated Annealing, meta-heursticas, problema NP-Difcil.

An Application of Simmulated Annealing to the Class Allocation Problem


Abstract. This paper presents an algorithmic solution to the Class Allocation Problem (CAP) using the Simulated Annealing meta-heuristic. The meta-heuristic approach was chosen since CAP is a NP-Hard problem. The simulated annealing approach was chosen since there is several works of CAP with this method. We present too a comparative study with this works. The JAVA language was used to implement the algorithm and three known instances were used to test the program. Keywords: Class Allocation Problem, Simulated Annealing, meta-heuristics, NP-Hard problem.

(Received May 10, 2005 / Accepted August 22, 2005)

1. Introduo A rea de concentrao deste trabalho o Problema de Alocao de Salas (PAS). Este problema tratado como parte integrante do Problema de Programao de Cursos Universitrios (course timetabling), pertencendo assim a categoria de Problemas de Programao de Horrios (PPH). A conhecida dificuldade desses problemas j uma grande motivao para este trabalho. O PAS um Problema de Otimizao Combinatria bastante estudado. Ele um problema NP-Difcil [8], [16], inviabilizando sua soluo

manual e impossibilitando sua resoluo por mtodos de programao matemtica (mtodos exatos) para grandes instncias. Uma vez que no possvel encontrar a soluo tima do PAS em tempo razovel para grandes instncias, esse problema normalmente tratado atravs de tcnicas heursticas e/ou algoritmos aproximativos, que apesar de no garantirem encontrar a soluo tima do problema, so capazes de retornar uma soluo de qualidade em um tempo adequado para as necessidades da aplicao. Ressalta-

se que dentre as heursticas, merecem especial ateno as chamadas meta-heursticas, que surgiram como uma alternativa para amenizar a dificuldade que os mtodos heursticos tem de escapar dos chamados timos locais. Sem essa dificuldade, as metaheursticas podem partir em busca de regies mais promissoras no espao de solues viveis. 1.1. Objetivos e Justificativas A meta-heurstica escolhida para este trabalho foi a Tmpera Simulada (Simulated Annealing). A aplicao da Tmpera Simulada a Problemas de Horrios tem tido relativo sucesso, conforme observado na literatura [2], [10], [22]. Para a implementao do PAS foram consideradas 3 (trs) instncias testes, sendo uma fictcia, uma baseada num caso simplificado da Universidade Federal de Lavras (UFLA) e outra baseada no caso real do Problema de Alocao de Salas do Instituto de Cincias Exatas e Biolgicas (ICEB) da Universidade Federal de Ouro Preto (UFOP) [10]. Para comparao, no foi possvel conseguir todas as informaes relevantes a ltima instncia, estando disponveis apenas o nmero de turmas, horrios das aulas e nmero de salas do ICEB. Foi utilizado banco de dados para armazenamento das informaes, visto que se a mudana de uma instncia para outra fosse feita manualmente, a soluo poderia ser insatisfatria com relao vrios aspectos, como por exemplo, salas superlotadas, aulas de disciplinas distintas alocadas em uma mesma sala em um mesmo horrio, salas com restries de uso com um nmero excessivo de aulas alocadas, utilizao ineficiente do espao (turmas pequenas em salas de grande capacidade), por causa do grande nmero de variveis e restries que devem ser atendidas para obteno de uma soluo tima ou prxima da tima. Uma vez que o Problema de Horrios (consequentemente o Problema de Alocao de Salas) de difcil generalizao, sendo desenvolvido na maioria das vezes, para atender a uma instituio especfica, dado que h uma diversidade de regimes que variam de instituio para instituio, no existe na literatura um conjunto de problemas que possa ser usado na avaliao desses algoritmos. Sendo assim, pretende-se avaliar o algoritmo implementado atravs da observao crtica da soluo gerada pelo

programa, avaliando-se, por exemplo, quantas inviabilidades o programa retirou de uma soluo inicial para gerar a soluo final. Alm disso, feita uma observao do mtodo proposto em relao aos mtodos j existente na literatura atravs da comparao do desvio percentual mdio em relao a melhor soluo encontrada neste trabalho. 2. Problema de Alocao de Salas O Problema de Alocao de Salas pode ser tratado como um Problema de Programao de Horrios, mais precisamente como um Problema de Programao de Cursos Universitrio (Course Timetabling), ou como um problema derivado deste (Classroom Assigment) [4]. Para a ltima situao, considera-se que as aulas dos cursos universitrios j tm seus horrios de incio e de trmino definidos. O problema resume-se ento na alocao das aulas s salas respeitando os horrios destas aulas e outras restries. Em [22], usada uma metodologia que combina as meta-heursticas Tmpera Simulada e Busca Tabu (Tabu Search) na resoluo do PAS. Em [10], tratado o Problema de Alocao de Salas, utilizando apenas a Tmpera Simulada. 3. Modelagem do Problema Para a representao de uma alocao (soluo) do problema utilizada uma matriz S = s yw

( )

mxn

onde

m representa o nmero de horrios reservados para a realizao das aulas e n o nmero de salas disponveis. A turma t alocada ao horrio y e sala w , tal alocao representada da seguinte maneira t = s yw . Uma sala vazia indica que a sala w est desocupada no horrio y . Um exemplo simples de
representao dado pela Figura 1 [10], onde, na sala 1, os horrios 1, 2 e 3 esto ocupados com aulas da turma 3, e a sala 4 encontra-se desocupada no primeiro horrio. 3.1. Estrutura de Vizinhana De acordo com [10], seja s um vizinho de uma soluo s . Para se atingir s a partir de s , so usados dois tipos de movimentos: realocao e troca.
, ,

Figura 1: Exemplo de Alocao de Salas O movimento de realocar uma dada turma a uma sala que esteja vazia nos horrios de realizao desta aula caracteriza o Movimento de Realocao. Observa-se que tal movimento s possvel se a sala que receber as aulas de uma turma estiver disponvel nos horrio de aulas da turma em questo. J o Movimento de Troca consiste em trocar de sala as aulas de duas turmas realizadas em um mesmo bloco de horrios. Para realizao deste movimento, essencial que nos horrios envolvidos as salas estejam apenas com aulas das turmas relacionadas com a operao ou estejam vazias. Uma soluo

II. Requisitos no Essenciais: so aqueles que, se no satisfeitos, no geraro alocaes inviveis, contudo seu atendimento desejvel. Exemplos: A. Certas salas tm restries de uso e a utilizao delas deve ser evitada sempre que possvel. B. Sempre que possvel alocar a uma mesma sala alunos de um mesmo curso e perodo. C. Utilizar o espao das salas eficientemente, isto , evitar alocar aulas de turmas pequenas em salas de maior capacidade. D. Se possvel, cada uma das salas deve ser deixada vazia em pelo menos um horrio ao longo do dia, de forma a possibilitar sua limpeza. Com isso, segundo [10] e [22], uma alocao (ou soluo) s pode ser medida com base em duas componentes, uma de inviabilidade g ( s ) , a qual mede o no atendimento aos requisitos essenciais, e outra de qualidade h ( s ) , a qual avalia o no atendimento aos requisitos considerados noessenciais. A funo objetivo f que associa cada soluo s do espao de solues a um nmero real

s N (s) , sendo N ( s ) a

f ( s ) deve ser minimizada.


A Figura 2 mostra a modelagem do PAS (funo objetivo e restries). Para que uma soluo seja vivel os requisitos essenciais devem ser atendidos, ou seja, g ( s ) = 0 . Uma vez que nas componentes da funo f ( s ) os pesos dados s diversas medidas devem refletir a importncia relativa de cada uma delas, deve-se tomar

estrutura de vizinhana considerada, dita vizinha de s se ela pode ser acessada a partir desta atravs dos movimentos de troca ou realocao. 3.2. Funo Objetivo De acordo com [10], para avaliar uma alocao, os requisitos do problema so primeiramente divididos em duas classificaes: I. Requisitos essenciais: geraro uma alocao invivel, caso no sejam satisfeitos. Exemplos: A. Em uma mesma sala e horrio no pode haver mais de uma aula. B. Uma sala no pode receber uma turma cuja quantidade de alunos seja superior sua capacidade. C. Algumas salas tm alguns horrios previamente reservados para a realizao de outras atividades e nesses horrios ficam indisponveis.

muito maior que

k , para todo l , k , de forma a

viabilizar a eliminao de solues no-viveis. 4. Simulated Annealing Simulated Annealing (SA), tambm conhecido por Tmpera ou Recozimento Simulado, foi proposto originalmente em [17], sendo um mtodo de busca local que aceita movimentos de piora como forma de escapar de timos locais.

caracteriza o procedimento principal, gera aleatoriamente, em cada iterao, um nico vizinho

s , da soluo corrente s . A variao do valor da


funo objetivo testada a cada gerao de um vizinho. Para o teste desta variao feito o seguinte clculo: = f s f ( s ) .
,

( )
,

Se < 0 , s passa a ser a nova soluo corrente. Se o vizinho gerado for pior por uma quantidade

> 0 , ele aceito com uma probabilidade e / T , onde T um parmetro do mtodo chamado
temperatura. Esse processo repetido at que T seja to pequeno que nenhum movimento possa ser aceito, ou seja, o sistema est estvel. Segundo [18], a soluo obtida quando o sistema se encontra nesta situao evidencia o encontro de um mnimo local. Observa-se que a probabilidade de aceitar movimentos que degradam o valor da funo objetivo decresce com a temperatura. Figura 2: Modelagem do PAS Embora tenha sido desenvolvido h poucos anos, ela tem se mostrado uma importante ferramenta de otimizao. A SA simula um mtodo natural, fundamentado numa analogia com a termodinmica ao simular o resfriamento de um conjunto de tomos aquecidos, operao conhecida como Recozimento (annealing) [17]. O termo e operao de Recozimento so amplamente utilizados na metalurgia. O pseudocgido do algoritmo mostrado na Figura 5. De acordo com [6], este algoritmo se decompe em duas grandes buscas sobrepostas: A busca interna contm o processo de otimizao. Observa-se que para uma temperatura fixa, explora-se a vizinhana aceitando ou no os movimentos que so apresentados. A busca externa controla o trmino do processo e baseada na noo de estados resfriados. Considera-se que um estado esteja resfriado se no houver mais chances de se achar uma soluo melhor ao se continuar a explorao.

5. Resultados Computacionais O programa desenvolvido para a resoluo do PAS, baseado no algoritmo da Figura 5, foi implementado na linguagem JAVA, utilizando a mquina virtual Java j2sdk1.4.2 e o editor NetBeans, para facilitar a implementao da interface grfica. A escolha da linguagem JAVA foi por esta ser uma linguagem multiplataforma, e por sua forte convico na orientao a objetos, que torna a modelagem do sistema mais natural e fcil de se realizar, alm de permitir a reutilizao de cdigos. O sistema desenvolvido foi testado em um microcomputador PC AMD Atlhon. 1.3 MHz, com 64 MB de RAM sob o sistema operacional Windows 2000. Foram testadas trs instncias a fim de se tentar propor uma soluo para o PAS. Ressalta-se que o programa foi feito de maneira flexvel o que torna imediato o teste com quaisquer outras instncias, bastando atualizar a base de dados. Das trs instncias utilizadas, temos uma fictcia, uma baseada num caso simplificado da UFLA e outra baseada no caso real do ICEB-UFOP, como j mencionado. A tabela 1 apresenta um resumo das caractersticas das trs instncias.

O algoritmo comea a busca a partir de uma soluo inicial qualquer. O lao de iteraes, que

Instncia

Nmero de Nmero de Salas Turmas Instncia I 6 48 Instncia II 10 73 Instncia III 31 254 Tabela 1: Instncias Testadas Para o clculo da funo objetivo das instncias I e III foram considerados os seguintes pesos: Penalidade para demanda da turma maior que a capacidade da sala: 260 por aluno Penalidade para capacidade da sala maior que a demanda da turma: 0.01 por aluno Penalidade para restries de uso das salas que foram violadas: 1.0 Penalidade para a sala que no ficou pelo menos durante um horrio do dia destinada a limpeza, sem alocar turma: 1.0 J para o clculo da funo objetivo da Instncia II, foram considerados os seguintes pesos: Penalidade para demanda da turma maior que a capacidade da sala: 100 por aluno Penalidade para capacidade da sala maior que a demanda da turma: 5 por aluno Penalidade para restries de uso das que foram violadas: 1.0 Penalidade para a sala que no ficou pelo menos durante um horrio do dia destinada a limpeza, sem alocar turma: 1.0

O desvio percentual em relao a melhor soluo encontrada para Instncia III, 9.69%, melhor se comparado ao uso da Recozimento Simulado para o Problema de Alocao de Salas do ICEB da UFOP existente na literatura [22], cujo valor do desvio de 10.87%. Este resultado apesar de demonstrar que o programa desenvolvido neste trabalho eficiente e estvel no permite afirmar que o programa aqui desenvolvido melhor que o j existente, visto que como dito anteriormente, a base de dados usada nos dois programas diferem em alguns detalhes, inclusive no valor da funo objetivo para a melhor soluo. A Tabela 3 mostra o nmero de inviabilidades relacionadas a quantidade de alunos que excede a capacidade da sala, tanto para a soluo inicial como para a soluo final, gerada pela SA. Instncias N Inviabilid. N Inviabilid. Inicial Final Instncia I 50 10 Instncia II 445 74 Instncia III 8942 16 Tabela 3: Nmero de Inviabilidades

A Tabela 2 apresenta, para cada uma das instncias, o melhor valor encontrado para a funo objetivo e o desvio percentual mdio em relao melhor soluo encontrada. Instncia Soluo Final Desvio % (Melhor Soluo) Instncia I 5847.29 7.78% Instncia II 35125.00 15.6% Instncia III 27920.94 9.69% Tabela 2: Resultados Computacionais

Para o clculo do desvio percentual, foram realizados uma srie de testes com cada uma das instncias.

Em todos os testes executados, observou-se uma reduo satisfatria no nmero de inviabilidades do tipo demanda maior que a capacidade. Para gerao da soluo inicial vivel, utilizada uma heurstica, que, no entanto, no garante encontrar tal soluo mesmo que existam, por ser tambm um problema NP-Difcil. Apesar disso, o algoritmo produziu boas alocaes em um tempo mnimo. Baseado na soluo inicial, o tempo de execuo do algoritmo, medido pelos testes, pode ser considerado satisfatrio (20 minutos, em mdia). O fato da soluo final possuir inviabilidades no de todo ruim, devido a complexidade do problema, ao grande nmero de restries e a possibilidade de interveno humana para correo manual. Isso no seria to problemtico quanto gerar toda uma alocao de boa qualidade manualmente. Nas alocaes geradas durante os testes, para a Instncia III, nenhuma sala, em um mesmo horrio, recebeu mais de uma aula. Em mdia uma sala por alocao no tinha um horrio ao longo do dia destinado a limpeza, as restries de uso das salas raramente eram violadas e aulas com horrios consecutivos sempre so alocadas em uma mesma

sala. Esses fatos contribuem para a eficincia do algoritmo proposto e para a qualidade das solues geradas. A figura 3 apresenta a grade de horrios na segunda-feira relativa alocao inicial da Instncia II, obtida pela heurstica. A figura 4 apresenta a grade de horrios na segunda-feira relativa soluo final da Instncia II, obtida pela Tmpera Simulada. Ss clulas sombreadas indicam que na sala correspondente o nmero de alunos da turma alocada excedeu a capacidade da sala. Pode-se observar que estas inviabilidades so eliminadas pelo algoritmo para gerar a alocao final. As solues geradas para as Instncias I e III seguem o mesmo padro dessas grades. Para trabalhos futuros, prope-se a incluso de novas restries ao modelo, aumentando a sua complexidade. Pretende-se ainda utilizar uma base de dados real e bem mais ampla, como por exemplo, o Problema de Alocao de Salas da Universidade Federal de Lavras (UFLA).

Segunda-feira Horrios 7 8 9 10 11 12 13 14 15 16 17 18 19 Sala 489 -- -- -- -- -- -- 47 47 66 66 -- -- -Sala 481 -- -- 9 9 3 -- 19 19 -- -- -- -- -Sala 482 57 57 -- -- -- -- 8 8 -- 50 50 53 53 Sala 483 1 1 -- -- -- -- -- 68 68 -- -- -- -Sala 484 -- -- -- -- -- -- -- -- -- -- -- -- -Sala 485 -- 12 -- -- -- 14 14 11 11 -- -- -- -Sala 486 -- -- -- -- -- -- -- -- 39 39 -- -- -Sala 487 -- -- -- -- -- -- -- -- -- -- -- -- -Sala 488 -- -- -- -- -- -- -- -- -- -- -- -- -Sala 490 35 -- 5 5 5 -- 62 62 -- 13 67 -- -Sala 491 -- -- 51 51 -- 7 7 7 30 30 -- -- -Sala 492 -- -- -- -- -- -- 45 45 -- 70 70 -- -Sala 493 -- -- -- -- -- 6 6 -- -- -- -- -- -Sala 494 -- 2 2 2 10 10 -- -- -- -- -- -- -Figura 4: Grade de Horrios da Soluo Final

Segunda-feira Horrios 7 8 9 10 11 12 13 14 15 16 17 18 19 Sala 489 -- -- -- -- -- 6 6 -- 39 39 -- 53 53 Sala 481 -- -- -- -- -- -- -- -- -- -- -- -- -Sala 482 35 -- -- -- -- -- -- -- -- -- -- -- -Sala 483 -- -- -- -- -- 7 7 68 68 70 70 -- -Sala 484 -- -- 51 51 -- -- 47 47 66 66 -- -- -Sala 485 -- -- -- -- -- -- 19 19 -- -- 67 -- -Sala 486 57 57 -- -- -- 14 14 -- -- -- -- -- -Sala 487 -- -- -- -- -- -- 8 8 -- -- -- -- -Sala 488 -- -- 5 5 5 -- -- 11 11 -- -- -- -Sala 490 -- -- -- -- -- -- 62 62 -- 13 -- -- -Sala 491 -- -- 9 9 10 10 -- -- -- -- -- -- -Sala 492 -- 12 -- -- -- -- -- -- -- -- -- -- -Sala 493 1 1 -- -- -- -- -- -- -- -- -- -- -Sala 494 -- 2 2 2 -- -- -- -- -- -- -- -- -Figura 3: Grade de Horrios da Soluo Inicial

6. Referncias Bibliogrficas [1] AARTS E. e KORST J., Simulated Annealing and BoltzmannMachine, John Wiley, 1989. [2] ABRAMSON, D. Constructing School Timetables Using Simulated Annealing: Sequential and Parallel Algorithms, Management Science, 37:98113, 1991. [3] ANDRADE, C.E. ; BATISTA, F.L.C.; TOSO, R.F. Modelo de Otimizao para Transporte de Cargas em Ambientes Reduzidos, 2004. Monografia, DCC, UFLA, Lavras. [4] BARDADYM, V. A. Computer-Aided School and University Timetabling: The New Wave, Lecture Notes in Computer Science: 1153:22-45,1996. [5] BERNARDI, R. Aplicando a Tcnica de Times Assncronos na Otimizao de Problemas de Empacotamento Unidimensional. 2001. Dissertao de Mestrado, USP, So Paulo.

[6] BIAJOLI F, L. Resoluo do Problema de Programao de Jogos do Campeonato Brasileiro de Futebol. 2003. Monografia, UFOP, Ouro Preto. [7] BURKE, E.K., COWLING, P., LANDA SILVA, J.D. and MCCOLLUM, B. Three Methods to Automate the Space Allocation Process in UK Universities, Lecture Notes in Computer Science, 2079: 254-276, 2001. [8] CARTER, M.W. A survey if Practical Applications of Examination Timetabling algorithms. Operations Reserch, v. 34, pp. 193-202, 1986. [9] CARTER, M.V. and TOVEY, C.A. When Is the Classroom Assignment Problem Hard? Operations Research, 40:S28-S39, 1992. [10] CASTRO, O. M. Resoluo do problema de alocao de salas de aula via Simulated Annealing. 2003. Monografia, UFOP, Ouro Preto. [11] COSTA, D. A tabu search algorithm for computing an operational timetable. European Journal of Operational Research, 76:98-110,1994. [12] COSTA, F.P. Programao de Horrios em Escolas via GRASP e Busca Tabu. 2003. Monografia, UFOP, Ouro Preto. [13] DOWSLAND, K.A. Simulated Annealing, In Reeves, C.R. (ed), Modern Heuristic Techniques for Combinatorial Problems, Blackwell Scientific Publications, 20-69, 1993. [14] ERBEN, W. and KEPPLER, J. A Genetic Algorithm Solving a Weekly Course-Timetabling Problem, Lecture Notes in Computer Science, 1153:198-211, 1996. [15] EVANS, J.R.; MINIEKA, E. Optimization Algorithms for Network and Graphs. USA, Marcel Dekker, USA: Marcel Dekker Inc., 1978.

[16] EVEN, S., ITAI, A. and SHAMIR, A. On the complexity of timetabling and multicommodity flow problems, SIAM Journal of Computation, 5:691703, 1976. [17] KIRKPATRICK, S., GELLAT, D. C., VECCHI, M. P., Optimizations by Simulated Annealing. Science v. 220, pp. 671-680, 1983. [18] MAURI, G.R. Resoluo do Problema de Programao de Tripulaes de um Sistema de Transporte Pblico via Simulated Annealing. 2003. Relatrio Tcnico Universidade Federal de Ouro Preto Ouro Preto. [19] PAPADIMITRIOU, C. H.; STEIGLITZ, K. Combina-torialOptimization: Algorithms and Complexity. USA: Dover Publications Inc., 1982. [20] PARKER, R. G.; RARDIN, R. L. Discrete Optimization Computer Science and Scientific Computing Academic Press, Inc., 1988. [21] SOUZA, M.J.F. Programao de Horrios em Escolas: uma Aproximao por Metaheursticas. 2000. Tese de Doutorado, UFRJ, Rio de Janeiro. [22] XAVIER, A.M; ARAJO, C.R. Experincia com simulated annealing e busca tabu na resoluo do problema de alocao de salas. 2001. Relatrio (Apresentao PIBIC/Cnpq) Universidade Federal de Ouro Preto, Ouro Preto. [23] ALVARENGA, G.B.; SILVA, R.M.A.; SAMPAIO, R.M. A Hybrid Algorithm for the Vehicule Routing Problem with Time Window. INFOCOMP Journal of Computer Science, v.4, n.2, 9-16, 2005, Brazil

Procedimento Tmpera Simulada 1. Seja s0 uma soluo inicial, T0 a temperatura inicial, alfa a taxa de resfriamento e Itermax o nmero mximo de iteraes para se atingir o equilbrio. 2. s s0 ; 3. s s;
,

// Soluo Corrente // Melhor soluo obtida at ento // Temperatura Corrente

4. T T0

5. IterT 0 // Nmero de iteraes na temperatura T 6.Enquanto (T > 0) faa 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.

Enquanto( IterT < Itermax ) faa IterT IterT + 1; Gere um vizinho qualquer s , N ( s) = f ( s , ) f ( s) Se ( < 0) ento s s,; Se f ( s, ) < f ( s* ) ento s* s , ; Fim se //Melhor soluo

Seno Tome x [0,1]; ss;


,

Se x < e

/T

ento

Fim Seno Fim Enquanto

22. T alfa x T ; 23. IterT 0; 24.Retorne s* ; Fim Procedimento Tmpera Simulada


Figura 5: Pseudo-cdigo da Tmpera Simulada

Você também pode gostar