<font size=2 face="sans-serif">Hi Haroldo,</font><br><br><font size=2 face="sans-serif">Thanks for you help.</font><br><br><br><font size=2 face="sans-serif">"Won't solve at all" means
no feasible solution found.</font><br><font size=2 face="sans-serif">Bad Performance means optimality will
never be proven. Even after 10 hours.</font><br><br><br><font size=2 face="sans-serif">I uploaded the mps test file at mega,
so you can have a look.</font><br><br><a href="https://mega.nz/#!pvwDCC4A!GQBkhIZxkTdYaasgv_zGJwtIa1xQnWA98zisqsb2G-Q"><font size=2 color=blue face="sans-serif">https://mega.nz/#!pvwDCC4A!GQBkhIZxkTdYaasgv_zGJwtIa1xQnWA98zisqsb2G-Q</font></a><br><br><br><font size=2 face="sans-serif">Test with the suggested multiple=2 parameter:</font><br><br><font size=2 face="sans-serif">Solution found by heuristics improved
somewhat, but doesn't prove optimality too.</font><br><br><font size=2 face="sans-serif">Cbc0012I Integer solution of 382870
found by heuristic after 962994 iterations and 600 nodes (1181.97 seconds)</font><br><font size=2 face="sans-serif">...</font><br><font size=2 face="sans-serif">Cbc0010I After 1100 nodes, 305 on tree,
382785 best solution, best possible 382334.99 (1600.36 seconds)</font><br><br><br><font size=2 face="sans-serif">Zerohalfcuts were on forceon before,
so that should be ok i think?</font><br><br><br><br><font size=2 face="sans-serif">Thanks</font><br><br><br><font size=1 face="Arial">Mit freundlichen Grüßen / Kind regards</font><br><br><br><font size=2 face="Arial"><b>Pieter Zieschang</b></font><br><table width=800 style="border-collapse:collapse;"><tr height=8><td width=800 colspan=4 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><hr><tr height=8><td width=800 colspan=4 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><tr height=8><td width=61 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><td width=224 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><td width=281 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><td width=232 rowspan=5 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><tr height=8><td width=61 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><td width=224 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><td width=281 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><tr height=8><td width=61 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><td width=224 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><td width=281 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><tr height=8><td width=61 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><td width=224 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><td width=281 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><tr height=8><td width=567 colspan=3 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><hr><tr height=8><td width=800 colspan=4 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><font size=1 color=#808080 face="Arial">Modis
IT Outsourcing GmbH . Ein Unternehmen der internationalen Adecco Gruppe</font><br><font size=1 color=#808080 face="Arial">Geschäftsführer: Andreas Buchelt
. Martin Wimmer. Amtsgericht Düsseldorf HRB 78227</font><br><font size=1 color=#808080 face="Arial">Hauptsitz der Gesellschaft:
Niederkasseler Lohweg 18, 40547 Düsseldorf</font></table><br><br><br><br><br><font size=1 color=#5f5f5f face="sans-serif">From:      
 </font><font size=1 face="sans-serif">Haroldo Gambini Santos
<haroldo.santos@gmail.com></font><br><font size=1 color=#5f5f5f face="sans-serif">To:      
 </font><font size=1 face="sans-serif">Pieter Zieschang1 <Pieter.Zieschang1@de.ibm.com>,
cbc@list.coin-or.org</font><br><font size=1 color=#5f5f5f face="sans-serif">Date:      
 </font><font size=1 face="sans-serif">25.07.2017 19:45</font><br><font size=1 color=#5f5f5f face="sans-serif">Subject:    
   </font><font size=1 face="sans-serif">Re: [Cbc] CBC
