Documente Academic
Documente Profesional
Documente Cultură
So Lus
2014
So Lus
2014
AGRADECIMENTOS
Agradeo primeiramente a Deus por sua infinita bondade e cuidado comigo.
Aos meus pais, Lene e Paulo, por me proporcionarem suporte emocional e
financeiro. Ao meu professor orientador Thiago Nelson, por me guiar nos caminhos
para a pesquisa, por sua pacincia e dedicao, ao professor Clriston Silva por
suas avaliaes com relao a escrita e pelo tempo disposto e aos professores
Arlison Wady e Aleya Pires por me ajudarem diretamente para a criao desta
monografia com dicas e informaes importantes. Aos demais professores que
contriburam direta e indiretamente para a minha formao. Aos meus familiares e
amigos que de maneira sutil, contriburam para o meu crescimento pessoal,
profissional e acadmico.
RESUMO
Pelo estudo da Inteligncia Artificial possvel a resoluo de problemas
antes realizados somente pelo ser humano e que agora so resolvidos de forma
mais rpida utilizando mecanismos computacionais. Com base na rea de
Computao restritiva da Inteligncia Artificial, o presente estudo mostra uma
soluo para resolver o problema da criao ou organizao da grade de horrios
dos professores, visando melhorar o desempenho dos coordenadores em suas
tarefas. So realizados estudos sobre a origem da Inteligncia Artificial, suas
subdivises e, de forma mais detalhada, os Problemas de Satisfao de Restrio,
que o mtodo base para o tratamento das particularidades no problema de
organizao na grade dos horrios e que ser aplicado no desenvolvimento do
software deste trabalho atravs do paradigma da Programao por Restrio afim
de automatizar a tarefa de organizao dos horrios, visando garantir agilidade a
este processo. Pretende-se ainda estudar biblioteca especfica para o uso de
restries, neste caso a biblioteca Choco, que foi utilizada na etapa de
implementao do programa. Desta forma, os resultados obtidos com o software
satisfizeram o que foi proposto pois houve uma organizao adequada de horrios e
disponibilidade dos professores. Por fim, a programao por restrio atendeu s
necessidades exigidas para a decomposio de um sistema complexo com
utilizaes simples.
ABSTRACT
The study of Artificial Intelligence is possible to solve problems before
performed only by humans and are now resolved more quickly using computational
mechanisms. Based on restrictive Computer Science Artificial Intelligence, this study
shows a solution to solve the problem of creating or organization Teachers schedule
grid, to improve the performance of the coordinators in their tasks. Studies are
conducted on the origin of Artificial Intelligence, its subdivisions and, in more detail,
the Constraint Satisfaction Problems, which is the base method for the treatment of
the peculiarities in the organization of problem in the grid of the times and to be
applied in the development software this work through the programming paradigm for
restriction in order to automate the task of organizing the schedules, to ensure agility
in this process. The aim is also to study specific library for the use of restrictions in
this case the Choco library, which was used in the program implementation stage.
Thus, the results obtained with the software fulfilled what was proposed because
there was a proper work scheduling and availability of teachers. Finally, the
programming restriction has met the needs required for the decomposition of a
complex system with simple uses.
LISTA DE FIGURAS
Figura
Modelo
do
teste
de
Turing
um
agente
.........................................................................14
Figura
Arquitetura
genrica
de
...........................................................16
Figura
Representao
dos
turnos
dias
da
semana
biblioteca
Choco
...........................................20
Figura
Arquitetura
geral
da
........................................................27
Figura
Modelo
do
problema
..................................................................................31
Figura
Diagrama
de
Entidade
Relacionamento
do
Skeduler
.............................32
Figura
Modelo
de
Organizao
do
Choco
............................................................34
Figura
Importaes
do
Choco
...............................................................................35
Figura
Modelo
variveis
.....................................................................................35
Figura
10
Restries
...............................................................................................35
Figura
11
Soluo
...................................................................................................36
Grfico
professores
por
Perodo
...........................................................................36
Quadro
Tabela
dos
professores
...........................................................................37
Quadro
Permutao
dos
professores
do
Perodo
.............................................37
Grfico
Grfico
............................................................................38
de
Permutao
LISTA DE SIGLAS
IA Inteligncia Artificial.
PSR Problemas de Satisfao de Restries
ID ndice
PR Programao por Restrio
BSD Berkeley Software Distribution License
OCRE Outil Contraintes pour la Recherche et lEnseignement
API Application Programming Interface
P&D Pesquisa e Desenvolvimento
NASA National Aeronautics and Space Administration
DNA Deoxyribonucleic Acid
BD Banco de Dados
SGBD Sistema de Gerenciamento de Banco de Dados
SQL Structured Query Language
IDE Integrated Development Environment
DER Diagrama de Entidade e Relacionamento
POO Programao Orientada a Objetos
SUMRIO
1 INTRODUO ....................................................................................................... 11
2 INTELIGNCIA ARTIFICIAL ................................................................................. 13
2.1 Comportamento Inteligente .......................................................................... 14
2.2 Mquina e Ser Humano ................................................................................. 15
2.3 Agente ............................................................................................................. 16
2.4 Resolver Problemas ...................................................................................... 17
3 PROBLEMAS DE SATISFAO DE RESTRIO .............................................. 19
3.1 Definies de Problemas de Satisfao de Restrio ................................ 19
3.2 Representaes do Problema de Satisfao de Restrio ........................ 20
3.3 Tipos de Variveis ......................................................................................... 21
3.4 Tipos de Restries ....................................................................................... 22
3.5 Domnios Finitos ............................................................................................ 22
3.5.1 Busca com Retrocesso ............................................................................. 22
3.5.2 Busca Local ............................................................................................... 22
3.5.3 Propagao de Restrio .......................................................................... 23
3.6 Estrutura de um Problema Restritivo........................................................... 23
4 PROGRAMAO POR RESTRIO ................................................................... 24
4.1 Modelando o problema .................................................................................. 24
4.2 Mtodos de Soluo ...................................................................................... 24
4.3 Programao Restritiva e Problemas de Satisfao de Restries .......... 25
4.4 Resoluo de problemas .............................................................................. 25
4.5 Biblioteca Choco............................................................................................ 26
4.5.1 Histria ...................................................................................................... 26
4.5.2 Caractersticas da Choco .......................................................................... 27
4.5.3 Particularidade da Choco .......................................................................... 28
4.6 Utilizaes de Programao por Restrio ................................................. 28
4.7 Vantagens de utilizar Programao Restritiva ............................................ 29
4.8 Limitaes da Programao Restritiva ........................................................ 29
5 ESTUDO DE CASO: SKEDULER ......................................................................... 30
5.1 Elaborao do Problema ............................................................................... 30
5.2 Banco de Dados ............................................................................................. 31
5.3 Implementao do Estudo de Caso ............................................................. 33
5.3.1 Ambiente de Programao (JAVA) ........................................................... 34
11
1 INTRODUO
Todo incio de bimestre em uma faculdade ou universidade, existe a
necessidade de organizar os horrios dos professores com suas respectivas
disciplinas que iro lecionar. Pesquisas com base no INEP, Instituto Nacional de
Estudos e Pesquisas Educacionais, afirmam que houve um aumento de 81% de
pessoas matriculadas em ensino superior entre 2003 e 2012, com tendncias de
aumento ainda maior. Com base nos dados desta pesquisa, esse aumento do
nmero de ingressos torna a tarefa de distribuio de professores bastante
complexa, evidenciando os seguintes impasses: disponibilidade de horrio de cada
professor, afinidade para determinada disciplina e quantidade de turmas para cada
curso.
Cada instituio de ensino possui sua forma de organizar os horrios dos
professores, sendo frequentemente de forma no automtica, demandando tempo e
disponibilidade tanto dos professores quanto dos coordenadores de curso. Esse tipo
de organizao muita das vezes se torna inconsistente, pois os coordenadores
encontram dificuldades na definio dos horrios dos professores.
A fim de solucionar tal problema, necessria a criao de um software
que seja capaz fazer as divises dos horrios de acordo com as particularidades de
cada docente e curso. Entretanto, esse sistema deve ser feito de forma adaptativa
para poder satisfazer os mais diferentes requisitos que podem vir a existir.
Uma soluo para esse problema a utilizao da programao por
restrio, um paradigma que utiliza mtodos de modelagens que restringe solues
para torn-las mais completas de forma nativa. E para que possamos entender
como funciona a programao restritiva, faz-se necessrio estudar alguns conceitos
relacionados inteligncia artificial e os problemas de satisfao de restrio.
O presente trabalho tem como objetivo fazer um estudo sobre a utilizao
da programao restritiva, analisar a Choco, uma biblioteca de programao para
desenvolvimento de softwares especializada em restrio e desenvolver uma
aplicao chamada Skeduler para o referido estudo de caso com todas as
caractersticas da programao restritiva utilizando a presente biblioteca.
Este trabalho est organizado em seis sees. A segunda ser definida
os conceitos bsicos de Inteligncia Artificial e seus mtodos para buscar solues.
12
13
2 INTELIGNCIA ARTIFICIAL
O campo da Inteligncia Artificial (IA) utiliza tcnicas para compreender os
pensamentos
humanos
construir
entidades
inteligentes
partir
desse
14
O teste era composto por duas pessoas e uma mquina, onde uma
pessoa possua a funo de interrogar a mquina e a outra pessoa, sendo que os
trs estariam em salas separadas, assim como na Figura 1. A funo do
interrogador era fazer perguntas e tentar descobrir quem era a mquina. Para Turing
(1950), a mquina seria considerada inteligente se o interrogador no conseguisse
diferenciar as respostas dadas pelo ser humano das fornecidas pela mquina.
15
16
17
Software Qualquer programa ou grupo de programas que instrui o hardware sobre a maneira como ele
deve executar uma tarefa, inclusive sistemas operacionais, processadores de texto e programas de aplicao.
(Dicionrio).
18
19
20
pertence ao domnio
, podemos
e se
em
,
21
Grafo Conjunto de pontos chamados vrtices, em certos pares esto ligados por uma linha orientada
(flecha) ou no (aresta). (Dicionrio).
22
23
geral funciona alterando a valor de uma varivel por vez (RUSSELL, NORVING.
2004).
Ao escolher um novo valor para uma varivel, a heurstica mais adequada
encontrar um valor que resulta em um nmero pequeno de conflitos com as outras
variveis, chamada de heurstica de conflitos mnimos. O tempo de execuo de um
PSR resolvido com esse tipo de heurstica ser independentemente do tamanho do
problema (sem levar em considerao o posicionamento inicial).
24
25
26
4.5.1 Histria
A biblioteca Choco foi criada em 1999 no mbito do projeto OCRE, uma
iniciativa nacional francesa para um solucionador de restrio para ensino e
pesquisa, envolvendo professores e pesquisadores da cole des Mines de Nantes
(Frana), sendo utilizado inicialmente na linguagem de programao C++.
Somente em 2003 que a Choco passou por uma modificao para ser
utilizado na linguagem de programao Java, pois eles possuam um objetivo de
garantir uma maior portabilidade e uma aquisio mais fcil para os novos
programadores. Com o seu avano progressivo, hoje est na sua terceira verso
27
28
29
30
31
professores ficam alocados em um vetor a partir dos seus IDs cadastrados no banco
de dados, o programa est preparado para pegar o professor que tiver o menor
coeficiente de dias para ministrar aula e verificar se condiz com o dia que o software
quer utilizar. Caso essas afirmativas sejam verdadeiras, o sistema passar para a
etapa que verificar se o professor
32
33
34
35
Aps definir o objeto do modelo, foi criado o objeto das variveis, assim
demonstrado na Figura 9, do tipo vetor inteiro. Depois, estabelecer as restries em
torno do tipo de variveis que iremos trabalhar, como representado na Figura 10.
36
Por fim, foi criado um objeto que ser responsvel por solucionar as
restries anteriormente propostas, assim demonstrado na Figura 11.
5.4 Testes
Os testes iniciais foram propostos para fazer a organizao dos
professores que lecionam no curso de cincia da computao pelo turno matutino,
com 10 educadores alocados no BD. As disciplinas disponveis por perodo seguem
organizao estabelecida na grade curricular do curso. O Grfico 1 mostra a
quantidade de professores para cada perodo.
Grfico 1: Professores por Perodo
37
Quantidade de Professores
38
Segunda
Tera
Quarta
Quinta
11 Arivaldo
67 Thiago
71 Elda
54 Nilvanete
lgebra
Algoritmo e
Lgica
Metodologia
Linear
Programao
Computacional
Cientfica
11 Arivaldo
71 Elda
67 Thiago
54 Nilvanete
lgebra
Lgica
Algoritmo e
Metodologia
Linear
Computacional
Programao
Cientfica
54 Nilvanete
71 Elda
67 Thiago
11 Arivaldo
Metodologia
Lgica
Algoritmo e
lgebra
Cientfica
Computacional
Programao
Linear
11 Arivaldo
67 Thiago
71 Elda
54 Nilvanete
lgebra
Algoritmo e
Lgica
Metodologia
Linear
Programao
Computacional
Cientfica
11 Arivaldo
71 Elda
67 Thiago
54 Nilvanete
lgebra
Lgica
Algoritmo e
Metodologia
Linear
Computacional
Programao
Cientfica
Sexta
72 Michel
Clculo 1
72 Michel
Clculo 1
72 Michel
Clculo 1
72 Michel
Clculo 1
72 Michel
Clculo 1
39
ter
qua
54 Nilvanete
67 Thiago
qui
71 Elda
sex
72 Michel
5.5 Resultados
O software faz a organizao pela forma que foi programado. Em
contrapartida, a quantidade de professores alocados no BD no foi o suficiente para
distribuir todos eles diferentes para todos os perodos. Alm disso, existem
professores que lecionam matrias especficas para determinados perodos, como
exemplo do curso de cincias da computao e a matria de Clculo 1 para o
segundo perodo.
Considerando os testes realizados, verificou-se que o software ficou
limitado s informaes contidas no BD, pois a quantidade de professores que
estavam aptos para ministrar aulas no curso de Cincias da Computao era
pequena para aloca-los em todos os perodos de forma distinta. Nesse aspecto, a
forma como a base de dados estar alimentada apresenta significativa diferena
quando for realizada a organizao.
Mesmo com as peculiaridades do BD, o programa organiza de forma
dinmica os professores, dando resultados diferentes quando executado vrias
vezes conforme visto nos testes executados, ou seja, o sistema pega variadas
situaes para satisfazer o mesmo problema.
40
6 CONCLUSO
O aumento quantitativo de alunos que ingressam nas faculdades e
universidades, e o consequente aumento do corpo docente, fez com que fosse
necessria a utilizao de sistema para automatizar a gesto dos horrios dos
professores, utilizando os conceitos da programao por restrio.
O presente trabalho explicou as bases da programao restritiva e as
disciplinas que deram origem a ela. Tal utilizao deu-se devido ao fato dela ser um
paradigma especializado em restries, que facilitou a construo do software e fez
a organizao da forma mais correta possvel, sem a exigncia de esforos mais
complexos tanto na criao quanto na resoluo.
Ressaltou-se tambm uma biblioteca especfica de programao por
restrio, a Choco, como forma de resolver os impasses encontrados para elaborar
uma soluo s restries dos professores. Ela comprovou sua eficincia no
tratamento de restries, tendo como ponto forte sua simplicidade na fase da
implementao de inferncias e mtodos para solucionar as mesmas.
Como resultado, o software que foi exposto neste trabalho atendeu as
expectativas propostas uma vez que a organizao feita de forma automtica
buscando as informaes na base de dados para a distribuio de professores
conforme as particularidades existentes no problema: dias da semana, disciplinas e
turnos.
Como trabalhos futuros, sugerimos que sejam feitas atualizaes na base
de dados para poder aumentar as possibilidades do software com relao as
organizaes dos professores. Pretende-se ainda aprimorar o sistema para
incorporar outros cursos na organizao das grades de horrios destes e utilizar a
mesma metodologia organizacional para o problema de disponibilidade de
laboratrios para os professores.
41
REFERNCIAS
ACP Association for Constraint Programming. Disponvel em: <
http://www.a4cp.org/ >.
APT, Krzysztof R. Principles of Constraint Programming. [S.l.]. Cambridge. 2009.
BAPTISTA, Lus. Estudo preliminar de restarts para algoritmos de CSP.
Disponvel em:<
http://comum.rcaap.pt/bitstream/123456789/2093/1/Estudo%20preliminar....pdf >.
Acesso em 20 out. 2014.
BORIGA, Lect. Radu. Solving some optimization problems using choco library.
Disponvel em:< http://megabyte.utm.ro/en/articole/2008/Sti/sem_1/1Boriga.pdf >.
Acesso em 20 out. 2014.
CHOCO A Free and Open-Source Java Library for Constraint Programming.
Disponvel em:< http://choco-solver.org/ >.
EURODECISION Operational Research. Constraint Programming. Disponvel
em:< http://www.eurodecision.eu/constraint-programming >. Acesso em: 27 out.
2014.
FRUHWIRTH, Thom. HEROLD, Alexander. KUCHENHOFF, Volker. PROVOST,
Thierry Le. LIM, Pierre. MONFROY, Eric. WALLACE, Mark. Constraint logic
programming An informal Introduction. Disponvel em: <
http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=4055363F1227B18246380F
B7D90893B7?doi=10.1.1.27.5117&rep=rep1&type=pdf >. Acesso em: 25 out. 2014.
GANU, Hrishikesh. Constraint Programming. Disponvel em: <
https://www.informs.org/ORMS-Today/Public-Articles/August-Volume-38-Number4/Constraint-programming >. Acesso em: 25 out. 2014.
IBM. Mathematical Programming vs. Constraint Programming. Disponvel em:<
http://www-01.ibm.com/software/integration/optimization/cplex-cp-optimizer/mp-cp/ >.
Acesso em 20 out. 2014.
LUGER, George F. Inteligncia Artificial. 4. ed. Porto Alegre: Bookman. 2004.
MORENO, Ana Carolina. FAJARDO, Vanessa. Nmero de matrculas no ensino
superior cresce 81% em dez anos. Disponvel em: <
http://g1.globo.com/educacao/noticia/2013/10/numero-de-matriculas-no-ensinosuperior-cresce-81-em-dez-anos.html >. Acesso em 19 set. 2014.
NASCIMENTO, Rafael J. Oliveira do. Engenharia de software orientada a
agentes. Disponvel em: < http://www.devmedia.com.br/engenharia-de-softwareorientada-a-agentes/29238 >. Acesso em 20 out. 2014.
Publications by the Constraint Satisfaction and Optimization Group, University of
Essex. Disponvel em: < http://cswww.essex.ac.uk/CSP/papers.html >.
42