XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO APLICAÇÃO DE AUTOVETORES PARA A ATRIBUIÇÃO DE PREFERÊNCIAS AOS RECURSOS NO PROBLEMA DE ALOCAÇÃO DE SALAS Angel Guillermo Coca Balta Universidade Candido Mendes, UCAM-Campos, Núcleo de Pesquisa e Desenvolvimento em Informática – NPDI Campos – RJ – Brasil [email protected] José Elias Cláudio Arroyo Universidade Candido Mendes, UCAM-Campos, Núcleo de Pesquisa e Desenvolvimento em Informática – NPDI Campos – RJ – Brasil [email protected] Rodrigo Gomes de Andrade Universidade Candido Mendes, UCAM-Campos, Núcleo de Pesquisa e Desenvolvimento em Informática – NPDI Campos – RJ – Brasil [email protected] RESUMO No processo de alocação de salas, em instituições de ensino superior, devem ser definidos critérios para a utilização dos recursos tais como, ar condicionado, cadeiras estofadas, pontos de rede, datashow etc. Estes recursos podem ser classificados como, indispensáveis, importantes ou irrelevantes. No entanto, é necessário atribuir um peso para priorizar cada um dos recursos. Neste trabalho é aplicada a metodologia AHP (Analytic Hierarchy Process) para que a definição dos pesos (fatores quantitativos de hierarquia) sejam feitos de maneira racional. A metodologia AHP usada é baseada nas propriedades da matriz Transitiva e Simetricamente Recíproca (construída pelo tomador de decisões) e seus autovetores. PALAVRAS Matemática. CHAVES. Autovetores, Ponderações, Alocação de salas, Programação ABSTRACT In the classroom assignment problem at an educational institution we have to define criterion for a good uses of the facilities besides some hierarquical weight for the criterion. In this work we use the Analytic Hierarchy Process AHP to define that hierarquical weights. AHP is based in important properties of Transitive and Reciprocal matrixes, which are made by the decision maker. KEY WORDS. Eigenvectors, Weights, Classroom Assignment, Mathematic Programming. XXXVIII SBPO [ 329 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO 1. Introdução Em uma instituição de ensino, um dos processos que deve ser controlado por sistemas informatizados é o Problema de Alocação de Salas (PAS). O PAS (classroom assignment) é derivado do problema de programação de cursos universitários (course timetabling) e consiste basicamente em alocar um conjunto de turmas em um conjunto de salas, atendendo algumas restrições/necessidades (Bardadym 1996, Dowsland, 1998). Neste problema considera-se que a programação dos horários de aula das turmas já estejam definidos. Uma solução manual para o problema de alocação salas de aula é uma árdua tarefa e requer muito tempo de trabalho de um ou mais funcionários com grande conhecimento em relação a todas as restrições que surgem a cada novo semestre/período letivo. A preocupação dos funcionários encarregados de realizar essa tarefa não está apenas em alocar uma turma numa sala com capacidade física para recebê-la. Devem estar atentos, também, para a utilização eficiente do espaço, para as restrições de uso das salas e principalmente para os recursos requisitados pelas turmas, como, por exemplo, ar condicionado, carteiras estofadas, equipamentos datashow, ponto de rede e muitos outros. Em um trabalho anterior (Andrade et. al., 2005) é apresentado o desenvolvimento de um sistema computacional para solucionar o Problema de Alocação de Salas. O problema é modelado como um problema de Designação da Programação Linear na qual é usada uma metodologia particular para a construção da matriz de custos e o problema é resolvido utilizado o algoritmo Húngaro (Bazaraa et. al, 1990). O sistema desenvolvido possibilita realizar alocações semestrais eficientes e gerar relatórios de alocação por turnos e cursos, facilitando o controle e gerenciamento das salas. Além disso, permite alterações manuais na alocação. Os recursos disponíveis e requisitados pelas turmas podem ser classificados como, indispensáveis, importantes ou irrelevantes. A classificação dos recursos deve ser ponderada de maneira adequada obtendo medidas quantitativas de hierarquia. Considerando que os critérios para a utilização dos recursos incluem aspectos qualitativos, neste trabalho é aplicada a metodologia AHP (Analytic Hierarchy Process) (Saaty, 1990; Costa, 2002) para que a avaliação das ponderações dos recursos ou dos fatores quantitativos de hierarquia sejam feitos de maneira racional. Isto pode ser feito através da aplicação das propriedades das matrizes Transitivas e Simetricamente Recíprocas e seus autovalores e autovetores. Originalmente foi desenvolvido um sistema automatizado de alocação de salas, onde uma turma é considerada como um conjunto de disciplinas. O sistema possibilita realizar alocações semestrais eficientes e gerar relatórios de alocação por turnos e cursos, facilitando o controle e gerenciamento das salas. Além disso, permite alterações manuais na alocação. O sistema foi testado na Universidade Candido Mendes, em Campos dos Goytacazes, apresentando um bom desempenho em termos de tempo computacional e usabilidade. 2. Problema da Designação Trata-se de um modelo clássico da Programação Linear, que ocorre quando é necessário distribuir uma determinada quantidade de itens (origens) em uma quantidade igual de localizações (destinos) de forma a minimizar o custo total. Por exemplo, atribuir homens a tarefas, veículos a rotas, motoristas a veículos, turmas a salas de aula, problemas a equipes de pesquisa, etc. Quando o número de origens é diferente ao número de destinos, podem ser adicionados itens ou localizações fictícias, conforme necessário. 2.1 Modelagem do Problema de Alocação de Salas O problema de alocação de salas considerado neste trabalho é modelado como um problema da designação na qual um conjunto de n turmas (origens) deve ser alocado em um conjunto de m salas (destinos). Para gerar alocações fatíveis, n deve se menor ou igual que m. XXXVIII SBPO [ 330 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO As salas em geral, são de diferentes capacidades e possuem um conjunto de recursos oferecidos (por exemplo, tipo de quadro ou lousa, ar condicionado, carteiras simples ou estofadas, pontos de rede, datashow fixo, etc.). Cada turma possui os recursos requisitados ou necessidades (por exemplo, necessidade de cadeira estofada, ar condicionado, ponto de rede, etc.). O objetivo do problema é alocar uma sala para cada turma otimizando o espaço físico e satisfazendo restrições de capacidade e de recursos requisitados. Para cada recurso deve ser cadastrado um grau de importância, que geramos usando a metodologia AHP (Seção 3). Um recurso pode ser classificado, por exemplo, como indispensável (essencial), importante (não-essencial) ou irrelevante (não-essencial) e receber um peso correspondente a sua classificação. Recursos essenciais são aqueles que se não forem satisfeitos, geram alocações inviáveis. Os não-essenciais são aqueles cujo atendimento é desejável, porém, se não satisfeitos, não geram alocações inviáveis. 2.2. Cálculo da Matriz de Custos do Problema Inicialmente, cria-se uma lista de salas e outra de turmas com os respectivos recursos oferecidos e requisitados. Em seguida, calcula-se o custo de alocação da turma em relação a cada sala da seguinte maneira: 1. Verifica-se se a sala possui capacidade para receber a turma. Caso possua, o custo inicial será a diferença entre a capacidade da sala e a demanda da turma. Se não, atribui-se um valor muito alto (∞) ao custo inicial para evitar uma possível alocação. 2. Para cada recurso requisitado pela turma, que não é atendida pela sala, acrescenta-se ao custo inicial o valor correspondente ao peso do recurso. 3. Para cada recurso oferecido pela sala, que não é requisitada pela turma, acrescenta-se ao custo o valor correspondente ao peso do recurso. Este valor é determinado usando a metodologia AHP apresentada na Seção 3. O processo finaliza quando todas as turmas forem analisadas e for obtida a matriz de custos. A seguir é apresentado um exemplo para facilitar a compreensão Exemplo: Suponha uma situação onde três turmas (A, B e C) com demandas de 30, 40 e 55, respectivamente, devem ser alocadas em três salas (1, 2 e 3) com capacidades de 35, 50, 60, respectivamente. A Tabela 1 apresenta os recursos requisitados pelas turmas, a Tabela 2 apresenta os recursos oferecidos pelas salas e a Tabela 3 mostra os pesos associados aos recursos. Suponha que os pesos atribuídos aos recursos sejam os seguintes, ponto de rede = 58,82, ar condicionado = 29,41 e carteiras estofadas = 11,76. Tabela 1. Requisições das Turmas. Tabela 2. Recursos das Salas TURMA Carteiras Estofadas Ar Condicionado Ponto de Rede SALA Carteiras Estofadas Ar Condicionado Ponto de Rede A B C Não Sim Não Não Sim Sim Sim Não Não 1 2 3 Não Sim Não Sim Sim Sim Sim Não Não A seguir é apresentado o cálculo dos custos obtendo a matriz de custos. Esta matriz é mostrada na Tabela 3. Matriz[A,1] = (35 - 30) + 29,41 = 34,41 Matriz[A,2] = (50 - 30) + 11,76 + 29,41 + 50,82 = 111,99 XXXVIII SBPO [ 331 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Matriz[A,3] = (60 - 30) + 29,41 + 50,82 = 110,23 Matriz[B,1] = ∞ (Capacidade de 1 < Demanda de B) Matriz[B,2] = (50 - 40) = 10 Matriz[B,3] = (60 - 40) + 11,76 = 31,76 Matriz[C,1] = ∞ (Capacidade de 1 < Demanda de C) Matriz[C,2] = ∞ (Capacidade de 2 < Demanda de C) Matriz[C,3] = (60 - 55) = 5. Tabela 3: Matriz de Custos SALA TURMA 1 2 3 34,41 111,99 110,23 A 10 31,76 B ∞ 5 C ∞ ∞ O problema pode ser resolvido utilizando o Algoritmo Húngaro ou o Método Simplex da Programação Linear. 3. O Método AHP (Analytic Hierarchy Process) Nesta seção é utilizado o método HP para a geração dos pesos atribuídos aos recursos no problema de alocação de salas. Seja x = [x1, ...,xn]T o vetor das ponderações (preferências ou hierarquias) de um conjunto de n objetos ou atributos O1, ... On. Se fossem feitas comparações entre dois atributos“Oi” e “Oj”, então teríamos a taxa: ãij = xi / xj o que permite gerar uma matriz à = [ãij] = [xi / xj]. Esta matriz à possui características de simetria recíproca (aij = 1/ aji ) e de transitividade (ãik * ãkj = ãij ). à também possui posto igual a um e um único autovalor não negativo sendo os outros zeros. Pode-se comprovar que a equação Ãx = nx é valida e, conseqüentemente tem-se que n é um autovalor da matriz à e o vetor x é o correspondente autovetor. AHP (Analytic Hyerarqui Process) é uma metodologia para as decisões multicritério que constrói um vetor das ponderações x para os n critérios ou atributos. Essa construção é baseada numa matriz A = [aij] que construída pelo tomador de decisões. É feita comparações entre dois itens ou atributos “i” e “j” e qualificando com um numero positivo aij o que é interpretado como que a “preferência” que ele tem, do item “i” na relação com o item “j” é precisamente aij. A matriz A é simétrica recíproca, mas não necessariamente é transitiva. A não simetria, no caso das decisões, acarreta a chamada “inconsistência” das decisões. O maior autovalor da matriz (λmax) tem a propriedade de λmax ≥ n e a igualdade só aparece se a matriz for transitiva ou consistente (Coca Balta, 2004). Como exemplo considere o fato de priorizar entre três recursos oferecidos pelas salas: ponto de rede (P), ar condicionado (A) e carteiras estofadas (C). O tomador de decisões poderia ter, por exemplo, as seguintes opiniões entre pares de recursos: a preferência pelo recurso P é o dobro com respeito à preferência de A, a preferência do recurso P é quíntuplo com respeito a de C e finalmente a preferência de A é triplo que a de C. Com isso tem-se a12 = 2, a13 = 5 e a23 = 3; construindo então a matriz A mostrada na Tabela 4. O maior autovalor dessa matriz λmax = 3,037 o qual é muito próximo a n = 3 validando a consistência. O vetor normalizado das ponderações é x = [ 0,5882 0,2941 0,1176] ou seja que as ponderações a XXXVIII SBPO [ 332 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO serem usadas serão: ponto de rede = 58,82 (indispensável), ar condicionado = 29,41 (importante) e carteiras estofadas = 11,76 (irrelevante). Tabela 4. Matriz de comparações. 1 2 5 1/2 1 3 1/5 1/3 1 4. Um Sistema Computacional para o Problema. 4.1. Descrição do Sistema O sistema para a alocação de salas foi desenvolvido na linguagem Object Pascal com a ferramenta Borland Delphi 7.0, segundo o paradigma de Orientação a Objetos. O banco de dados utilizado foi o SQL Server. O sistema possui uma interface agradável seguindo o padrão dos softwares para Windows. Para proporcionar uma boa organização do software e facilitar futuras manutenções foi considerado viável implementar uma arquitetura em quatro camadas: Modelo, Interface, Negócio e Banco de Dados (Figura 1). Figura 1. Arquitetura de Software Utilizada A camada Modelo é responsável pelo gerenciamento da informação e o comportamento da aplicação. Esta camada contém as classes das quais as outras camadas dependem e onde estão os atributos que são utilizados para realizar as ações do sistema relacionadas ao acesso ao banco de dados. A camada Interface é responsável pela apresentação das entidades de domínio do usuário, constituindo a parte visível do sistema. Não contém lógica do funcionamento da aplicação. As operações que o usuário realiza na interface, por exemplo, pressionar um botão, são transformadas em eventos, os quais são enviados para um gerente da camada de Negócio, que sabe o que deve ser feito em seguida. A camada Negócio é responsável pela interpretação das ações do usuário provenientes da Interface e comanda a execução das regras de negócio intrínsecas no Modelo. Além disso, comanda a Interface para que ela apresente adequadamente a informação ao usuário. Comunica-se com a camada Banco de Dados para prover informações e acionar operações. A camada Banco de Dados contém os métodos de acesso ao banco de dados. Somente pode ser acessada pela camada Negócio, o que aumenta a segurança do sistema. XXXVIII SBPO [ 333 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO 4.2. Estudo de Caso e Funcionalidade do Sistema O sistema desenvolvido foi testado na Universidade Candido Mendes, com sede na cidade de Campos dos Goytacazes-RJ (UCAM-Campos). A UCAM-Campos oferece oito cursos de graduação (Administração, Ciências Contábeis, Ciência da Computação, Ciências Econômicas, Direito, Engenharia de Produção, Sistemas de Informação e Normal Superior) e três cursos de mestrado (Pesquisa Operacional e Inteligência Computacional, Economia Empresarial e Planejamento Regional e Gestão de Cidades). O campus é constituído de dois prédios, com três andares cada um, com um total de 55 salas de aulas, oito laboratórios de Informática e um laboratório de hardware. As aulas são realizadas nos horários diurno e noturno, de segunda à sexta-feira, e apenas diurno aos sábados. Na UCAM-Campos, a alocação de turmas em salas sempre foi feita manualmente por uma comissão responsável. O procedimento de alocação começa a ser elaborado, manualmente, algumas semanas antes do início do semestre letivo, de acordo com uma pré-matrícula realizada pela instituição. No início das aulas do semestre, os alunos têm dois dias para alterar o plano de estudo, o que muitas vezes torna a primeira alocação inviável quando requisitos essenciais deixam de ser satisfeitos. As correções necessárias, para viabilizar novamente a alocação, são um transtorno para a comissão incumbida de realizá-las e começam a serem efetuadas ao longo das primeiras semanas, ocasionando um grande desconforto para alunos e professores. O sistema desenvolvido possui uma interface visual que permite ao usuário uma visão geral da disposição e alocação das salas de aula da UCAM-Campos (veja Figura 6). As salas para cursos de graduação são enumeradas: 101,... ,108 (1° andar ), 201,... ,222 (2° andar ) e 301,...,322 (3° andar). No primeiro andar existem seis salas (01,...,06) que são prioritários para os cursos de mestrado, no entanto podem também ser utilizadas para turmas de graduação. Na interface do sistema, as salas são representadas graficamente por “portas”, que quando estão abertas indicam que a sala está disponível e quando estão fechadas indicam que a sala está alocada para uma turma. Por exemplo, na Figura 2 mostra-se que sala 102 está alocada e a sala 104 está disponível. Figura 2. Tela Principal do Sistema. O usuário do sistema pode escolher e explorar diferentes opções disponíveis numa barra de menu (localizada na parte superior da tela principal, veja Figura 2). Há também a possibilidade de acessar os comandos mais usuais (Limpar Dados, Alocar Salas, Exibir Relatório de Alocação, etc) através da barra de ferramentas localizada abaixo da barra de menu. O usuário pode alternar a visualização, da alocação, por turno (manhã ou noite) e por andar (1°, 2° e 3° andar). XXXVIII SBPO [ 334 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Os recursos disponíveis são cadastrados e cada recurso possui um tipo e um respectivo peso. Na Figura 3 observa-se o cadastramento de três recursos com seus respectivos tipos. Figura 3. Cadastro de Recursos. Para cada turma são cadastrados: o código da turma, descrição da turma, número de alunos da turma (demanda) e os recursos requisitados pela turma (Veja Figura 4). Para cada sala são cadastrados: o número da sala, capacidade da sala e os recursos oferecidos. Na Figura 5 visualiza-se o cadastramento dos recursos oferecido por uma sala (sala 1). Todas as informações cadastradas são gravadas em um Banco de Dados. Após ingressar todas as informações no sistema, deve-se executar o algoritmo de designação (Húngaro) para gerar uma alocação ótima das turmas em salas. 1º Período C. Computação 30 Figura 4. Cadastro de Recursos Oferecidos por uma Sala. Após a geração de uma alocação, o sistema permite fazer realocações de algumas turmas, de forma manual. O sistema também possui opções para exibir o relatório de uma alocação semestral e este pode ser impresso por cursos e por turnos. Na Figura 10 (a), mostra-se um relatório da alocação, XXXVIII SBPO [ 335 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO gerada pelo sistema, para as turmas do curso de Ciência da Computação (diurno). Com a finalidade de apresentar ao usuário os recursos disponíveis no sistema, foi implementada uma função de ajuda (veja Figura 10(b)). Figura 5. Cadastro de Recursos Oferecidos por uma Sala. (a) (b) Figura 6. (a) Relatório da alocação. (b) Ajuda do sistema. 5. Conclusões Neste trabalho foi apresentado um método para atribuir pesos a os recursos oferecidos pelas salas de aula numa Instituição de Ensino. A avaliação dos custos da alocação foi feita com critérios particulares que inclui uma ponderação definida pela metodologia AHP. Considerando que as preferências pelos XXXVIII SBPO [ 336 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO recursos são critérios qualitativos a serem transformados em quantitativos, o método AHP evita a subjetividade da decisão e permite a definição racional das preferências. O trabalho também apresenta o desenvolvimento de um sistema computacional com uma interface visual que permite a geração da uma alocação de maneira fácil e prática. O sistema atendeu ao objetivo de otimizar o processo de alocação de salas, alocando as turmas nas salas de aula da melhor maneira possível. Em vista do desempenho satisfatório da técnica proposta, a UCAM-Campos está apta a adotar o sistema. Como trabalhos futuros, prepõem-se: inclusão de funcionalidades como, por exemplo, reservas ocasionais de salas; incluir outras facilidades de interface para o sistema; considerar a programação de horários das aulas que completaria o sistema de programação de cursos universitários. Referências Andrade, R.G., Arroyo, J.E.C. e Coca Balta, A.G., (2005) Aplicação De Um Algoritmo de Designação No Desenvolvimento De Um Sistema Automatizado Para o Problema de Alocação de Salas. Aceito no XXXVI SBPO, Gramado-RS, Bardadym, V.A. (1996). Computed-Aided School and University Timetabling: The New Wave. Lecture Notes in Computer Science, 1153: 22-45. Bazaraa, M. S.; Jarvis, J. J.; Sherali, H. D. Linear Programming and Network Flows, New York: Ed. WILEY, 1990. Coca Balta, A.G., (2004), Perturbações da matriz Simetricamente Recíproca na Tomada de decisões, ERMAC-2004, UFRJ, RJ Costa, H.G. (2002) Introdução ao Método de Análise Hierárquica: Análise Multicritério no Auxilio à Decisão. Editora Ao Livro Verde, Niterói. Dowsland, K.A. (1998) Off-the-Peg or Made-to-Measure? Timetabling and Scheduling with AS and TS. Lecture Notes in Computer Science, 1408: 37-52. Saaty, T.L., (1990). How to make a decision: The Analytic Hierarchy Process. European Journal of Operational research 48, 9-26. XXXVIII SBPO [ 337 ]