Performance on Rostering Problem</font><br><hr noshade><br><br><br><font size=3>Hi Pieter,</font><p><br><font size=3>Em 25-07-2017 05:22, Pieter Zieschang1 escreveu:</font><br><font size=2 face="sans-serif">Hello,<br>i'd like to use COIN CBC for solving a Rostering Problem, but performance
is either bad or it won't solve at all.</font><br><font size=2> "</font><font size=2 face="sans-serif">won't
solve at all" means (i) no  feasible solution found or (ii) optimality
not proved ?</font><br><font size=2 face="sans-serif"><br>Below is the log with the best parameters i happened to find.<br>Preprocessing with the standard SOS might geht stuck at 1e+9, which is
also commented with "Possible Preprocessing Problem - try without".</font><font size=3><br></font><font size=2 face="sans-serif"><br>Can someone please suggest parameters which might work better?</font><br><font size=2>I found that  the option<b><br>multiple 2</b> <br>Is quite useful, since an different fractional solutions are generated
at the root note and more cuts (and rounding heuristics) are executed<b><br>zero ifmove</b><br>zero half cuts are usually good too<br><br>It would be good too look at your .lp</font><br><font size=2 face="sans-serif">Thanks.</font><font size=3><br></font><font size=2 face="sans-serif"><br>I also compared it with CPLEX, and it solves to optimality in 70 seconds
at default settings.</font><font size=3><br><br></font><font size=2 face="sans-serif"><br>The MPS file is 27 MB so i can't add it to a pastebin. Zipped it's still
2,5 MB.</font><font size=3><br><br><br></font><font size=2 face="sans-serif"><br>$ ./cbc 23844-T1_0.mps -threads=4 timemode=elapsed -seconds=4000 -keepNames=on
-dualt=1e-06 -perturb=on -pertvalue=59 -constraint=on -cuts=on -clique=forceon
-zero=forceon -preprocess=aggregate -probing=forceonstrong -passt=30 -ratiogap=0.001
-solve -solution=23844-T1_0.solution.txt<br>Welcome to the CBC MILP Solver<br>Version: 2.9<br>Build Date: Jul 18 2017<br>Revision Number: 2339</font><font size=3><br></font><font size=2 face="sans-serif"><br>command line - ./cbc 23844-T1_0.mps -threads=4 timemode=elapsed -seconds=4000
-keepNames=on -dualt=1e-06 -perturb=on -pertvalue=59 -constraint=on -cuts=on
-clique=forceon -zero=forceon -preprocess=aggregate -probing=forceonstrong
-passt=30 -ratiogap=0.001 -solve -solution=23844-T1_0.solution.txt (default
strategy 1)<br>At line 1 NAME ES FREE<br>At line 2 ROWS<br>At line 60579 COLUMNS<br>At line 665087 RHS<br>At line 725663 RANGES<br>At line 725664 BOUNDS<br>At line 729233 ENDATA<br>Problem ES has 60575 rows, 47237 columns and 589221 elements<br>Coin0008I ES read with 0 errors<br>threads was changed from 0 to 4<br>Option for timeMode changed from cpu to elapsed<br>seconds was changed from 1e+100 to 4000<br>dualTolerance was changed from 1e-07 to 1e-06<br>pertValue was changed from 50 to 59<br>Option for constraintfromCutoff changed from off to on<br>Option for cliqueCuts changed from on to forceOn<br>Option for zeroHalfCuts changed from off to forceOn<br>Option for preprocess changed from sos to aggregate<br>Option for probingCuts changed from on to forceOnStrong<br>passTreeCuts was changed from 10 to 30<br>ratioGap was changed from 0 to 0.001<br>Continuous objective value is 376993 - 15.42 seconds<br>Cgl0012I Added 426 variables (from 216 rows) with 3468 elements<br>Cgl0011I 15201 variables made integer<br>Cgl0002I 3215 variables fixed<br>Cgl0003I 0 fixed, 8618 tightened bounds, 17171 strengthened rows, 1527
substitutions<br>Cgl0003I 0 fixed, 0 tightened bounds, 13450 strengthened rows, 0 substitutions<br>Cgl0003I 0 fixed, 0 tightened bounds, 11586 strengthened rows, 0 substitutions<br>Cgl0003I 0 fixed, 0 tightened bounds, 9864 strengthened rows, 0 substitutions<br>Cgl0003I 0 fixed, 0 tightened bounds, 8234 strengthened rows, 0 substitutions<br>Cgl0003I 0 fixed, 0 tightened bounds, 6963 strengthened rows, 0 substitutions<br>Cgl0003I 0 fixed, 0 tightened bounds, 5873 strengthened rows, 0 substitutions<br>Cgl0003I 0 fixed, 0 tightened bounds, 4780 strengthened rows, 0 substitutions<br>Cgl0003I 0 fixed, 0 tightened bounds, 3741 strengthened rows, 0 substitutions<br>Cgl0004I processed model has 24369 rows, 20513 columns (20424 integer (11796
of which binary)) and 271657 elements<br>Cbc0038I Initial state - 1079 integers unsatisfied sum - 328.79<br>Cbc0038I Pass   1: (109.12 seconds) suminf.    6.66667 (20)
obj. 8.04436e+08 iterations 17817<br>Cbc0038I Pass   2: (109.16 seconds) suminf.    6.66667 (20)
obj. 8.04436e+08 iterations 202<br>Cbc0038I Pass   3: (109.19 seconds) suminf.    0.00000 (0)
obj. 8.04417e+08 iterations 46<br>Cbc0038I Solution found of 8.04417e+08<br>Cbc0038I Relaxing continuous gives 8.04417e+08<br>Cbc0038I Cleaned solution of 8.04417e+08<br>Cbc0038I Before mini branch and bound, 18679 integers at bound fixed and
9229 continuous of which 12 were internal integer and 0 internal continuous<br>Cbc0038I Full problem 24369 rows 20513 columns, reduced to 2217 rows 1443
columns<br>Cbc0038I Mini branch and bound improved solution from 8.04417e+08 to 2.00979e+08
(109.64 seconds)<br>Cbc0038I Round again with cutoff of 1.80919e+08<br>Cbc0038I Pass   4: (111.38 seconds) suminf.    6.89402 (21)
obj. 1.80919e+08 iterations 210<br>Cbc0038I Pass   5: (111.44 seconds) suminf.    6.89402 (21)
obj. 1.80919e+08 iterations 222<br>Cbc0038I Pass   6: (111.52 seconds) suminf.    0.00000 (0)
obj. 1.80919e+08 iterations 225<br>Cbc0038I Solution found of 1.80919e+08<br>Cbc0038I Branch and bound needed to clear up 2 general integers<br>Cbc0038I Full problem 24371 rows 20513 columns, reduced to 0 rows 0 columns<br>Cbc0038I Cleaned solution of 1.03622e+08<br>Cbc0038I Before mini branch and bound, 18716 integers at bound fixed and
9266 continuous of which 12 were internal integer and 0 internal continuous<br>Cbc0038I Full problem 24369 rows 20513 columns, reduced to 2170 rows 1396
columns<br>Cbc0038I Mini branch and bound improved solution from 1.03622e+08 to 813382
(112.36 seconds)<br>Cbc0038I Round again with cutoff of 726105<br>Cbc0038I Reduced cost fixing fixed 2 variables on major pass 3<br>Cbc0038I Pass   7: (124.61 seconds) suminf.   70.08127 (177)
obj. 726105 iterations 9037<br>Cbc0038I Pass   8: (128.18 seconds) suminf.   23.89949 (102)
obj. 726105 iterations 4469<br>Cbc0038I Pass   9: (135.43 seconds) suminf.    0.97161 (416)
obj. 726105 iterations 10848<br>Cbc0038I Pass  10: (148.48 seconds) suminf.    0.01724 (8)
obj. 726105 iterations 16355<br>Cbc0038I No solution found this major pass<br>Cbc0038I After 148.48 seconds - Feasibility pump exiting with objective
of 813382 - took 51.20 seconds<br>Cbc0012I Integer solution of 813382 found by feasibility pump after 0 iterations
and 0 nodes (148.50 seconds)<br>Cbc0038I Full problem 24369 rows 20513 columns, reduced to 1740 rows 960
columns<br>Cbc0012I Integer solution of 786632 found by RINS after 0 iterations and
0 nodes (154.70 seconds)<br>Cbc0031I 79 added rows had average density of 97.139241<br>Cbc0013I At root node, 79 cuts changed objective from 376997.5 to 382210
in 10 passes<br>Cbc0014I Cut generator 0 (Probing) - 314 row cuts average 10.7 elements,
125 column cuts (198 active)  in 27.244 seconds - new frequency is
1<br>Cbc0014I Cut generator 1 (Gomory) - 358 row cuts average 332.1 elements,
0 column cuts (0 active)  in 4.132 seconds - new frequency is 1<br>Cbc0014I Cut generator 2 (Knapsack) - 0 row cuts average 0.0 elements,
0 column cuts (0 active)  in 0.259 seconds - new frequency is 1000<br>Cbc0014I Cut generator 3 (Clique) - 14 row cuts average 3.8 elements, 0
column cuts (0 active)  in 0.044 seconds - new frequency is 1<br>Cbc0014I Cut generator 4 (MixedIntegerRounding2) - 6 row cuts average 131.5
elements, 0 column cuts (0 active)  in 0.384 seconds - new frequency
is 2<br>Cbc0014I Cut generator 5 (FlowCover) - 0 row cuts average 0.0 elements,
0 column cuts (0 active)  in 0.153 seconds - new frequency is 1000<br>Cbc0014I Cut generator 6 (TwoMirCuts) - 385 row cuts average 90.3 elements,
0 column cuts (0 active)  in 3.520 seconds - new frequency is 1<br>Cbc0014I Cut generator 7 (ZeroHalf) - 20 row cuts average 5.1 elements,
0 column cuts (0 active)  in 9.168 seconds - new frequency is 1<br>Cbc0010I After 0 nodes, 1 on tree, 786632 best solution, best possible
382210 (248.85 seconds)<br>Cbc0012I Integer solution of 737006 found by heuristic after 153897 iterations
and 41 nodes (384.76 seconds)<br>Cbc0012I Integer solution of 646257 found by heuristic after 170222 iterations
and 49 nodes (396.54 seconds)<br>Cbc0012I Integer solution of 403185 found by heuristic after 241273 iterations
and 92 nodes (462.37 seconds)<br>Cbc0010I After 100 nodes, 55 on tree, 403185 best solution, best possible
382309.99 (472.13 seconds)<br>Cbc0010I After 200 nodes, 105 on tree, 403185 best solution, best possible
382309.99 (598.06 seconds)<br>Cbc0012I Integer solution of 397585 found by heuristic after 599679 iterations
and 295 nodes (726.93 seconds)<br>Cbc0012I Integer solution of 382710 found by heuristic after 605611 iterations
and 297 nodes (731.82 seconds)<br>Cbc0010I After 300 nodes, 62 on tree, 382710 best solution, best possible
382309.99 (733.95 seconds)<br>Cbc0010I After 400 nodes, 103 on tree, 382710 best solution, best possible
382309.99 (826.14 seconds)<br>Cbc0010I After 500 nodes, 133 on tree, 382710 best solution, best possible
382309.99 (928.93 seconds)<br>Cbc0010I After 600 nodes, 156 on tree, 382710 best solution, best possible
382309.99 (1020.12 seconds)<br>Cbc0010I After 700 nodes, 173 on tree, 382710 best solution, best possible
382309.99 (1102.31 seconds)<br>Cbc0010I After 800 nodes, 203 on tree, 382710 best solution, best possible
382309.99 (1183.09 seconds)<br>Cbc0010I After 900 nodes, 228 on tree, 382710 best solution, best possible
382309.99 (1263.68 seconds)<br>Cbc0010I After 1000 nodes, 247 on tree, 382710 best solution, best possible
382309.99 (1334.03 seconds)<br>...<br>Cbc0010I After 5700 nodes, 440 on tree, 382710 best solution, best possible
382309.99 (3730.53 seconds)<br>Cbc0010I After 5800 nodes, 437 on tree, 382710 best solution, best possible
382309.99 (3765.98 seconds)<br>Cbc0010I After 5900 nodes, 446 on tree, 382710 best solution, best possible
382309.99 (3812.35 seconds)<br>Cbc0010I After 6000 nodes, 440 on tree, 382710 best solution, best possible
382309.99 (3854.76 seconds)<br>Cbc0010I After 6100 nodes, 431 on tree, 382710 best solution, best possible
382309.99 (3890.37 seconds)<br>Cbc0030I Thread 0 used 1485 times,  waiting to start 2.8537025,  9193
locks, 3.2881584 locked, 0.05332756 waiting for locks<br>Cbc0030I Thread 1 used 1611 times,  waiting to start 18.775235,  9954
locks, 3.5816755 locked, 0.032725334 waiting for locks<br>Cbc0030I Thread 2 used 1578 times,  waiting to start 22.087676,  9821
locks, 3.5143106 locked, 0.039180279 waiting for locks<br>Cbc0030I Thread 3 used 1517 times,  waiting to start 47.964042,  9311
locks, 3.4258959 locked, 0.03879118 waiting for locks<br>Cbc0030I Main thread 3671.0922 waiting for threads,  12458 locks,
0.03922987 locked, 0.0096375942 waiting for locks<br>Cbc0020I Exiting on maximum time<br>Cbc0005I Partial search - best objective 382710 (best possible 382309.99),
took 6815530 iterations and 6188 nodes (3929.06 seconds)<br>Cbc0032I Strong branching done 25448 times (2168378 iterations), fathomed
135 nodes and fixed 1192 variables<br>Cbc0035I Maximum depth 51, 296493 variables fixed on reduced cost<br>Cuts at root node changed objective from 376998 to 382210<br>Probing was tried 6524 times and created 155973 cuts of which 365 were
active after adding rounds of cuts (713.728 seconds)<br>Gomory was tried 1480 times and created 4739 cuts of which 0 were active
after adding rounds of cuts (853.292 seconds)<br>Knapsack was tried 55 times and created 14 cuts of which 0 were active
after adding rounds of cuts (1.879 seconds)<br>Clique was tried 6359 times and created 9244 cuts of which 0 were active
after adding rounds of cuts (55.088 seconds)<br>MixedIntegerRounding2 was tried 3192 times and created 221 cuts of which
0 were active after adding rounds of cuts (263.052 seconds)<br>FlowCover was tried 55 times and created 0 cuts of which 0 were active
after adding rounds of cuts (0.871 seconds)<br>TwoMirCuts was tried 1480 times and created 2398 cuts of which 0 were active
after adding rounds of cuts (94.707 seconds)<br>ZeroHalf was tried 6359 times and created 8295 cuts of which 0 were active
after adding rounds of cuts (17913.959 seconds)<br>ImplicationCuts was tried 109 times and created 158 cuts of which 0 were
active after adding rounds of cuts (0.483 seconds)</font><font size=3><br></font><font size=2 face="sans-serif"><br>Result - Stopped on time limit</font><font size=3><br></font><font size=2 face="sans-serif"><br>Objective value:                382710.00000000<br>Lower bound:                  
 382309.993<br>Gap:                    
       0.00<br>Enumerated nodes:               6188<br>Total iterations:               6815530<br>Time (CPU seconds):             14185.91<br>Time (Wallclock seconds):       3933.92</font><font size=3><br></font><font size=2 face="sans-serif"><br>Total time (CPU seconds):       14186.18   (Wallclock
seconds):       3934.22</font><font size=3><br><br><br><br><br><br><br></font><font size=2 face="Arial"><b><br>Pieter Zieschang</b></font><font size=1 color=#0060a0 face="Arial"><br>pieter.zieschang1 (at) de.ibm.com</font><font size=3><br></font><table width=800 style="border-collapse:collapse;"><tr height=8><td width=798 colspan=4 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><tr height=8><td width=798 colspan=4 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><tr height=8><td width=60 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><td width=222 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><td width=278 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><td width=230 rowspan=5 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><tr height=8><td width=60 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><td width=222 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><td width=278 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><tr height=8><td width=60 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><td width=222 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><td width=278 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><tr height=8><td width=60 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><td width=222 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><td width=278 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><tr height=8><td width=565 colspan=3 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><tr height=8><td width=798 colspan=4 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:1px 1px;"><font size=1 color=#808080 face="Arial">Modis
IT Outsourcing GmbH . Ein Unternehmen der internationalen Adecco Gruppe<br>Geschäftsführer: Andreas Buchelt . Martin Wimmer. Amtsgericht Düsseldorf
HRB 78227<br>Hauptsitz der Gesellschaft: Niederkasseler Lohweg 18, 40547 Düsseldorf</font></table><br><font size=3><br><br><br></font><br><tt><font size=3>_______________________________________________<br>Cbc mailing list<br></font></tt><a href="mailto:Cbc@list.coin-or.org"><tt><font size=3 color=blue><u>Cbc@list.coin-or.org</u></font></tt></a><tt><font size=3><br></font></tt><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_cbc&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=pLOfVNEEHf-xhIqn1-uzYcZ6Q7UefG6Bg6rXCKTMiAA&m=j-3RLRIDdQTNED2_J5RbaqZ46PE1Ns6BxmcD9Jek86Q&s=IydX2sIJzOq0qgLsiBhjOZ8Q5vNqzs57_3DHdXy613w&e="><tt><font size=3 color=blue><u>https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_cbc&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=pLOfVNEEHf-xhIqn1-uzYcZ6Q7UefG6Bg6rXCKTMiAA&m=j-3RLRIDdQTNED2_J5RbaqZ46PE1Ns6BxmcD9Jek86Q&s=IydX2sIJzOq0qgLsiBhjOZ8Q5vNqzs57_3DHdXy613w&e=</u></font></tt></a><tt><font size=3><br></font></tt><br><br><tt><font size=3>-- <br>==================================================<br>Haroldo Gambini Santos<br>D.Sc, Computer Science<br>Universidade Federal de Ouro Preto<br></font></tt><a href=http://www.decom.ufop.br/haroldo/><tt><font size=3 color=blue><u>http://www.decom.ufop.br/haroldo/</u></font></tt></a><br><br><BR>