Download - PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
1/44
FACULDADE PITÁGORASCURSO DE CIÊNCIA DA COMPUTAÇÃO
PAULA MYRIAN LIMA PEDROSO
PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVERPROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
São Luís2014
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
2/44
PAULA MYRIAN LIMA PEDROSO
PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER
PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
Monog!"#! !$%s%n&!'! !o Cuso '% C#(n)#! '!Co*$u&!+ão '! F!)u,'!'% P#&-go!s. $!!o/&%n+ão 'o g!u '% !)!%, %* C#(n)#! '!Co*$u&!+ãoO#%n&!'o3 T#!go N%,son F!#! 'os R%#s
São Luís2014
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
3/44
PAULA MYRIAN LIMA PEDROSO
PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVERPROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
Monog!"#! !$%s%n&!'! !o Cuso '%C#(n)#! '! Co*$u&!+ão '! F!)u,'!'%P#&-go!s. $!! o/&%n+ão 'o g!u '%!)!%, %* C#(n)#! '! Co*$u&!+ão
A$o!'o %*3 15 6 12 6 2014
Po" T#!go N%,son F!#! 'os R%#s 7O#%n&!'o8F!)u,'!'% P#&-go!s
Po" A,#n% Lo$%s '! S#,!F!)u,'!'% P#&-go!s
Po" A,,#sson 9og% S#,! A,*%#'!F!)u,'!'% P#&-go!s
Po" A,%:! '% C!ss#! P%%#! P#%sF!)u,'!'% P#&-go!s
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
4/44
AGRADECIMENTOS
Ag!'%+o $#*%#!*%n&% ! D%us $o su! #n"#n#&! /on'!'% % )u#'!'o )o*#go
Aos *%us $!#s. L%n% % P!u,o. $o *% $o$o)#on!%* su$o&% %*o)#on!, %"#n!n)%#o Ao *%u $o"%sso o#%n&!'o T#!go N%,son. $o *% gu#! nos )!*#nos
$!! ! $%s;u#s!. $o su! $!)#(n)#! % '%'#)!+ão. !o $o"%sso C,
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
5/44
@Não !/!n'on% ! s!/%'o#!. % %,! o $o&%g%- !*%B!. % %,! )u#'!- '% o)(
Po
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
6/44
RESUMO
P%,o %s&u'o '! In&%,#g(n)#! A"#)#!, < $ossí%, ! %so,u+ão '% $o/,%*!s
!n&%s %!,#!'os so*%n&% $%,o s% u*!no % ;u% !go! são %so,#'os '% "o*!*!#s -$#'! u,#!n'o *%)!n#s*os )o*$u&!)#on!#s Co* /!s% n! -%! '%
Co*$u&!+ão %s&#! '! In&%,#g(n)#! A"#)#!,. o $%s%n&% %s&u'o *os&! u*!
so,u+ão $!! %so,% o $o/,%*! '! )#!+ão ou og!n#!+ão '! g!'% '% o-#os
'os $o"%sso%s. #s!n'o *%,o! o '%s%*$%no 'os )oo'%n!'o%s %* su!s
&!%"!s São %!,#!'os %s&u'os so/% ! o#g%* '! In&%,#g(n)#! A"#)#!,. su!s
su/'##s=%s %. '% "o*! *!#s '%&!,!'!. os Po/,%*!s '% S!s"!+ão '% R%s&#+ão.
;u% < o *
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
7/44
ASTRACT
T% s&u': o" A"#)#!, In&%,,#g%n)% #s $oss#/,% &o so,% $o/,%*s /%"o%
$%"o*%' on,: /: u*!ns !n' !% no %so,%' *o% ;u#),: us#ng )o*$u&!on!,*%)!n#s*s !s%' on %s&#)% Co*$u&% S)#%n)% A"#)#!, In&%,,#g%n)%. &#s s&u':
sos ! so,uon &o so,% &% $o/,%* o" )%!ng o og!n#!on T%!)%s s)%'u,%
g#'. &o #*$o% &% $%"o*!n)% o" &% )oo'#n!&os #n &%# &!ss S&u'#%s !%
)on'u)&%' on &% o#g#n o" A"#)#!, In&%,,#g%n)%. #&s su/'##s#ons !n'. #n *o% '%&!#,.
&% Cons&!#n& S!s"!)on Po/,%*s. #) #s &% /!s% *%&o' "o &% &%!&*%n& o"
&% $%)u,#!#%s #n &% og!n#!on o" $o/,%* #n &% g#' o" &% *%s !n' &o /%
!$$,#%' #n &% '%%,o$*%n& so"&!% &#s o &oug &% $og!**#ng $!!'#g* "o
%s&#)on #n o'% &o !u&o*!&% &% &!s o" og!n##ng &% s)%'u,%s. &o %nsu% !g#,#&:
#n &#s $o)%ss T% !#* #s !,so &o s&u': s$%)#"#) ,#/!: "o &% us% o" %s&#)ons #n
&#s )!s% &% Co)o ,#/!:. #) !s us%' #n &% $og!* #*$,%*%n&!on s&!g%
Tus. &% %su,&s o/&!#n%' #& &% so"&!% "u,"#,,%' !& !s $o$os%' /%)!us%
&%% !s ! $o$% o s)%'u,#ng !n' !!#,!/#,#&: o" &%!)%s F#n!,,:. &%
$og!**#ng %s&#)on !s *%& &% n%%'s %;u#%' "o &% '%)o*$os#on o" !
)o*$,% s:s&%* #& s#*$,% us%s
J%:o's3 Og!n#!on o" s)%'u,%s. A"#)#!, In&%,,#g%n)%. Cons&!#n& S!s"!)on
Po/,%*s. Cons&!#n& Pog!**#ng. Co)o
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
8/44
LISTA DE FIGURAS
F#gu! 1 K Mo'%,o 'o &%s&% '% Tu#ng14
F#gu! 2 K A;u#&%&u! g%n
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
9/44
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
10/44
LISTA DE SIGLAS
IA K In&%,#g(n)#! A"#)#!,
PSR K Po/,%*!s '% S!s"!+ão '% R%s&#+=%sID K n'#)%
PR K Pog!*!+ão $o R%s&#+ão
SD K %%,%: So"&!% D#s&#/uon L#)%ns%
OCRE K Ou, Con&!#n&%s $ou ,! R%)%)% %& ,Ens%#gn%*%n&
API K A$$,#)!on Pog!**#ng In&%"!)%
PD K P%s;u#s! % D%s%no,#*%n&o
NASA K N!on!, A%on!u)s !n' S$!)% A'*#n#s&!on
DNA K D%o:#/onu),%#) A)#'
D K !n)o '% D!'os
SGD K S#s&%*! '% G%%n)#!*%n&o '% !n)o '% D!'os
SQL K S&u)&u%' Qu%: L!ngu!g%
IDE K In&%g!&%' D%%,o$*%n& En#on*%n&
DER K D#!g!*! '% En'!'% % R%,!)#on!*%n&o
POO K Pog!*!+ão O#%n&!'! ! O/?%&os
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
11/44
SUMÁRIO
1
INTRODUÇÃO 11
2
INTELIGÊNCIA ARTIFICIAL 1 2.1 Compo!"m#$!o I$!#%&'#$!# 14
2.2 M()*&$" # S# H*m"$o 1
2.+ A'#$!# 15
2., R#-o%# Po/%#m"- 1
+
PROBLEMAS DE SATISFAÇÃO DE RESTRIÇÃO 1
+.1 D#0&$&1#- 3# Po/%#m"- 3# S"!&-0"14o 3# R#-!&14o 1
+.2 R#p#-#$!"1#- 3o Po/%#m" 3# S"!&-0"14o 3# R#-!&14o 20
+.+ T&po- 3# V"&(#&- 21 +., T&po- 3# R#-!&1#- 22
+.5 Dom6$&o- F&$&!o- 22
1 us)! )o* R%&o)%sso 22
2 us)! Lo)!, 22
Po$!g!+ão '% R%s&#+ão 2
+.7 E-!*!*" 3# *m Po/%#m" R#-!&!&o 2
,
PROGRAMAÇÃO POR RESTRIÇÃO 24
,.1 Mo3#%"$3o o po/%#m" 24
,.2 M8!o3o- 3# So%*14o 24
,.+ Po'"m"14o R#-!&!&" # Po/%#m"- 3# S"!&-0"14o 3# R#-!&1#- 2
,., R#-o%*14o 3# po/%#m"- 2
,.5 B&/%&o!#9" Co9o 25
41 H#s&V#! 25
42 C!!)&%ís)!s '! Co)o 2
4 P!)u,!#'!'% '! Co)o 2
,.7 U!&%&;"1#- 3# Po'"m"14o po R#-!&14o 2
,.< V"$!"'#$- 3# *!&%&;" Po'"m"14o R#-!&!&" 2
,.= L&m&!"1#- 3" Po'"m"14o R#-!&!&" 2
5
ESTUDO DE CASO: S>EDULER 0
5.1 E%"/o"14o 3o Po/%#m" 0
5.2 B"$9o 3# D"3o- 1
5.+ Imp%#m#$!"14o 3o E-!*3o 3# C"-o
1 A*/#%n&% '% Pog!*!+ão 79AWA8 4
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
12/44
2 I*$o&!n'o ! /#/,#o&%)! Co)o 4
C#!n'o o *o'%,o % ! so,u+ão
5., T#-!#- 5
5.5 R#-*%!"3o-
7
CONCLUSÃO 40
REFERÊNCIAS 41
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
13/44
11
1 INTRODUÇÃO
To'o #ní)#o '% /#*%s&% %* u*! "!)u,'!'% ou un#%s#'!'%. %#s&% !
n%)%ss#'!'% '% og!n#! os o-#os 'os $o"%sso%s )o* su!s %s$%)!s'#s)#$,#n!s ;u% #ão ,%)#on! P%s;u#s!s )o* /!s% no INEP. Ins&u&o N!)#on!, '%
Es&u'os % P%s;u#s!s E'u)!)#on!#s. !"#*!* ;u% ou% u* !u*%n&o '% 1X '%
$%sso!s *!&#)u,!'!s %* %ns#no su$%#o %n&% 200 % 2012. )o* &%n'(n)#!s '%
!u*%n&o !#n'! *!#o Co* /!s% nos '!'os '%s&! $%s;u#s!. %ss% !u*%n&o 'o
nY*%o '% #ng%ssos &on! ! &!%"! '% '#s&#/u#+ão '% $o"%sso%s /!s&!n&%
)o*$,%!. %#'%n)#!n'o os s%gu#n&%s #*$!ss%s3 '#s$on#/#,#'!'% '% o-#o '% )!'!
$o"%sso. !"#n#'!'% $!! '%&%*#n!'! '#s)#$,#n! % ;u!n'!'% '% &u*!s $!! )!'!
)usoC!'! #ns&u#+ão '% %ns#no $ossu# su! "o*! '% og!n#! os o-#os 'os
$o"%sso%s. s%n'o "%;u%n&%*%n&% '% "o*! não !u&o*-)!. '%*!n'!n'o &%*$o %
'#s$on#/#,#'!'% &!n&o 'os $o"%sso%s ;u!n&o 'os )oo'%n!'o%s '% )uso Ess% $o
'% og!n#!+ão *u#&! '!s %%s s% &on! #n)ons#s&%n&%. $o#s os )oo'%n!'o%s
%n)on&!* '#"#)u,'!'%s n! '%"#n#+ão 'os o-#os 'os $o"%sso%s
A "#* '% so,u)#on! &!, $o/,%*!. < n%)%ss-#! ! )#!+ão '% u* so"&!%
;u% s%?! )!$! "!% !s '##s=%s 'os o-#os '% !)o'o )o* !s $!)u,!#'!'%s '%
)!'! 'o)%n&% % )uso En&%&!n&o. %ss% s#s&%*! '%% s% "%#&o '% "o*! !'!$&!!
$!! $o'% s!s"!% os *!#s '#"%%n&%s %;u#s#&os ;u% $o'%* # ! %#s
U*! so,u+ão $!! %ss% $o/,%*! < ! u,#!+ão '! $og!*!+ão $o
%s&#+ão. u* $!!'#g*! ;u% u,#! *
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
14/44
12
N! &%)%#! s%ão !$%s%n&!'os *
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
15/44
1
2 INTELIGÊNCIA ARTIFICIAL
O )!*$o '! In&%,#g(n)#! A"#)#!, 7IA8 u,#! &
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
16/44
14
?ogos '% !'%. '%*ons&!+ão '% &%o%*!s *!&%*-)os. )#!+ão '% $o%s#! %
'#!gnVs)o '% 'o%n+!s 7RUSSELL. NORWING 20048
2.1 Compo!"m#$!o I$!#%&'#$!#
In&%,#g(n)#! '% !)o'o )o* o '#)#on-#o s#gn#"#)! "!)u,'!'% '% %n&%n'%.
$%ns!. !)#o)#n! % #n&%$%&! ou )!$!)#'!'% '% %so,% s#&u!+=%s no!s )o*
!$#'% % (#&o No %n&!n&o. )o*o "!%*os $!! ;u% u* s#s&%*! ou u*! *-;u#n!
$oss! o/&% u* )o*$o&!*%n&o #n&%,#g%n&%[
Co*o "o*! '% '%*ons&!+ão 'o )!*$o '% !&u!+ão. A,!n Tu#ng 7108
$u/,#)ou u* 'os $#*%#os !gos )o* %,!+ão ! IA Su! $o$os&! %! $o! ;u%
u*! *-;u#n! $o'%#! s% &ão #n&%,#g%n&% ! $on&o '% s% )on"un'#'! )o* o $%ns! '%
u* s% u*!no E,% $o$Zs u* &%s&% ;u% *%'#! o '%s%*$%no '% u*! *-;u#n!)ons#'%!'! #n&%,#g%n&% % o )o*$!! !o !)#o)ín#o '% u*! $%sso!. )o*o
%$%s%n&!'o n! F#gu! 1
F&'*" 1: Mo'%,o 'o &%s&% '% Tu#ng
Fo$!#: &&$366no&!$os#!)o*6$&6&/%s&/s6"#,oso"#!611\#n&%,%g%n)#!\!"#)#!,\'&*
O &%s&% %! )o*$os&o $o 'u!s $%sso!s % u*! *-;u#n!. on'% u*!
$%sso! $ossuí! ! "un+ão '% #n&%og! ! *-;u#n! % ! ou&! $%sso!. s%n'o ;u% os
&(s %s&!#!* %* s!,!s s%$!!'!s. !ss#* )o*o n! F#gu! 1 A "un+ão 'o
#n&%og!'o %! "!% $%gun&!s % &%n&! '%s)o/# ;u%* %! ! *-;u#n! P!! Tu#ng
7108. ! *-;u#n! s%#! )ons#'%!'! #n&%,#g%n&% s% o #n&%og!'o não )ons%gu#ss%
'#"%%n)#! !s %s$os&!s '!'!s $%,o s% u*!no '!s "on%)#'!s $%,! *-;u#n!
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
17/44
1
P!! !)%s)%n&!. Lug% 720048 !"#*! ;u%3
Tu#ng &!*/
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
18/44
15
A IA < u*! )#(n)#! )o*$os&! $o -#!s '#s)#$,#n!s 7)o*o '#&o
!n&%#o*%n&%8 %. )ons%;u%n&%*%n&%. < !$,#)!'! %* -#!s "un+=%s ;u% %no,%*
?ogos. !)#o)ín#o !u&o*-)o. o/V)!. %'%s n%u!#s. g%n
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
19/44
1
Os !g%n&%s /!s%!'os %* o/?%os u,#!* u* "o)o ! s% s%gu#'o. ou
s%?!. u* $o$Vs#&o Os !g%n&%s /!s%!'os n! u,#'!'% /us)!* '%"#n# u*! $#o#'!'%
$!! '%&%*#n!'! !+ão E os !g%n&%s )o* !$%n'#!'o são !;u%,%s ;u% &%* !
)!$!)#'!'% '% %s&u'! o !*/#%n&% $!! $o'% s% !'%;u! ! %,%
Ao )ons&u# u* s#s&%*! '% og!n#!+ão '% o-#os 'os $o"%sso%s. !s
'%"#n#+=%s '% !g%n&% ;u% s%ão %n;u!'!'!s $!! %so,% %ss% $o/,%*! s%ão '%
!g%n&%s /!s%!'os %* o/?%o % u,#'!'%
Os )on)%#&os '% !g%n&% $ossu%* u*! )!!)&%ís)! !$o#*!'! ;u!n'o
;u%%*os &!&! '% s#s&%*!s "ís#)os ou ,Vg#)os No %n&!n&o. %ss% &!/!,o #- s%
%n;u!'!'o %* !g%n&%s ,Vg#)os ou '% so"&!%1
O !g%n&% '% so"&!% %)%/% s%;u(n)#!s '% &%),!s '#g#&!'!s. )on&%Y'o '%
!;u#os % $!)o&%s '% %'% )o*o s%nso%s % !&u! so/% o !*/#%n&% %#/#n'o !,go n!&%,!. g!!n'o !;u#os % %n#!n'o $!)o&%s '% %'% 7RUSSELL. NORWING 20048
E,% &%* ! )!$!)#'!'% '% '%)#'# ;u!#s !+=%s s%ão *!#s !$o$#!'!s $!! u*
usu-#o ou u* ou&o $og!*!. '%$%n'%n'o '!s #n"o*!+=%s ;u% "o!*
!n&%#o*%n&% "on%)#'!s. ou s%?!. %,% &!/!,! '% "o*! $%#sí%, %* %!+ão !o
!*/#%n&%
2., R#-o%# Po/%#m"-
Co* os !g%n&%s %!os. u* s#*$,%s *!$%!*%n&o '#%&o '% %s&!'os %*
!+=%s $o'%* %so,% os $o/,%*!s $!! !)! ! so,u+ão En&%&!n&o. !*/#%n&%s
n%)%ss#&!'os '% *!$%!*%n&os g!n'%s '%*!#s $!! !*!%n!*%n&o "!#!* )o*
;u% o !$%n'#!'o '%,%s '%*o!ss% En&ão. os !g%n&%s /!s%!'os %* o/?%os
$o'%* o/&% su)%sso. )ons#'%!n'o !+=%s "u&u!s % ! )on%n#(n)#! '% s%us
%su,&!'os 7RUSSELL. NORWING 20048
E#s&%* *
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
20/44
1
Po/,%*!s '% s!s"!+ão '% %s&#+=%s
A %so,u+ão '% $o/,%*!s $o *%#o '% /us)! '%)#'% o ;u% "!%
%n)on&!n'o s%;u(n)#!s '% !+=%s ;u% ,%!* ! %s&!'os '%s%?-%#s 7RUSSELL.
NORWING 20048 As /us)!s não $ossu%* u*! #n"o*!+ão so/% o $o/,%*!.
&%n'o ;u% u,#! &%s&%s '% )o*$!!+ão '% o/?%os. &on!n'o ! su! %%)u+ão
%!us! A /us)! )o* #n"o*!+ão % %$,o!+ão < u* !$#*o!*%n&o 'o s#s&%*!
'% /us)! &!'#)#on!,. $o#s %,% ,%!n&!- u* )on?un&o '% #n"o*!+=%s $!! %n)on&!
so,u+=%s '% *o'o *!#s %"#)#%n&% ! "#* '% %'u# os )us&os '! /us)! A /us)!
)o*$%! < /!s#)!*%n&% %!*#n! os $o/,%*!s %n;u!n&o sug%* !g%n&%s ;u%
'#"#)u,&!* %ss% &!/!,o 7*u#&o u,#!'o %* s#s&%*! '% ?ogos8
Os $o/,%*!s '% s!s"!+ão '% %s&#+=%s u,#!* u*! !*$,! !#%'!'%
'% *
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
21/44
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
22/44
20
u* %* u*! su/s%;u(n)#! '%ss!s !#-%#s Ao )ons#'%! u*! s%;u(n)#! "#n#&! '%
!#-%#s
)o* s%us %s$%)os 'o*ín#os
. $o'%*os
!'*# ;u% )!'! !#-%,
$%&%n)% !o 'o*ín#o
Ao !'*# u*! %s&#+ão %*
. ;u%%*os '#% ;u% %#s&% u* su/)on?un&o
% s%
.
%n&ão '#%*os ;u% ! %s&#+ão "o# %so,#'!
U,#!n'o nosso o/?%&o '% %s&u'o $!! %%*$,#"#)!. !'*#*os ;u% %#s&%
u*! s%;u(n)#! "#n#&! '% $o"%sso%s ;u% '%%* s% og!n#!'os %* '#!s. $%ío'os.
&unos % '#s)#$,#n!s 7'o*ín#os8 '% !)o'o )o* su!s %s&#+=%s H!%- u*!
su/s%;u(n)#! '% $o"%sso%s. n%ss% )!so $o'%- ou não %ng,o/! &o'os %,%s. ;u%
!# "#)! un#'o $o u*! '%&%*#n!'! %s&#+ão S% %,! %s$%#&! o 'o*ín#o % "#%
$!&% 'o )on?un&o *!#o 7)on?un&o '% $o"%sso%s8. %n&ão !%- so,u+ão $!! o
$o/,%*!
+.2 R#p#-#$!"1#- 3o Po/%#m" 3# S"!&-0"14o 3# R#-!&14o
A %$%s%n&!+ão 'o PSR s%gu% u* $!'ão $!! ! )ons&u+ão '% u*
%s$!+o '% %s&!'os ;u% são o %s&!'o #n#)#!,. "un+ão su)%sso. &%s&% '% o/?%o % o
)us&o 'o )!*#no O %s&!'o #n#)#!, < ! !&#/u#+ão !#!. n! ;u!, &o'!s !s !#-%#s
!#n'! não "o!* !&#/uí'!s A "un+ão su)%sso < u* !,o ;u% $o'% s% !&#/uí'o !
;u!,;u% !#-%, '% %s&!'o #n#)#!,. s%n'o ;u% %,! não $o'% %n&! %* )on",#&o )o*
ou&!s !#-%#s ?- !&#/uí'!s O &%s&% '% o/?%o s%% $!! *os&! s% o ;u% "o#
$o$os&o !n&%#o*%n&% o)o%u %* %su,&!'os s!s"!&V#os % o )us&o 'o )!*#no <
/!s#)!*%n&% $!! *os&! ! %"#)#(n)#! '! !+ão. ou s%?!. ;u!n&o "o# o )us&o '!
%so,u+ão
Ao &o*! )o*o %%*$,o ! og!n#!+ão '% o-#os 'os $o"%sso%s.
%#"#)!*os ;u% o %s&!'o #n#)#!, < u*! &!/%,! !#! '% '#!s '! s%*!n!. ! "un+ão
su)%sso s%#! o )V'#go #n#)#!, 'os $o"%sso%s 7ID8 ;u% $o'% s% )o,o)!'o %*
;u!,;u% )
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
23/44
21
Ao &!&! o $o/,%*! )o*o %s&#&o nos '- /%n%"í)#os #*$o&!n&%s. &%n'o
%* #s&! ;u% ! %$%s%n&!+ão '% %s&!'os %* u* PSR o/%'%)% ! u* $!'ão
'%"#n#'o. ! "un+ão su)%sso % o &%s&% '% o/?%o $o'% s% '%s)#&o '% *o'o g%n
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
24/44
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
25/44
2
g%!, "un)#on! !,&%!n'o ! !,o '% u*! !#-%, $o % 7RUSSELL. NORWING
20048
Ao %s)o,% u* noo !,o $!! u*! !#-%,. ! %uís)! *!#s !'%;u!'!
%n)on&!- u* !,o ;u% %su,&! %* u* nY*%o $%;u%no '% )on",#&os )o* !s ou&!s
!#-%#s. )!*!'! '% %uís)! '% )on",#&os *ín#*os O &%*$o '% %%)u+ão '% u*
PSR %so,#'o )o* %ss% $o '% %uís)! s%- #n'%$%n'%n&%*%n&% 'o &!*!no 'o
$o/,%*! 7s%* ,%! %* )ons#'%!+ão o $os#)#on!*%n&o #n#)#!,8
Po$!g!+ão '% R%s&#+ão
A $o$!g!+ão '% %s&#+=%s < ! %$%ssão g%!, $!! #n'#)! !
$o$!g!+ão '!s #*$,#)!+=%s '% u*! %s&#+ão '% u*! !#-%, $!! ou&!s !#-%#s
7RUSSEL. NORWING. 20048Po$!g!+ão $o %s&#+=%s '#"un'% #n"o*!+=%s '!s !#-%#s ;u% ?- "o!*
!&#/uí'!s $!! !s ;u% !#n'! s%ão !,o)!'!s Es&! &
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
26/44
24
, PROGRAMAÇÃO POR RESTRIÇÃO
Pog!*!+ão $o %s&#+ão 7PR8 < u* $!!'#g*! '% $og!*!+ão
'%s%no,#'! 'u!n&% os !nos 10 ;u% $ossu# !/o'!g%ns !,&%n!!s $!! !$og!*!+ão %* ;u% o $o)%sso '! *%s*! < ,#*#&!'o ! u*! g%!+ão '% %;u#s#&os
7%s&#+=%s8. $o'%n'o s% )ons#'%!'! $o'%os! $!! %so,% $o/,%*!s '%
$%s;u#s! )o*/#n!&V#! ;u% %)o% ! u*! g!*! '% &
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
27/44
2
Mu#&os $o/,%*!s ;u% $%)#s!* s% %so,#'os $o *%#o '! )o*$u&!+ão
não %s&ão '%"#n#'os )o* $%)#são ou ! su! %s$%)#"#)!+ão $o'% '%$%n'% '!
;u!,#'!'% '% u*! so,u+ão. )o*o ! %,o)#'!'% )o* o ;u% < )!,)u,!'o ou '#s$os#os
'% !'!%s u,&!$!ss!'os P!! %so,% %ss%s $o/,%*!s < $%)#so u,#! -#!s
#n&%!+=%s. n%ss%s )!sos ! PR &on!Bs% u* *%#o %"#)!
,.+ Po'"m"14o R#-!&!&" # Po/%#m"- 3# S"!&-0"14o 3# R#-!&1#-
A PR < u*! &%)no,og#! ;u% %so,% $o/,%*!s '% %s&#+=%s )o*
%"#)#(n)#!. no %n&!n&o. o $o/,%*! '%% s% *o'%,!'o )o*o u* PSR. !%n'o !
#n&%!+ão %n&% o *o'%,o '% %s&#+ão % o !,go#&*o '% /us)!
E#s&%* 'u!s !/o'!g%ns '#"%%n&%s ;u% "o!* )#!'!s $!! s#*$,#"#)!
%ss! #n&%!+ão. ! $#*%#! < u,#!n'o /#/,#o&%)!s %s$%)í"#)!s. )o*o ILOG So,%7/#/,#o&%)! Cbb8. Co)o 7/#/,#o&%)! 9AWA8 % E**! 7/#/,#o&%)! P:&on8. ! s%gun'!
)ons#s&% %* o"%%)% !o usu-#o u*! ,#ngu!g%* /!s%!'! n! %s&#+ão ,Vg#)!. )o*o
ECL#PS% 7/!s%!'o %* Po,og8 % S>I Po,og 7so"&!% )on&%n'o -#!s /#/,#o&%)!s
$!! so,u)#on! %s&#+ão8
D%%*os )ons#'%! !s '%"#n#+=%s '% PSR $!! %$%s%n&! u* $o/,%*!
P. on'% ! *o'%,!g%* M c 7`. D. C8. ` %$%s%n&!n'o !s !#-%#s. D o 'o*ín#o % C
!s %s&#+=%s O *o'%,o %* s# s%- %$%s%n&!'o $%,o )on?un&o '!s %s&#+=%s.
'o*ín#os % !#-%#s. s%n'o '#"%%n)#!'o 'o $o/,%*!. ou s%?!. o *o'%,o < s%$!!'o
'o #*$!ss% Connu!n'o. M %n&ão s%- u* *o'%,o '% P s% )!'! so,u+ão C
)o%s$on'% ! u*! so,u+ão '% P % )!'! )on),usão '% P $o'% s% '%#!'! ! $!
'% $%,o *%nos u*! so,u+ão %* C. ou s%?!. -#!s %so,u+=%s '% M $o'%
)o%s$on'% *%s*! so,u+ão ! P
E%*$,#"#)!n'o !&!
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
28/44
25
s% $ossí%, u,#! o *%s*o $og!*! $!! "#n!,#'!'%s '#"%%n&%s E* ,#ngu!g%ns
'% $og!*!+ão )on%n)#on!#s !s %,!+=%s $%)#s!* s% )on%'!s $#*%#o %*
"un+=%s. $o&!n&o ! $oss#/#,#'!'% '% us! %,!+=%s $!! '#"%%n&%s )V'#gos < %n&ão
$%'#'!
O uso '% %,!+=%s $!! %so,% $o/,%*!s $ossu# s%*%,!n+!s )o*
s#s&%*!s '% /!n)o '% '!'os %,!)#on!#s A '#"%%n+! < ;u% %* PR !s %,!+=%s são
#n"o*!'!s '% "o*! #*$,í)#&! % $ossu# u*! &!%"! '% %so,(B,!s. ?- %* /!n)o '%
'!'os %,!)#on!#s. !s %,!+=%s 7&!/%,!s8 são no*!,*%n&% '!'!s %$,#)#&!*%n&% % !
&!%"! )ons#s&% n! %"#)#(n)#! '% )onsu,&! 7APT 2008
A %$%s%n&!+ão '% u* $o/,%*! $o *%#o '% %s&#+=%s < *u#&o ",%í%,.
$o#s ! )on'#+ão $!! )!'! )!so $o'% s% !'#)#on!'!. %!'! ou !&< *%s*o
*o'#"#)!'! No $o)%sso. - u*! %$%s%n&!+ão 'o $o/,%*! us!n'o %s&#+=%s %su!s %s$%)!s so,u+=%s. $o'%n'o s% '##'#'o %* $!&%s *%no%s % #n&%)!,!'!s.
!,
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
29/44
2
7208 O o/?%o 'os )#!'o%s '! Co)o < $o$o)#on! u*! $,!&!"o*!
%$%#*%n&!, %no,%n'o "%!*%n&!s. %%*$,os '% !,go#&*os % su$o&% $!!
"on%)% %ns#no so/% $og!*!+ão %s&#!
42 C!!)&%ís)!s '! Co)o
E,! < )!$! '% *!n#$u,! u*! g!n'% !#%'!'% '% $os '% !#-%#s
)o*o3 !#-%#s #n&%#!s. )on?un&os '% !,o%s #n&%#os. !#-%#s %!#s % %$%ss=%s
;u% %$%s%n&%* u* nY*%o #n&%#o ou o$%!'o%s '% %$%ssão us!n'o /!s% %!,
7*!#s. *%nos. *u,$,#)!+ão. '##são. %s)!,! % ou&os8
A,
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
30/44
2
4 P!)u,!#'!'% '! Co)o
A #/,#o&%)! Co)o < "#n!n)#!'! $%,! _)o,% '%s M#n%s '% N!n&%s.
ou:gu%s SA % A*!'%us SA $!! ;u% %#s&! u* '%s%no,#*%n&o )onnuo '%*%,o#!s % !'!$&!+=%s Ess! #n#)#!! "! )o* ;u% ! API &on%Bs% *!#s !'!$&-%,
!os $o"#ss#on!#s no!&os % %$%#%n&%s %* PR. ou s%?!. *!#s %"#)#%n&% $!!
&!/!,! )o* $%s;u#s!s. '%s%no,#*%n&o '% so"&!%s % %ns#no '! $og!*!+ão
%s&#!
E,! não < ! Yn#)! %s$%)#!,#!'! %* %so,% %s&#+=%s. *!s u* '% s%us
'#"%%n)#!#s < ;u% %,! < u* so"&!% open source4. $%*#&% u*! %'u+ão n!
;u!n'!'% '% ,#n!s '% )V'#go % $ossu# o su$o&% )o*$,%&o $!! o s%u !$%n'#!'o
no s%u s#&% o"#)#!, % %* "VunsUn#%s#'!'%s % %s)o,!s '% %ng%n!#! ! u,#!* )o*o "o*! '%
!$%n'#!'o $!! $og!*!+ão %s&#!. )o*o3 Mon&$%,,#%. R%nn%s. Tou,ous%.
_)o,% '%s M#n%s '% N!n):. _)o,% '%s M#n%s '% N!n&%s. _)o,% N!on!,% Su$
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
31/44
2
,.< V"$!"'#$- 3# *!&%&;" Po'"m"14o R#-!&!&"
PR < u*! &%)no,og#! $!! %so,u+ão '% $o/,%*!s '% $,!n%?!*%n&o %
$og!*!+ão )o*$,%! Co* %,!+ão !os *
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
32/44
0
5 ESTUDO DE CASO: S>EDULER
O S%'u,% < u* so"&!% ;u% o/&%- ! "un+ão '% og!n#! os o-#os
'os $o"%sso%s ! $! '% #n"o*!+=%s )on'!s no /!n)o '% '!'os )o* /!s% %*%s&#+=%s '% '#!s '! s%*!n!. '#s)#$,#n!s $!! *#n#s&! % &unos 7*!&uno.
%s$%no ou no&uno8 O o/?%o $#n)#$!, 'o $og!*! < "!% %ss! og!n#!+ão
'! "o*! *!#s !u&o*-)! $ossí%,. s%* !% ! n%)%ss#'!'% '% %,%!'os &%*$os
$!! o %s)!,on!*%n&o
P!! "!% )o* ;u% %,% "oss% )!$! '% !&%n'% ! &o'os os #*$!ss%s
!/o'!'os $!! ! og!n#!+ão 'os o-#os 'os $o"%sso%s. "o# n%)%ss-#o '##'# o
&!/!,o %* &(s $!&%s3 %,!/o!+ão 'o $o/,%*!. )#!+ão 'o /!n)o '% '!'os $!!
!*!%n! &o'!s !s #n"o*!+=%s 'os $o"%sso%s % %,!/o!+ão '% u* $og!*!)!$! '% og!n#! !s #n"o*!+=%s $!! o %su,&!'o $o$os&o A,
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
33/44
1
$o"%sso%s "#)!* !,o)!'os %* u* %&o ! $! 'os s%us IDs )!'!s&!'os no /!n)o
'% '!'os. o $og!*! %s&- $%$!!'o $!! $%g! o $o"%sso ;u% % o *%no
)o%"#)#%n&% '% '#!s $!! *#n#s&! !u,! % %#"#)! s% )on'# )o* o '#! ;u% o so"&!%
;u% u,#! C!so %ss!s !"#*!!s s%?!* %'!'%#!s. o s#s&%*! $!ss!- $!! !
%&!$! ;u% %#"#)!- s% o $o"%sso
$ossu# '#s$on#/#,#'!'% $!! o o-#o S% !
%s$os&! "o $os#!. %n&ão o $og!*! #- %#"#)! s% o $o"%sso %* ;u%s&ão
$ossu# ! '#s)#$,#n! %* su! g!'% S% &o'!s %ss!s %&!$!s "o%* %'!'%#!s. o
$o/,%*! $!! o '#! a s%- %so,#'o W!,% %ss!,&! ;u% s% o $o"%sso não !&%n'%
! ;u!,;u% u*! '!s %s&#+=%s. o so"&!% o,&! !o %s&!'o #n#)#!, % !)%s)%n&! u*
!,o $!! $%)o% o %&o
F&'*" 5: Mo'%,o 'o $o/,%*!
Fo$!#: P%'oso. 2014
5.2 B"$9o 3# D"3o-
O /!n)o '% '!'os 7D8 < u*! )o,%+ão '% '!'os ,og#)!*%n&%
%,!)#on!'os ;u% $ossu%* u* s#gn#"#)!'o #*$,í)#&o on'% u*! '%&%*#n!'! !$,#)!+ão
$o'%- "!% su! #n&%$%&!+ão '% *o'o )o%%n&% O D < o$%!'o $o u* s#s&%*!
'% g%%n)#!*%n&o '% /!n)o '% '!'os 7SGD8. ;u% $ossu# ! "un+ão '% )on&o,! o
!)%sso s #n"o*!+=%s. g!!n ! )ons#s&(n)#! 'os '!'os !*!%n!'os % "on%)%
*%#os '% !)%sso ! %,%s O SGD u,#!'o $!! !*!%n! ! /!s% '% '!'os 'o
S%'u,% "o# o M:SQL. ;u% u,#! ! ,#ngu!g%* SQL )o*o #n&%"!)%
5 SQ+ – +inguagem de #onsulta struturada.
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
34/44
2
F&'*" 7: D#!g!*! '% En'!'% % R%,!)#on!*%n&o 'o S%'u,%
Fo$!#: P%'oso. 2014
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
35/44
P!! %$%s%n&! o D g!"#)!*%n&%. < n%)%ss-#o )#! u* *o'%,o )o*
"o*!&o '% '#!g!*!s ;u% #- '%s)%% o $!!'#g*! )on)%#&u!, 'o s#s&%*!. ou s%?!.
u* D#!g!*! En'!'% % R%,!)#on!*%n&o 7DER8 Po'%Bs% '%"#n# ;u% ! %n'!'%
s%- os o/?%&os u,#!'os '%n&o '% u* /!n)o '% '!'os )o* s%us '%#'os !&#/u&os
A#n'! %#s&%* %,!)#on!*%n&os ;u% #n&%,#g!* !s %n'!'%s 7"un+=%s )o*uns8 A
F#gu! 5 *os&!'! !n&%#o*%n&%. !$%s%n&! o DER 'o S%'u,% )o* &o'!s !s su!s
,#g!+=%s
5.+ Imp%#m#$!"14o 3o E-!*3o 3# C"-o
A $! 'os %s&u'os so/% os )on)%#&os '! $og!*!+ão %s&#! % o
!)u*u,o '% #n"o*!+=%s n%)%ss-#!s $!! %,!/o!+ão '% &%s&%s. "o# #n#)#!'o !
)ons&u+ão '% u* so"&!% )!$! '% %so,% o $o/,%*! '! og!n#!+ão '%o-#os 'os %'u)!'o%s
A ,#ngu!g%* '% $og!*!+ão u,#!'! $!! o '%s%no,#*%n&o 'o
so"&!% "o# ! 9!!. u*! ,#ngu!g%* o#%n&!'! ! o/?%&os %%)u&!'! $o u*! *-;u#n!
#&u!, A PR $ossu# u*! g!*! '% "%!*%n&!s )!$!%s '% u,#-B,! '! "o*! *!#s
%"#)! $ossí%, D%n&% %,!s %s)o,%*os ! /#/,#o&%)! Co)o. $o#s %,! < u*!
"%!*%n&! ,#%. $ossu# &o'!s !s "%!*%n&!s n%)%ss-#!s $!! s% u,#!'! n!
%,!/o!+ão '%ss% so"&!% % g!!n&% u* su$o&% )o*$,%&o %* s%u "Vu* $!!
$ossí%#s 'Y#'!s ;u!n&o !o s%u "un)#on!*%n&o
A IDE5 u,#!'! $!! ! !,o)!+ão 'o )V'#go "on&% s%- o E),#$s%. $o#s.
!ss#* )o*o o Co)o. $ossu# u* su$o&% *u#&o g!n'% $!! os usu-#os. !,
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
36/44
4
1 A*/#%n&% '% Pog!*!+ão 79AWA8
R%s$%#&!n'o os )on)%#&os '% POO. "o# #*$,%*%n&!'o ),!ss%s $!! '%"#n#
os o/?%&os $!! )o*$o % #n&%!g# )o* !s un#'!'%s 'o so"&!% Fo# )#!'o ;u!&o
),!ss%s on'% u*! os$%'! o )V'#go ;u% #- $u! !s #n"o*!+=%s 'o D. ou&! ;u%"#)!- %s$ons-%, $%,! og!n#!+ão '! PR % !s ou&!s 'u!s $!! )#!+ão 'os
o/?%&os $#n)#$!#s '! og!n#!+ão3 $o"%sso%s % '#s)#$,#n!s
P!! $o'% "!% ! u,#!+ão % *!n#$u,!+ão 'o D no 9AWA. "%Bs%
n%)%ss-#o ! #*$o&!+ão '% u*! /#/,#o&%)! %s$%)í"#)! $!! o &!&!*%n&o 'o SQL.
$o#s não < u*! u,#!+ão n!! A /#/,#o&%)! u,#!'! "o# ! mysql-connector-a!a
W!,% %ss!,&! ;u% !$%n!s n! ),!ss% ;u% "!#! ! )on%ão )o* o D ;u% %,! "o#
#*$o&!'! A ou&! /#/,#o&%)! u,#!'! "o# ! Co)o. #*$o&!'! !$%n!s n! ),!ss% ;u%
&!&!! '!s %s&#+=%s
2 I*$o&!n'o ! /#/,#o&%)! Co)o
Co*o %$%s%n&!'o n!s s%+=%s !n&%#o%s. ! /#/,#o&%)! %* ;u%s&ão
n%)%ss#&! '% u* *o'o '% og!n#!+ão $
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
37/44
$!! !s %s&#+=%s. o *o'%,o '% kernel '!s %s&#+=%s % u* *o'%,o '% kernel $!!
os $os '% !#-%#s ;u% #%*os &!/!,! W!,% o/s%! ;u% o &!&!*%n&o 'os
$o"%sso%s s%- "%#&o $%,os ID % não $%,o no*% '%,%s. $o #sso ! u,#!+ão '%
!#-%#s #n&%#!s
F&'*" =: I*$o&!+=%s 'o Co)o
Fo$!#: P%'oso. 2014
C#!n'o o *o'%,o % ! so,u+ão
To*!n'o )o*o /!s% !s '%"#n#+=%s '% PR. o *o'%,o 'o $o/,%*!
n%)%ss#&! s% )#!'o. !ss#* *os&!'o n! F#gu! Po u,#! ! POO. o o/?%&o
*o'%,o '%%- s% 'o $o %s$%)í"#)o '% *o'%,o 'o Co)o 7CPMo'%,8. ou s%?!. u*
o/?%&o
F&'*" ?: Mo'%,o % !#-%#s
Fo$!#: P%'oso. 2014
A$Vs '%"#n# o o/?%&o 'o *o'%,o. "o# )#!'o o o/?%&o '!s !#-%#s. !ss#*
'%*ons&!'o n! F#gu! . 'o $o %&o #n&%#o D%$o#s. %s&!/%,%)% !s %s&#+=%s %*
&ono 'o $o '% !#-%#s ;u% #%*os &!/!,!. )o*o %$%s%n&!'o n! F#gu! 10
7 -ernel – /cleo de um sistema.
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
38/44
5
F&'*" 10: R%s&#+=%s
Fo$!#: P%'oso. 2014
Po "#*. "o# )#!'o u* o/?%&o ;u% s%- %s$ons-%, $o so,u)#on! !s
%s&#+=%s !n&%#o*%n&% $o$os&!s. !ss#* '%*ons&!'o n! F#gu! 11
F&'*" 11: So,u+ão
Fo$!#: P%'oso. 2014
5., T#-!#-
Os &%s&%s #n#)#!#s "o!* $o$os&os $!! "!% ! og!n#!+ão 'os$o"%sso%s ;u% ,%)#on!* no )uso '% )#(n)#! '! )o*$u&!+ão $%,o &uno *!&uno.
)o* 10 %'u)!'o%s !,o)!'os no D As '#s)#$,#n!s '#s$oní%#s $o $%ío'o s%gu%*
og!n#!+ão %s&!/%,%)#'! n! g!'% )u#)u,! 'o )uso O G-"#)o 1 *os&! !
;u!n'!'% '% $o"%sso%s $!! )!'! $%ío'o
G(0&9o 1: Po"%sso%s $o P%ío'o
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
39/44
Fo$!#: P%'oso. 2014
Ao )o,%&! %ss!s #n"o*!+=%s. $!! '#%)#on! os &%s&%s. u,#!*os )o*o
/!s% o 2 $%ío'o. $o#s. !ss#* '%*ons&!'o no G-"#)o 1. < o ;u% $ossu# ! *!#o
;u!n'!'% '% $o"%sso%s '#s$oní%#s Os $o"%sso%s ;u% %s&!!* '#s$oní%#s no
D $!! %ss% $%ío'o %s&ão %$%s%n&!'os n! Qu!'o 1
@*"3o 1: T!/%,! 'os $o"%sso%s
Fo$!#: P%'oso. 2014
Fo# %!,#!'o )#n)o %%)u+=%s '% &o)! $!! %#"#)! ! $%*u&!+ão '%
)!'! $o"%sso. %$%s%n&!'os )o* s%us %s$%)os IDs % no*%s O nY*%o '%
%%)u+=%s "o# '%&%*#n!'o '% "o*! !/#&-#!. s%n'o !ss#*. !o %!,#! )#n)o
0 1 2 3 4 5 6
1
2
3
4
5
6
7
8
'rofessores por 'er0odo
Quantidade de 'rofessores
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
40/44
'#"%%n&%s $%*u&!+=%s. %#"#)ouBs% ;u% o $og!*! *o'#"#)!! os $o"%sso%s '%
!)o'o )o* )!'! '#s$on#/#,#'!'% '% '#!s. )o*o !$%s%n&!'o n! Qu!'o 2
@*"3o 2: P%*u&!+ão 'os $o"%sso%s 'o 2 P%ío'o
Permutação S#'*$3" T#1" @*"!" @*&$!" S#!"
1
11 A#!,'o K
Á,g%/!
L#n%!
5 T#!go K
A,go#&*o %
Pog!*!+ão
1 E,'! K
LVg#)!
Co*$u&!)#on!,
4 N#,!n%&% K
M%&o'o,og#!
C#%n&í"#)!
2 M#)%, K
C-,)u,o 1
"
11 A#!,'o K
Á,g%/!
L#n%!
1 E,'! K
LVg#)!
Co*$u&!)#on!,
5 T#!go K
A,go#&*o %
Pog!*!+ão
4 N#,!n%&% K
M%&o'o,og#!
C#%n&í"#)!
2 M#)%, K
C-,)u,o 1
#
4 N#,!n%&% K
M%&o'o,og#!
C#%n&í"#)!
1 E,'! K
LVg#)!
Co*$u&!)#on!,
5 T#!go K
A,go#&*o %
Pog!*!+ão
11 A#!,'o K
Á,g%/!
L#n%!
2 M#)%, K
C-,)u,o 1
$
11 A#!,'o K
Á,g%/!
L#n%!
5 T#!go K
A,go#&*o %
Pog!*!+ão
1 E,'! K
LVg#)!
Co*$u&!)#on!,
4 N#,!n%&% K
M%&o'o,og#!
C#%n&í"#)!
2 M#)%, K
C-,)u,o 1
%
11 A#!,'o K
Á,g%/!
L#n%!
1 E,'! K
LVg#)!
Co*$u&!)#on!,
5 T#!go K
A,go#&*o %
Pog!*!+ão
4 N#,!n%&% K
M%&o'o,og#!
C#%n&í"#)!
2 M#)%, K
C-,)u,o 1
Fo$!#: P%'oso. 2014
As %s&#+=%s &!&!'!s n! *%&o'o,og#! são !s *%n)#on!'!s s%+ão 1
'%s&% &!/!,o D%s&! "o*!. o/s%!Bs% ;u% ! '#s&#/u#+ão '!s '#s)#$,#n!s $!! u*
'%&%*#n!'o '#! '! s%*!n! '%$%n'% 'o $o"%sso ;u% "o# !,o)!'o $!! %,! Isso
#*$,#)! '#% ;u% ! '#s)#$,#n! '% Á,g%/! L#n%! !# "#)! )o* o $o"%sso ;u% $ossu#
! '#s$on#/#,#'!'% $!! ,%)#on-B,! Ess! #su!,#!+ão "o# o/'! %* )onsu,&! '#%&! n!
/!s% '% '!'os % !)%s)%n&!'! !o Qu!'o 2
W%#"#)ouBs%. !#n'!. ;u% %#s&% $o"%sso%s ;u% "#)!!* !,o)!'os $!!
'%&%*#n!'o '#! '! s%*!n!. ou s%?!. o so"&!% %#"#)ou ;u% %#su $o"%sso%s;u% $ossuí!* *!#o $%"%(n)#! $!! ,%)#on! %* '%&%*#n!'os '#!s Po %%*$,o.
o $o"%sso M#)%, $ossu# *!#o $#o#'!'% '% ,%)#on! n! s%&!B"%#!. $o#s '!s )#n)o
$%*u&!+=%s o)o#'!s %,% s%*$% "o# !,o)!'o $!! %ss% '#! O G-"#)o 2 %su*% !s
$%*u&!+=%s $!! )!'! $o"%sso
G(0&9o 2: G-"#)o '% $%*u&!+ão
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
41/44
Fo$!#: P%'oso. 2014
5.5 R#-*%!"3o-
O so"&!% "! ! og!n#!+ão $%,! "o*! ;u% "o# $og!*!'o E*
)on&!$!'!. ! ;u!n'!'% '% $o"%sso%s !,o)!'os no D não "o# o su"#)#%n&% $!!
'#s&#/u# &o'os %,%s '#"%%n&%s $!! &o'os os $%ío'os A,
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
42/44
40
7 CONCLUSÃO
O !u*%n&o ;u!n&!o '% !,unos ;u% #ng%ss!* n!s "!)u,'!'%s %
un#%s#'!'%s. % o )ons%;u%n&% !u*%n&o 'o )o$o 'o)%n&%. "% )o* ;u% "oss%n%)%ss-#! ! u,#!+ão '% s#s&%*! $!! !u&o*!! ! g%s&ão 'os o-#os 'os
$o"%sso%s. u,#!n'o os )on)%#&os '! $og!*!+ão $o %s&#+ão
O $%s%n&% &!/!,o %$,#)ou !s /!s%s '! $og!*!+ão %s&#! % !s
'#s)#$,#n!s ;u% '%!* o#g%* ! %,! T!, u,#!+ão '%uBs% '%#'o !o "!&o '%,! s% u*
$!!'#g*! %s$%)#!,#!'o %* %s&#+=%s. ;u% "!)#,#&ou ! )ons&u+ão 'o so"&!% % "%
! og!n#!+ão '! "o*! *!#s )o%&! $ossí%,. s%* ! %#g(n)#! '% %s"o+os *!#s
)o*$,%os &!n&o n! )#!+ão ;u!n&o n! %so,u+ão
R%ss!,&ouBs% &!*/
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
43/44
41
REFERÊNCIAS
ACP K Asso)#!on "o Cons&!#n& Pog!**#ng D#s$oní%, %*3 e&&$366!4)$og6 f
APT. J:s&o" R P&$9&p%#- o0 Co$-!"&$! Po'"mm&$' ]S,^ C!*/#'g% 200
APTISTA. Luís E-!*3o p#%&m&$" 3# #-!"!- p"" "%'o&!mo- 3# CSPD#s$oní%, %*3e&&$366)o*u*)!!$$&6/#&s&%!*61245620616Es&u'oX20$%,#*#n!$'" fA)%sso %* 20 ou& 2014
ORIGA. L%)& R!'u So%&$' -om# op!&m&;"!&o$ po/%#m- *-&$' 9o9o %&/"D#s$oní%, %*3e &&$366*%g!/:&%u&*o6%n6!)o,%62006Ss%*\161o#g!$'" fA)%sso %* 20 ou& 2014
CHOCO K A F%% !n' O$%nBSou)% 9!! L#/!: "o Cons&!#n& Pog!**#ngD#s$oní%, %*3e &&$366)o)oBso,%og6 f
EURODECISION K O$%!on!, R%s%!) Co$-!"&$! Po'"mm&$' D#s$oní%,%*3e &&$366%uo'%)#s#on%u6)ons&!#n&B$og!**#ng f A)%sso %*3 2 ou&2014
FRUH>IRTH. To* HEROLD. A,%!n'% JUCHENHOFF. Wo,% PROWOST.T#%: L% LIM. P#%% MONFROa. E#) >ALLACE. M! Co$-!"&$! %o'&9po'"mm&$' A$ &$0om"% I$!o3*9!&o$ D#s$oní%, %*3 e&&$366)#&%s%%#s&$su%'u6#%'o)6'on,o!'?s%ss#on#'c405F12212450FD0['o#c1011211%$c%$1&:$%c$'" f A)%sso %*3 2 ou& 2014
GANU. H#s#%s Co$-!"&$! Po'"mm&$'. D#s$oní%, %*3 e&&$s366#n"o*sog6ORMSBTo'!:6Pu/,#)BA),%s6Augus&BWo,u*%BBNu*/%B46Cons&!#n&B$og!**#ng f A)%sso %*3 2 ou& 2014
IM M"!#m"!&9"% Po'"mm&$' -. Co$-!"&$! Po'"mm&$' D#s$oní%, %*3e&&$366B01#/*)o*6so"&!%6#n&%g!on6o$*#!on6)$,%B)$Bo$*#%6*$B)$6 fA)%sso %* 20 ou& 2014
LUGER. G%og% F I$!#%&'$9&" A!&0&9&"% 4 %' Po&o A,%g%3 oo*!n 2004
MORENO. An! C!o,#n! FA9ARDO. W!n%ss! Nm#o 3# m"!69*%"- $o #$-&$o-*p#&o 9#-9# =1% #m 3#; "$o- D#s$oní%, %*3 e
&&$366g1g,o/o)o*6%'u)!)!o6no)#!62016106nu*%oB'%B*!&#)u,!sBnoB%ns#noBsu$%#oB)%s)%B1B%*B'%B!nos&*, f A)%sso %* 1 s%& 2014
NASCIMENTO. R!"!%, 9 O,#%#! 'o E$'#$"&" 3# -o0!"# o$!"3" ""'#$!#- D#s$oní%, %*3 e &&$366'%*%'#!)o*/6%ng%n!#!B'%Bso"&!%Bo#%n&!'!B!B!g%n&%s622 f A)%sso %* 20 ou& 2014
Pu/,#)!ons /: &% Cons&!#n& S!s"!)on !n' O$*#!on Gou$. Un#%s#&: o"Ess% D#s$oní%, %*3 e &&$366)s%ss%!)u6CSP6$!$%s&*, f
-
8/18/2019 PROGRAMAÇÃO POR RESTRIÇÃO: UMA SOLUÇÃO PARA RESOLVER PROBLEMAS DE ORGANIZAÇÃO DE HORÁRIOS
44/44
42
ROSSI. F!n)%s)! EEJ. P%&% W!n >ALSH. To/: H"$3/oo o0 Co$-!"&$!Po'"mm&$' ]S,^ E,s%#%. 2005
RUSSELL. S&u!& NORWIG. P%&% I$!#%&'$9&" A!&0&9&"% 2 E' T!'u+ão3W!n'%n/%g D '% Sou! São P!u,o3 E,s%#%. 2004
SANTOS. R!"!%, En&%n'%n'o $og!*!+ão )o* %s&#+=%s !&!