1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523
|
In the initial order, in nIncompatible, put also teacher(students)intervalMaxDaysPerWeek, like in teacherMaxDaysPerWeek
---------------------------------------------------------------
From Horatiu Halmajan:
Students max gaps per day
Students set max days per week (but you can use for the moment students (set) interval max days per week).
Max gaps constraints with weight under 100% (this is very difficult)
---------------------------------------------------------------
From George Miliotis:
I want to propose a feature: notes attached to each rule. If I can
attach a small text snippet to rules I can put in there when and who
asked for the rule. This makes "fixing" locked timetables easier cause i
know what rules to remove. Also, I can make notes to myself when i use
'tricks'. EG. set lab1+lab2 for an activity: 'all teacher's courses are
labs but students won't fit in lab 3 so i had to exclude it here'
---------------------------------------------------------------
From Horatiu Halmajan:
Horatiu:
> > I met a situation: a teacher asks for maximum 2 working days, but these
> > days should not be consecutive.
> >
> > Is there a way to implement it in .fet?
> >
> > The only (manual) way I could think of, is to set the teacher as
> > unavailable on Tuesdays and Thursdays, thus leaving him available on
> > Monday, Wednesday and Friday (any two of these are unconsecutive).
> >
> > Any other ideas...?
>
Liviu:
> I have another idea: add a dummy activity for this teacher, split into 2
> per
> week, min n days = 2, with 100%. You just need to take care that this
> teacher
> has place for these dummy activities (enough slots in the day) and to
> consider
> these dummy activities as possible gaps, so if teacher has max gaps 2 then
> make max gaps for him 0.
>
Horatiu:
For my case, the second idea worked perfectly, as my teacher does not accept
gaps.
I have also "played" with the first with the first idea, as it seems to be
the most un-restrictive one. It also worked. I tried it three times, and in
all three situations at least one of the dummy activities was the first or
the last activity for the teacher's day. So, there is a chance that the
teacher would end up with only one gap.
Which leads me to a suggestion: An activity end (or starts) a teacher's day.
Similar to "an activity ends students's day)
---------------------------------------------------------------
From daviodan:
in Romanian (see below for English translation):
Voi face referire la sample_Brazil_more_difficult_max_2_gaps_for_teachers.fet
1. In fereastra FET activities exista mai multe filtre dupa numele prof,clasa,etc.
Daca de exemplu alegem la Subject "Matematica" si facem filtrarea si dupa numele
profesorului atunci lista filtrului ar trebui sa contina doar numele :Bruna,Silvania,Wellington
deoarece doar acestia predau matematica .In momentul de fata filtrul contine lista tuturor profesorilor.
Analog pentru celelalte filtre.
2. In fereastra All time constraints s-ar putea aduga sus un filtru dupa tipul de constrangere ?
3. In fereastra Teachers statistics cand se da click pe numele unui profesor sa apara in dreapta
intr-o casuta toate constrangerile pentru acel profesor introduse pana in acel moment.
in English:
I will refer to sample_Brazil_more_difficult_max_2_gaps_for_teachers.fet
1. In the FET activities dialog there exist more filters after the teacher, group, etc.
If we choose for instance the subject "Math" and we do the filtering also after the name of
the teacher, then the list of the filter should contain only the name: Bruna,Silvania,Wellington,
because only these teache Maths. In the present moment the filter contains the list of all teachers.
The same for all the other filters.
2. In the window of all time constraints, could we add a filter after the type of constraint?
3. In the teachers' statistics dialog, when we click a teacher, there should appear in the right
in a box all the constraints for this teacher inputted by that moment.
---------------------------------------------------------------
From Azu Boba:
Currently there is no option in FET to set desired teaching times for a
teacher. You can do the opposite, set undesired/unavailable times for a
teacher, but it's not the same thing. Sometimes you just want a teacher
to teach on a specific hour (usually on his/her request) without
specifying the subject/class.
E.g. teacher X wants to start teaching on the first hour every
Wednesday, without specifying subject/class in order to maximize
flexibility.
I think this new restriction will be a very helpful addition. Currently,
I have to generate multiple timetables and browse the results in order
to pinpoint cases where the specific restrictions are met.
---
Thanks for looking into it!
Yes, currently I am forcing the activities into the slots I want but
usually it takes a lot of restrictions (teacher not available usually)
that I need to remember to remove as soon as I find a desirable solution
in order to keep the general timetable flexible for future changes.
Here in Greece, desired and undesired slots have about the same weight.
The thing is that not all teaching hours have the same time length (1st
hour 45min, 2nd 45min, 3rd 45min, 4th 40min, 5th 40min, 6th 40min, 7th
35min) and some teachers require first hours for some classes in order
to teach more time consuming subjects (the subject might vary but the
necessity for the time slot doesn't). That necessarily doesn't that they
object to teach late hours too.
Also, it is easier to add only one restriction like the one I am
describing to drag e.g. the teaching hours of a teacher earlier in a day
than to add multiple not available restrictions at the late hours in
order to accomplish the same thing. Also, those late hour restrictions
might make the timetable too rigid and usually without serious reason.
There are also many other examples but are much more complex.
Generally I think that this is something that a lot of other timetable
organizers would want. Truthfully, it was the 2nd thing I noticed
missing after the not-so-easy lock/unlock of activities that you
currently solved.
--------------------------------------------------------------------------------
From Volker Dirr:
missing constraint:
CONSTRAINT_TEACHERS_MAX_DAYS_PER_WEEK
for code cleanup always use the same style:
some constraint c have
c->teacher_ID
others have
c->teacher_Index
--------------------------------------------------------------------------------
From Azu Boba:
I like the interface just the way it is now. Only three buttons and very
obvious of what they do. Checkboxes is not a good idea since at least
one should be selected at all time and this might create problems. You
also need to add three buttons too with this solution (lock, unlock,
toggle) so the interface will become much more confusing. The current
solution in my opinion is the way to go. The only change I propose is to
have fixed cell height and width so it would be easier to comprehend and
pinpoint what you see when switching between teachers.
As I said before, I asked for this feature mainly to quickly lock/unlock
specific days. With this new build things are much easier but I still
need to select every single teacher and unlock the specific day I want
to do changes. It would be much better if I could select one day and
unlock all the activities for this day. The problem here is that we have
a 3D table (teachers/days/hours). The best solution for this IMO is to
add a new view named e.g. "View (day for teachers)" (of course you keep
the "View (teachers)" too). This view will be similar to "View
(teachers)" but it will have all the days as selectable tabs on the top.
The 2D table it will display below the tabs would be the Teachers/Hours
view for the day selected. The buttons and functionality will be the
same as in the case of "View (teachers)". This way you will be able to
easily lock/unlock the whole day. The best part though is that with this
new View you will be able to better comprehend/modify the schedule in a
day by day base, so its not just a tool for locking/unlocking activities.
You might also want to consider adding an additional flag when locking
an activity. This flag might be called "Save data and timetable flag"
and would be set when an activity is locked automatically during the
"Save data+timetable as..." procedure. Why? Mainly, because when you
want to unlock e.g. a specific day in a "Save data+timetable as..."
saved timetable you do not want to unlock all the activities of the day;
you want unlocked only the ones that were locked by the "Save
data+timetable as..." process. There are activities that the schedule
creator manually locked them before FET generated the table (e.g. a
specific lesson needs to happen only on a specific day and time). By
selecting and unlocking a whole day as things are now you unlock these
activities too! This means that if the schedule creator doesn't pay
enough attention he might mistakenly create a schedule with activities
set at undesired hours. The solution I propose to this is to toggle
between locked/unlocked only the activities that have the "Save data and
timetable flag" set. To unlock the manually locked ones the user would
have to do it in a different/manual way (see the paragraph below about
the editable "Details" box) or even better be asked with a message box
if he wants to unlock the manually locked activities too.
I also mentioned that in order to remove a teacher from a specific day
(because he is ill or on a leave) I have to go to "View (teachers)" and
pinpoint all the activities assigned to the teacher for this day
(checking their IDs from the "Details" text box and then writing them
down in notepad). Then I close this view and go to the "Activities"
list, find the specific activities and uncheck "Active" for them. This
is a little annoying and a prone to errors procedure especially if there
are more than one teachers missing. What I thought as a solution for
this has to do with the "Details" text box on the "View (teachers)". It
would be great if it wasn't just a simple text box but an editable
interface for every changeable value. What I have in mind is to split
the "Details" into two parts; the upper part would include all the non
editable values while the lower part all the editable ones. Right now
for me, only the "Active" and "locked time" values are worth of being
editable, so simple check boxes would suffice but someone else might
want other values editable too (e.g. Total number of students, duration)
or new values worth being editable might be added in the future, so it's
a good thing to have.
Last but not least (and certainly the most difficult modification) it
would be great if you could drag and drop activities in the "View
(teachers)" and "View (day for teachers)" GUIs. Of course by doing so
you create conflicts and this will need handling. But I think all the
before mentioned changes are enough work for you now and I need to think
this a little more to come up with a viable solution.
I hope I gave you valuable feedback and not a headache! Thank you again
for your time and for this great software that really saved me since
this school year was the first time I was entrusted with the school's
schedule and I was way over my head.
--------------------------------------------------------------------------------
From Volker Dirr:
>> just do this:
>> open fet.
>> open view room||teacher||student timetable form.
>>
>> close fet main form.
>>
>> maybe bug:
>> the view table form(s) are still open. so fetmainform is not parent from
>> that.
--------------------------------------------------------------------------------
From "George Miliotis [Ionio]":
Mainly because the "results" directory should be
accessible, so I would expect it to be configurable (I'd like it in my
documents/fet/current-results)
--------------------------------------------------------------------------------
From Marco Barsotti:
The only thing that I would like to find in a future version of FET is the
ability 1) to find when a combination of constraints is impossible to
respect. 2) to recognize which constraints generate a bottleneck, where FET
stand by searching the little hole where to pass and go on, placing
activities.
--------------------------------------------------------------------------------
From Saad:
Manual improvements of the timetable - see forum link: http://lalescu.ro/liviu/fet/forum/YaBB.pl?num=1225143755/7#7
--------------------------------------------------------------------------------
From Volker Dirr:
Change remove redundant to deactivate redundant
--------------------------------------------------------------------------------
From alfaromeo:
But, again I came across the same FET behaviour:
After 4 munites, FET reaches : 321 out of 323 activities placed
It is a good partial result !!
unfortuanatlly, I didnot stop it, hopping FET can go further to reach 323 out of 323 activities placed
Sadly, after a while this number continualy decrease toward 319, 318, 316 , .... 301...
Now if I decide to stop this decreasing process, I will get a partial timetable with only 301 placed activities Embarrassed FET shows a list containing the most 301 difficult placed activities
Now:
1-Is it possible for FET to save and update the ever best timetable in a simulation session ?
For example, when it reached: 321 out of 323 activities placed, I can easily place those 2 remaining activties manualy by breaking some constraints
2- Where I can find Ids of those 2 remaining activties !?
Point 2 is available - see initial list of activities in timetable generate form.
--------------------------------------------------------------------------------
From Volker Dirr
i also get today a mail from a guy, that had trouble to find the correct
outputfiles today, because there are so many files in the directory.
just a maybe todo:
maybe write only the XXX_index file into the result directory. then make 3
subdirecories. one subdirectory with all html files, one with all xml
files and one with all csv files. so we don't need the export menue
anymore, because it is exported always by default and the directory is a
little bit more tidy.
--------------------------------------------------------------------------------
From Volker Dirr
>> we have:
>>
>> 1. category: 3-4 classes
>> 2. category: 5 courses
>> 3. category: 4 religions (always same time, so i didn't enter it)
>> 4. category: several working groups (after noon lesson, so i add them
>> manualy)
>>
>> know have a closer look:
>> 4 classes * 5 courses * 4 religion is already 80 subgroubs.
>> so if i also add working groups (lets say 5, but there are more!)
>> then we have total 400 subgroups.
>>
>> that is stupid, because i have only around 100 students in a year!
>>
>> i think in that case it is wise to enetr data not in groups, add
>> students
>> individual.
>>
>> that is like high school do it.
>>
>> - add a year.
>> - add groups (NOT with split year, but same names)
>> - add a group ALL STUDENTS.
>> - add subgroup with all students names into ALL STUDENTS.
>>
>> - now we need a table to every year:
>> - horizontal are the division names (must not be group names, but
>> can)
>> - vertical must be the student names
>> - every cell is a bool checkbox
>>
>> no the timetablemaker can check every single student. of yourse by
>> checking the studentsname must be added as subgroup into that group.
>
--------------------------------------------------------------------------------
From Maciej Deorowicz:
> I have idea for two features. First: possibility to disable contraint
> without removing it. Such 'Active' checkbox like on activities dialog.
--------------------------------------------------------------------------------
to save results in a format that can reload and modify later. - partially done
--------------------------------------------------------------------------------
Multiple processor - split multiple timetable generation on multiple processors
--------------------------------------------------------------------------------
From Hatim Ali:
> Dear all
> please can you add "A set teachers has same timetabe (day+hour)" to make 2
> teachers or more work in the same time (not same subject) and off in the
> same time, (all period , all gaps ) . thanks
----------------------------------------------------------------------------------
From Volker Dirr
>> how about displaying "minimum home
>> room hours" and maybe also "maximum special room hours" in the teacher
>> statistics? because a timetable maker (maybe) need that for his
>> planning.
----------------------------------------------------------------------------------
From Abdul Hadi Kamel Abdullah
Why did you remove the "Teachers-subjecttags max hours continously"
constraint in the new version of FET. It's very important to us.
Without that , the results I got was not so conducive, where a teacher has
to give theoretical lectures (the ones with subject_tag = 'S' for more than
two hours.
The existing two constraints that for teachers which are 'Teachers no more
than X hours continously' and 'Teachers no more than X hours daily' cannot
prevent a teacher to have more than certain number of hours for a
particular subject_tag.
For example:
lets say,
It's better to for a teacher have a timetable on monday as the following :
CASE A
Time : 8am -10 am subject: CSC134 subject_tag : S (means
theoretical-lecture session)
Time : 10am -12pm subject: CSC203 subject_tag : M (means lab
session)
Time : 2 pm - 4 pm subject: ITT300 subject_tag : S (means
theoretical-lecture session)
than the following:
CASE B
Time : 8am -10 am subject: CSC134 subject_tag : S (means
theoretical-lecture session)
Time : 10 am - 12 pm subject: ITT300 subject_tag : S (means
theoretical-lecture session)
Time : 2pm -4pm subject: CSC203 subject_tag : M (means lab session)
where the teacher in CASE B has to a give theoretical-lectures (in other
words give a continous speech) for 4 hours continously, which most of
teachers don't like.
----------------------------------------------------------------------------------
From Danail:
You see, this division in subgroups is very complicated - to understand
and to add by hand. And at the end you came with a lot of subgroups that
have only formal sense, for the algorithm, but are visible in dialogs,
in the final chart and everywhere. It should not be like this. One will
have to divide years in wizard-like dialog, with questions:
1. How many classes you have for this year?
2. Define courses for which students from this year study together
3. Which of these curses start at same time. Group them by this criteria
4. Define from which classes came students for these courses. Whole
class is caming, or only part of it? Where other part goes - have rest,
or has another activity, and if yes - which one?
5. Define teacher that is teaching in every course.
This is a draft, but some wizard like this will save *a lot of"
mistakes, and will make program much more user friendly. Then you can
add internal groups, but not show them to users, or at least show if
they set some option. Show them only groups and subgroups that they need
to put in activities, and show these same in final html output.
This is my opinion of user in trouble :-)
Second set:
1.Ability to select more than one constraint and delete it, or set its
weight
2.Ability to disable all informative and warning messages, or to display
them in status bar or in another log window.
3.Option to remember last focused control in dialogs - very useful if
you want by keyboard to open many constraints and change their weight
4.Constraint "longest gap is n hours"
5.way to save last generated timetable and reopen it again (for example
for printing it with different html level, or for viewing it.
6.Ability to show free teachers for every position in students and
teachers timetable - very useful if you want to find somebody to replace you
----------------------------------------------------------------------------------
From my80s:
> i checked and i read again my emails,
> so i saw that again,
> i meant
> release for src,deb,rpm cause are the major used from most people,
>
> the target is to put this work in automatic installers like apt , yum,
> yast etc,
> i hope these my one opinions are for better eye-candy,
> and usefull for othrs to enjoin the team
> also in program we have
> a matrix with days x hours = n x n
> if this is allocated from some activity it should get error in
> precomputing in real time
> if we put another activity 100% in same cell
>
> that would take less time to find mistakes
----
export as odt (OpenOffice.org) table (spreadsheet)
----------------------------------------------------------------------------------
From Danail Traichev:
> If you make it how it is now with years, groups and subgroups, it will not
> be complicated for entering and even will not need change in most
> constraint dialogs. What I mean - define "groups of subjects", and allow
> "group of subjects" name to be used in every place where subject can be
> used. Much like it is now with student sets - both student years, groups
> and subgroups are placed in one control and added from one place.
>
> But of course, I don't know how this will fit with FET internals. And FET
> is fine even without this. It simple will make entering constraints a bit
> easy. The other posibility is if every activity constraint dialog has a
> posibility to select multiple activities, and to filter them by "subject
> group", or at least by "selected subjects". That will make entering
> constraints like in my case easy.
----------------------------------------------------------------------------------
From Volker Dirr (15 October 2007):
maybe it's possible to do XXX::setLayoutDirection(XXX::LeftToRight) only to the filename or language in menu.
(bracket bug in Arabic translation)
----------------------------------------------------------------------------------
From Volker Dirr (16 September 2007):
> i saw at les timetable, that he call hour==period.
> also at wikipedia it´s called period. (compare
> http://en.wikipedia.org/wiki/School_timetables chapter terminilogy)
>
> i am not sure about that. in german we have the also the word "peridode",
> but we don´t use it for timetables. we say hour.
> but maybe that´s just colloquial language. this colloquial language is ok,
> because the schools have 1 schoolhour (45 minutes) or 2 schoolhours (90
> minutes).
>
> but maybe it´s better to use also the word periode, because by this
> schools with 60 minutes activities (2 periods) and 90 minutes activities
> (3 periods) don´t get trouble with the word hour (because it entrap /
> ensnare /
> inveigle so write 1 hour and 1,5 hour. but "hour" is an integer values!
>
> but on the other hand people (maybe) will not understand immediately th
> word periode.
>
> so maybe we should write "period (hour)".
----------------------------------------------------------------------------------
From Volker Dirr (28 August 2007):
1. add a constraint. then remoce the constarint. now the constraintlist is
empty, but the right windows ("current constarints") still displays the
infoemation about the already deleted constraint.
2. maybe change "current constaint" into "description", "constraint
information", "description of the selected constraint", ... (very very low
priority, maybe one day)
----------------------------------------------------------------------------------
From Volker Dirr, regarding translation:
1. maybe it´s better to be more exact. example: phrases "min hour" better "min hour per day"
2. sometimes it is "Weight percentage (necessary: 100%)" sometimes it is "Weight percentage (needed: 100%)"
3. sometimes the english version isn´t always the same.
sometimes you wrote "add current activity"
sometimes you wrote "add activity"
sometimes you wrote "add current"
sometimes you wrote "add"
i think it should always be the same.
also sentence like: "You have to know that a this constaint ..."
should only be: "This contraint ..."
4. also in the QObject are some "strange" transations.
example:
". This [...]" mabye better "This [...]"
", S:" i think ", " and ":" should not be enterd into the QObject::tr
we have also change phrases like ",
S:%1".
5. maybe "start" should be "generate" in the generateform.
6. more TODO for english phrases:
- if you wrote one or more sentences, please always end with ., ! or ?.
- the head of a dialoge always start with "FET - ..." but sometimes you
wrote "... dialoge".
- sometimes you wrote "students subgroups", i think you just need to write
"subgroups", because teachers have no subgroups.
- all "add", "modify", and "remove", "close" phrases should only contain
this word. no more words like "current" or "group". maybe wrote them with
QObject, because nearly every dialoge have this 4 phrases.
7. phrases like that are not very good:
"NEW: Divide year automatically by selecting categories"
i think we should remove NEW:
and some phrases starts with a new line.
sometimes you write a sentences, then do a new line and then (in the new
line) close the sentence with "."
8. one time you wrote "abort". all other times you wrote "cancel".
9. i think we should think and write a small definition note for english
phrases.
it looks like in a few times this terms are not always used same/correct:
hour
duration
periode
lesson
activity
when we write a small definition note, then we have to care about this:
words must also be correct for schools that don´t use "hours" as one time
hour.
in germany one schoolhour is 45 minutes. but that´s no problem. we use the
same words for that.
but i remember a letter in the maillinglist. that guy wrote that he has 60
minutes hours and 90 minutes hours. so he defined 30 minutes "hours" and
set duration == 2 or duration == 3 to the activities.
so the definiton and use of hour, duration, periode and lesson must also
match to this.
please let us friste a small definistion not for this terms:
hour, duration, periode, lesson, activity
this will help if we add new or modify old english phrases and it will
also help translaters.
10. maybe TODO: no brackets in "view (students)", "view (teachers)", and "view
(rooms)".
11. and it looks like we shouldn´t use the word "lesson".
in the most phases it´s better to replace "lessons" by "subactivities"
12. maybe:
"invalid activity" is better "no activity selected"
13. very low priority maybe:
in mainform->data is this order:
1) instutionname and comment
2) days and hours
3) a) teachers
b) subjects and subject tag
c) years/groups/subgroups
4) ...
maybe change order 3 a) with 3 b)
so first subject and sunject tag.
then teachers.
resason: every activity have a subject. so subject is more importent,
because not every activity has a techer or subgroup.
14. that is also why i already asked you to change english translations,
because some phrases can be shorten.
for example all sentences with "you", "current" or "that mean" can be
shorten (in english and german).
example:
"If you insert current group to current year, that means that some years
share the same group (overlap)"
shorten version:
"Some years share this group if it´s inserted."
15. and a maye other thing. example:
view in fet-mainform.
there is "Time contraints (techers)".
and in this folder is for example "Teachers max gaps per Week".
i recommend to write just "Max gaps per Week".
Reason:
- it´s shorter
- it´s clear that it "teachers" contraint, because it´s in that folder
the english version looks fine, because you are always possible to write
first "teachers". (except on time view (Min days between activities. You
are not able to write Activities first.)
In german translation it is much more difficult the write "teacher" always
first. even including the word teacher is a much longer phrases than in
english. it will be much easyer and nice, if we don´t write teacher here.
maybe the same porblem in other languages.
----------------------------------------------------------------------------------
From Volker Dirr:
how about this:
if you go to data->activities
the you have 4 different filters where you can choose something.
for example i choose filter subject "DE". now can see all "DE" activities
at the left side. so it is ok like it is, or i see a missing one. if i see
a missing one, then of course i want to add a subject "DE". so this
subject should be default if i press add.
so the function should have four parameters (the four filters),
defaultsetting in the data->activities->add screen should have be the
filters of data->activities.
For multiple generation:
> and maybe add a checkbox "shutdown after job is done". some software also
> has this feature, like "noro burning rom".
> so you "just" need to do a "shutdown -h now" (i think that was the linux
> command, but i will check tomorrow)
long time goals:
code cover planning (open)
code lesson planning (open)
WISHLIST:
1--------------------------------------------------------
From bmlahcen13:
for that i advice to start thinking from now to
- enhance the UI
- use Database
- add web client
- use UML models
and also for the structure, use "int id", this will
enhance both runtime and will reduce the storage,
because in the FET xml files, for example to store and
activity, you have to write again the name of the
subject, teacher, students and also the day and time
slot in a solution. the same happens in time and space
constraints, these 3 entities represent a big
percentage of the size of the file, so you use int IDs
and not names you will certainly gain a lot of space
and also a better execution time, i know, as you said,
that the internal structure uses int id but for
loading and saving xml files and searching, the usage
of strings delays them.
Liviu: maybe it would be better to compress the input file
2----------several users----------------------------------
- Improve user interface - add help and wizard.
3---------------------------------------------------------
From Michael Towers:
"
** What about a rewrite of the front end in a scripting language - e.g. Python? It might speed
development and help debugging. It could also make maintenance of the code easier.
** Is there some way of doing "interactive" timetable development? The human would make
suggestions, or place some items, run the program, maybe move a few things around, run the
program again ... (Liviu: it would be very simple, the algorithm supports that. Only the
interface has to be updated)
** A clear and clean interface to your evolutionary engine as an entity separate from the
input/output might be useful.
"
"How compatible my idea of manual intervention is with the genetic algorithm is not clear to me.
Actually a purely manual approach would probably disallow clashes completely and offer all
sorts of visual signals to show where activities could or could not be scheduled,
which activities could be scheduled in a particular period, etc. This is something completely
different to what you have been working on. Maybe there is some middle way, but I feel some
of this stuff would actually be necessary (I do not yet believe that it is practicable to
generate timetables purely automatically - the requirements and constraints are too diverse).
It seems to me, it should be possible (but of course only after a lot of work!) to have
a beautiful manual timetable editor (which can also print the various timetables, and
perhaps save the data sets and results in a database) with an interface to an automatic
timetable scheduler which can be used to speed up the work."
4---------------------------------------------------------
From TheStar:
A constraint to think about is that some activities, and I suspect 'normal school management'
talks about teachers as in "One teacher per x students".
In the HSC year here, it's about one teacher per 26 students (or something like that).
At a recent excursion, it was one teacher per 10 students. Hope that helps :)
..............................
> Of course, you can add each student. I could have implemented this solution.
> But I doubt that the user has such patience :-)
You could always autogenerate the students...
"Quick-Build Students"
�[Properties]
�[Number]
�(Build)
And it will generate students with name: AutoGen-11231, ID: 11231, and the like.
The user could then 'select' groups of these students... and... (Just an idea)
5---------------------------------------------------------
From Abdul Hadi Kamel:
Do you have a plan in mind to upgrade the existing fet from standalone
application to a client-server/web-based database oriented type of
application in the future. This is because the current fet is quite limited
especially in terms of timetable data which cannot be keyed-in /view s
amongs several users at the same time. This will cause hardship because the
people involved in making the class timetable in universities normally
consist of several key persons from different departments. Using standalone
application by several persons sometimes make data consolidation process
among departments become difficult and error-prone
I think it will be better if the FET can support a single timetable data
repository (using client-server model) in a database that can be input/view
by several users simultaneously.
6----------------------------------------------------------
From Patrick Fox:
I was wondering if a discreet Fet graphic in the background of the
window program, would be better than having nothing when you start the
software ?
7---------------------------------------------------------
From Volker Dirr:
If you think that other people don�t like this default constaint how about
making a menu "default settings". there you can add "langurage" and my
defalut wish. maybe there are other parameters, that can be set in this
settings. i guess that there a people who want set duration to 2 or 4 by
default.
Add the parameter "always maximaize window" in the "settings"
it would be nice to have something like "time constraints (subjects) - max n hours per day the same subject".
so compulsory min n days between activities is nearly similar to compulsory max n hours per day the same subject (except subjects with duration 2 and more)
but non-compulsory min n days between activities is somhing very diffrent then non-compulsory max n hours per day the same subject.
i look forwad to a option like "non-compulsory max n hours per day the same subject".
because it isn�t not to bad if it happen (having a lesson twice a day" only a few times.
or do something like "time constraints (activities) - max n activities with same subject per day"
or "time constraints (activities) - max n (grouped) activities with same subject per day". (but he have to differ between activities and subactivities. is�t nonsens to subactivities, it has just sense with activities.)
10---------------------------------------------------------
From kdsayang
I would like to see FET generate the time table in
1. certain amount of time for each time table
2. with some setting about the remaining weight soft conflicts
3. generate multiple variants
For example
(A) rules are
(i) the user select to generate 10 minutes time limit for each time table
(ii) user set 0 for remaining weight soft conflicts
(iii) the user select 10 variants
the outcome
(B)
(i) the time table finished and it has generate 10 time table that concur with 0 remaining soft conflicts for each time table
(ii) the time table finish and it only manage to get 5 variants from 0 remaining weight soft conflicts
(iii) the time table finish BUT it don't manage to generate any variants with 0 remaining weight soft conflicts
refer to (B)(iii)
the user can change
(i) longer run time to generate time table (with crossing finger) hehe... Others setting is not change
(ii) longer run time to generate time table with increasing value for remaining soft conflicts (0.5, 1.0, 1.5 etc)
As u can see in timetable --> generate multiple variants, features in (A)(i) and (A)(iii) are already there. I hope that u
can figure it out on how to implement the feature in (A)(ii). It would be marvelous.
11---------------------------------------------------------
From kdsayang
If a user want to add "an activity have a set of preferred rooms", the user will need to click one
by one to add right???... So, I would like to suggest that we group them like when user want to add
an "activity". There (activity), we can select by years, groups and subgroup for students. Instead of
clicking all the student groups in years 1, user can just click year 1 to include them all into students....
For example for rooms (room group then room subgroup)
HALL
Hall A
Hall B
Hall C
TUTORIAL
A-A1
A-A2
B-A1
COMPUTER LAB
Lab 1
Lab 2
Lab 3
So when user want to add "an activity have a set of preferred rooms" for all the tutorial room, instead
of clicking 20 tutorial room one by one, user just click the group that is Tutorial. Easy right???
12---------------------------------------------------------
From kdsayang
What I meant is in Data --> Time Constraints --> Teacher Time Constraints --> A Teachers not available time,
1. If u double clicked Afida,
2. It will show Afida not available time right.
3. Then If u want to change Sambilan not available time by choosing Teacher drop down menu, nothing happen. In fact, It still shows Afida not available time.
4. So, if u want to change Sambilan not available time, u have to clicked Cancel button first,
5. then double clicked Sambilan.
6. Now u can see that Sambilan not available time is updated.
My suggestion is that It will be better If FET can update to Sambilan from Afida in Step no 3.
TQ
13---------------------------------------------------------
From kdsayang
Hi,
I have some other suggestion.
1. It will be GREAT if FET can be turn to tree structure. We can show/hide the structure
2. In the tree structure, we can use the copy, cut and paste to edit the subject, activities, etc in the tree structure
example of tree structure can be seen in attachment
Thanks
14---------------------------------------------------------
From kdsayang
If I want to change many teacher not available time, I need to add one by one although the teacher not available time is the SAME.
So, I suggest that u can add A set of teacher not available time. Same as A rooms not available time feature.
15---------------------------------------------------------
From kdsayang
On current version, there is no group for subject and teacher. It is quite annoying if u have to look for certain subject X and teacher Y in that list. When the list grow bigger (let say 100), it's kinda hard because u have to find that lecture and subject in that 100 lists. Although the sorting is a good way to find the subject and teacher, IMHO maybe we can make groups in that teacher and subject section
For example I wanna find teacher X and subject X. Teacher X is a teacher that teach Diploma IT student. So, I just search that teacher in Diploma IT group rather than searching 100 other list. Same as subject X.
This feature is needed if my/our/your university/school is a big one where teacher and subject are hundreds...
16---------------------------------------------------------
From Bobby Wise
Hi Liviu,
The only improvement that I can think of right now is the printing function.
Where I've demonstrated the software all the users ask why they have to exit out of FET and print through the IE. All would prefer to print directly from FET.
So that might be something you may want to look at.
Best regards
Bobby
17---------------------------------------------------------
From daviodan
In preferred time slots, preferred starting times, break or not available, clicking
on a day or hour (column or row head) will set/reset/toggle all hours (or days) in this slot
Or: make a combo box: column and another combo box: row. Add button "Change", so we can change
a specific row or column by this procedure. - comment Liviu: the dialog would become very complicated.
18---------------------------------------------------------
From George Miliotis (Ionio, Greece)
PS. Feedback: Fill the empty FET window with buttons for the most common
tasks. You could also add a search editbox and a few checkboxes (e.g.
find activity/rule live by typing in an editbox, matching all fields)
19---------------------------------------------------------
From Niels (gesamtschule)
yesterday evening we run in to trouble, because we had defined some constraint which makes the problem unsolvable.
To analyze such a situation it would be extremely helpful, if it become possible to filter all constraints.
For example give me all constraints for activity x. This means all which was directly defined to the activity
and all which defined for the subject and the teacher. Is it possible to realize this quickly? Otherwise
I will start to write an own solution based on the xml-file.
Niels
20---------------------------------------------------------
From Zsolt Udvari
We've created a timetable but the rooms aren't. So we do it by hand.
How can I change in FET the rooms simpiler in a generated timetable?
The times are locked.
It would be the most simplier when I open e.g. the teachers timetable,
click on a activities and I can add room to this.
----------
Liviu wrote:
> I'm sorry, but you'll have to add manually constraints activity preferred
> room
> for each of the activities.
>
> I am not sure I understood correctly the problem, if not, please excuse me
> and
> explain more detailed.
----------
Yes, imho you understand my problem. I hoped that there is a simplier
solution. So, maybe in the next releases would be nice: when a
timetable is generated, user can changes/sets the rooms (only the
activities without rooms of course) from the timetable (Timetable ->
Show teachers/students): you select an activite, you click a button
with "Assign room" and choose a room.
One more: plus constraint: maximalize the activities in same time -
because of number of rooms.
21---------------------------------------------------------
From Naji
Hopefully, FET's team can enhanced it to be able to export the xml data to database, that will facilitates the
output of the data and enables programmers to engage it with their programs.
22---------------------------------------------------------
From Massimo Mancini
This is a request for a new feature...
For Teachers and Subjects I like to use a brief description (BD), a code, and I optionally convert it to corresponding long description (LD) in the generated timetables (I refer to my current timetable procedures). So I need to define two new fields. Example:
Theacher: MANC, MANCINI
Subjects: MAT, MATEMATICA
I think that this can be achieved without any change to current interface, simply using the format above. Of course I want use the BD only in defining activities and when I have to specify subject and Teacher.
I wish to output the breaf (only BD) or complete (LD) timetables Wink
22---------------------------------------------------------
From jaspal
> INSTRUCTION FOR ALLOTMENT OF SUBSITUTION/ ARANGEMENT PERIODS
>
>
>
> On a particular day, faculty can be on leave, or may be busy with some
> other work hence unable to take the assigned classes. Thus, the classes
> taken by those faculty members are to be assigned to some other faculty
> members.
>
>
>
> Facility of keeping track of back log periods due to absence or
> unavailability are to be recorded year and group wise in the software.
> Also extra periods taken by the faculty has to be recorded year and group
> wise.
>
>
>
> Constraint
>
> 1.. While making arrangement care should be taken that any Faculty should
> not have more than 3 continuous periods
> 2.. Exclusion list of Faculty members for arrangement period to be
> taken into account.
> 3.. Regular periods + arrangement periods should not exceed 6. (on
> Saturday 5)
>
>
>
>
> Criteria to be followed while alloting arrangement periods :
>
>
>
> 1.. Faculty having Back log periods in that particular year and group and
> is available for taking the arrangement period.
> 2.. Preferred subject faculty members eg. Teachers taking Arts, ,
> Environmental Studies,Community Service
> 3.. Faculty teaching in that particular year and group and is available
> for taking the arrangement period.
> 4.. If Computer lab, Language lab, Jr. Science Lab, Library if
> free,arrangements can be given if the concerned faculty of that particular
> subject is free. For eg. while alloting computer lab, the computer faculty
> should be alloted.
> 5.. Faculty having low load per week.
>
>
23---------------------------------------------------------
From Bingen
For the internal organization of my school, it's convenient to have a general timetable for each
group, A and B, and Untis gives it. But as you observed, the footnote legend style it's not
probably the best, as it's a little bit difficult to understand. I think in FET a good solution
could be to be able to define a group of activities for a group (for example A, or even the whole
year A and B), and then subdivide this group of activities in many subactivities, each of them
with its own teacher and classroom (I have read the term "subactivity" in the manual, but I
can't find a definition of it, nor find it in FET menus). So a group would be attending many
activities at a time, which is not possible right now in FET. Maybe if it represents a structural
problem FET could define internally subgroups, but being transparent for the user. This activity
group should have a user defined name to identify (for example "Optative 1"). And then inside,
each subactivity would have the real subject ("French language", "Arts", etc.). In this way the
user would avoid to define such a great number of subgoups, and in the teacher's timetable
everything would appear right and clear, with no reference to the activity group, just to his own
subactivity, and with information of room besides of the group (opposed to the pseudoactivity
solution to book the room).
In the group timetable, the common activities would appear as always, and the others would appear
with the activity group name. Then parallel timetables with blanks in the common activities and
one of the subactivities for the rest could be printed . So we would need as much timetables as
the maximum number of subactivities of the largest activity group. Maybe the subactivities could
be diplayed in couples to avoid many timetables, as it happens now with group timetables and
"same day+hour" activities.
These parallel timetables could be hanged up on the classroom board, and, of course, each pupil
should know which of the subactivities has to attend. I think this display should be clearer than
the footnote legend style. I don't know if I have explained it clear enough, but if not I could
send a spreadsheet with an example.
Also, with this solution, if no activity group are defined all works as before, so we would avoid
the problem commented by Liviu of people not needing it.
24---------------------------------------------------------
From Zsolt Udvari:
command line version which needs no X server
25---------------------------------------------------------
From Massimo Mancini:
SUGGESTION BY: Massimo Mancini
WHERE: add activity form
WHAT: a check box to lock the total duration of activity
WHY: to introduce an automatic check and alert on the sum of durations of
single subactivities (currently the total duration reflect always the sum,
so if you alter the single duration, FET recompute the total, this can be
what you want or maybe not)
WHEN: all new future are always ASAP :-D (the programmer says...)
FURTHER DEVELOPMENTS: a templates system for automatic generation of activity based
on year and subjects expected for a class of that year (normal italian
situation, abroad I don't know ;-)
26---------------------------------------------------------
From Bingen:
- In my school the timetable is divided in morning (from 8:00 to 14:30h) and afternoon (15:00 to 17:00h). In the morning there's a break from 11:00 to 11:30h. I have defined this break as an hour of the timetable, but not allowing activities for any set of students in this slot. The reason is to plan the surveillance of the teachers in this slot. There must be always 2 teachers looking after the pupils during this period, so I define activities without students. The problem is that if a teacher does not have surveillance at break time, it should not count as a gap. If I define this slot as break in "Misc time constraints" then I can not define the surveillance activities.
- The lunch break is therefore from 14:30 to 15:00 (I have not defined it as a slot of the timetable, because there are no pupils in the school, they are at home having dinner). As it's a short time, often is convenient for many teachers to avoid having class from 13:30 to 14:30 slot and from 15:00 to 16:00 slot in the same day. Maybe something like a constraint of incompatible slots for some/all teachers would do the trick (and could apply to other situations).
- We try that all the teachers work maximum 2 afternoons per week. This has been easy to define with "All teachers work in an hourly interval max days per week". But we try also that teachers who work two days per week in the afternoon to have a free morning. I don't know how to define this situation.
I have seen some custom versions of FET considering the morning / afternoon division. I have to read them carefully, but I think they are not exactly my situation. For example, we don't want the condition "Teachers can only have lesson either in morning or afternoon. never both"...
27---------------------------------------------------------
From Silvia:
Would it be possible to add a time constraint for teachers saying preferred times? I don't mean available times. Sometimes a teacher says: I'd like not to have classes 1st one in the morning, or I'd like not to have classes more than one afternoon. But sometimes a teacher says: I'd prefer to start at first time in the morning. Is that possible?
28---------------------------------------------------------
From T. Renganathan:
2) You
can give a provision for the user to perform his own sorting of years,
teachers, etc., for e.g., using dragging and dropping.
3) You
can include a provision for multiple selection of subjects, teachers,
activities, etc., for example using Ctrl or Shift key. This will especially be useful for deleting
multiple entries.
29---------------------------------------------------------
From Volker Dirr:
Volker:
>> if i am in FET->Data->Subjects
>> i can't see at the right side all constraints.
>>
>> in my latest samplefiles for example the "a set of subactivities has a
>> set
>> of preferd time slots" is missing to that subject.
>>
>> also in FET->Data->Activity Tags are not all constraints displayed.
>
Liviu:
> Yes, I know, because these are related to activities. I chose not to show
> them.
>
>
Volker:
please add to TODO. i think this is a nice feature we should not forgot.
Liviu:
I thought about your proposal. I think it cannot be done and I know the reasons why I didn't do that:
a constraint activities preferred starting times has subject "" or specified. If it is "", then it is for
all subjects. So, I should write all constraints of this type with subject "" for each subject. But this
is not correct. A constraint might have a teacher which don't have this subject.
30---------------------------------------------------------
From Volker Dirr:
>> by the way we should add a new tests before generating a timetable:
>> if 2 activities are grouped, then turn of min n day constraint of that
>> activities.
>> if 2 activities are consecutive, turn of min n day.
>> if 2 activitives have same starting time, turn of min n day.
>>
>> or the opposit, bedending on what has a higher weight.
>>
>> maybe instead of turning of maybe just warn the user that this two
>> constraints are not acceptable at the same time and tell him he should
>> care about that problem first of all (by removing or reducing weight to
>> 0%).
31---------------------------------------------------------
Teachers and students min hours daily must be configurable to allow or not empty days
(currently, teachers allow and students don't allow, for performance reasons).
32---------------------------------------------------------
From Les W. Johnstone (Sacred Heart College)
> Hi Liviu,
>
> I'm into the thick of it again scheduling...
> now working on two different schools...
>
> Sacred Heart College is not a problem since they use a five day blocked
> schedule. Saint John's College though is a slightly different problem...
>
> They have a five day AB schedule...
>
> which means I entered two activity groups... one for week one and one for
> week two and used different activity tags... w1 and w2 to keep things
> separate, with specific rules of placement of w1 in Week1 and w2 in week
> 2...
>
> However, your spacing feature doesn't work ... not on more than five
> days.... not sure it would be possible to extend your logic or not... (what
> do you think?)
>
> The other thing I've noticed is a bit of an annoyance concerning
> constraints... when you are trying to get a schedule to work you push in
> constraints however, on slight modification of activities (concerning
> resources etc.) sometimes, what was once soluble becomes insoluble.
>
> Usually this means you have to relax constraints in order to get the
> schedule soluble... some (most) can be set to a 0% weight which means they
> are ineffective.. then later you can turn them on again... however, some
> rules are only acceptable at 100%... which means you need to drop them from
> the constraint set...
>
> but the constraint may be important and be forgotten to reimplement...
> could you set an active/inactive flag for constraints like you have for
> activities... so it can later be reimplemented?
>
33---------------------------------------------------------
From alfaromeo:
Liviu:
There is no easy way to remove a component.
alfaromeo:
well
to re-use last year .fet file,
what about
-removing all activities at once, so Data keeps only subjects, teachers and groups ?
or
- removing all teachers from all activities (because teachers dont teach the same groups every year)
or
- removing all groups from all activities
Liviu:
Liviu Lalescu wrote on Today at 12:10pm:
. I just looked in the sources and it seems that in statistics I only count active activities. Please verify that, though.
alfaromeo:
yes !
and I spend nealy ONE hour counting periods for teacher Eng1!!
in Statistics, teacher Eng1 has only 20 hours
in Data ---> activities, I count 21 hours :-)) for him
finaly, I realised that I has deactivted one hour component by mistake
so, is it possible to add this line into activity window:
Quote:
Activity:
Teacher=fr4
Subject=fr
Students=2Lg -1
Id=1
Activity group id=1
Duration=1
Total duration=5
Total active: XX
Active: yes
Total number of students=0
-----------completion:
alfaromeo:
- removing all groups from all activities
sorry, removing groups doesnot make sense, because, activities should keep group's information
Groups have the same set of activities every year
So the most important is:
-removing all activities at once, so Data keeps only subjects, teachers and groups ?
but this is not so good, as we will lost time and space constraints related to those activities
So, the best of the best is:
- removing all teachers from all activities (because teachers dont teach the same groups every year)
so we can re-assign new teachers to groups
34---------------------------------------------------------
From Volker Dirr:
Volker:
i thought one more about the "min n hours per day" problem again, because we had a similar discuss at my school.
i think there is "just" a "min days per week for teacherS" constraint needed. doesn't solve that the problem in a good way?
so if you want a min n hours == 1 constraint, then you just add a "min n days per week" constraint.
if you want a min n hours ==2 constraint with allowed free days, then you add a "min n hours per day == 2" constraint.
if you want a min n hours == 2 constraint without free days, then you add a "min n hours per day ==2" and a "min n days per week == daysPerWeek" constraint.
hmm... i am currently just not sure how difficult to code that constraint.
Liviu:
It is easy to code. Just make the teacher(s) min hours daily non-intelligent. But I don't want to add alternative to min hours daily to have intelligent or non-intelligent, because people might obtain impossible timetables. I can tell you what to modify to make this. You'll have to compile your own FET.
I refer to latest snapshot 5.11.0:
In generate.cpp, lines: 7050, 7079, 7113, 7142. Make the tests already true (like add 1|| oldcondition).
This way, you can add min 1 hours daily for necessary teachers. You also need to modify the dialog of min n days, to accept 1 hour (because it only accepts >=2 values). Also, you need to modify in generate_pre.cpp, because FET complains if below 2 min hours.
Volker:
no, i think you didn't understood my idea 100%, because with my variant it is also possible that a teacher still have a definied number of free days, while your solution mean a teacher will never have a free day.
(the number of free days is just 0 if you do a "min n day == daysPerWeek" constraint. but of course it should be also possible to use lower values.
so currently things like that are only possible by workarounds with min hours per day or min n days bewteen activities.
with a min n days per week you don't need that workarounds anymore.
35---------------------------------------------------------
From Massimo Mancini:
> Consider this:
> 1. I inspect the activities of a teacher (via filter on teacher)
> 2. I see the lack of an activity (or I delete one or more filtered
> activities because I want redefine them)
> 3. I push the add buttom... why not precompile the form for activities
> definition with the name of filtered teacher? and why the subjects aren't
> only those that teacher teach?
>
> A more general question... why not associate in advance the teacher with
> his students and with the subject hi teach? In this way I could obtain some
> type of automatic filter.
> If I add an activities of mines I select MANC but MANC teach MAT in GEO_1B,
> GEO_2B, GEO_3B and IGE_1A. Fet should be aware of this.
36---------------------------------------------------------
From Massimo Mancini:
> When I review gen timetb with view (teacher) menu option I can lock/unlock
> the placed activities and this is ok. But why I cannot do the same for
> empty cell? The meaning of locking an empty cell should be to add/modify a
> Teacher not avalaible constraint or something that have the
> same effect... so a new gen leave those positions untouched.
>
> A I said I would to lock/unlock some students or some teacher and
> recalculate the rest.
37---------------------------------------------------------
From Frans Cilliers:
About campuses: What I thought is the following. Currently you have min
gaps between buildings and maximum building changes per day. If this can
also be done for campuses, for example minimum gaps between campuses for
teachers. (An extra constraint but it will probably be to difficult as
you mentioned)
38---------------------------------------------------------
From Kania:
Hi,
Maybe You remember my post from April (many teachers – many groups). Since
than in our team we’ve been trying to adapt our internal solutions to use
FET (it is really Your great success).
We tried to use FET to solve timetable for a pretty big plan (see
attachment with an input file) and by the way we had to solve a few
problems and got some experiences as an end-users. Maybe it would be
interesting also for You.
We are probably the first team where the max-number-of-activities message
appeared (on the FET page I found the information that until now nobody
suggested a larger value than 5000). I decided to use FET on the maximum
scale but to start algorithm I had to remove activities from two whole
faculties and replace it with constraints like Teacher not available time
and Room not available time or leave activities for manual handling. So we
have the first big supplication - if it is possible – please increase the
max number of activities from 5000 to 7500 or even 10 000.
The second problem we had with the calendar. We organize activities in 16
weekends in every semester so we have 32 days in a “week”. The only
solution we found was to exclude 4 dates from the calendar, put a part of
all activities into those 4 dates manually and reduce the number of
activities and days before putting the rest in FET. So we have the second
supplication – please, enhance the calendar up to 32 days.
I didn’t want to ask You to do it earlier as I wasn’t sure I’d be able to
prepare data and didn’t know if the FET would be strong enough for such a
big plan.
The third problem was to export data from the program we use for planning
(ACCESS database) to FET and than import data back. I pre-assumed I must
enter data to the FET automatically as the number of activities and
constrains is too high to handle them manually. Also a plan generated by
FET had to be automatically imported to our database. I used FET
procedures to import Teachers, Students and Rooms. I also tried to use
FET import procedure for activities too but I had a problem with IDs. FET
generate its own ids but I needed to use my own ones to keep link between
data in the database with those in the FET so finally I decided to
generate input file instead. Fortunately FET doesn’t change ids and
generate perfect XML file (thank You very much) with generated plan and
thanks to known ids I could import data from FET to our database with no
problem. I solved the problem but I think that adding the tag like
<Note></Note> in the activity description for free use is possible and
would be useful.
The next point. Due to number of constraints we have in our database I
used similar procedure to generate a part of FET input file with teacher
time constraints and room time constraints. Hence I have a question.
Would it be possible to include file path into FET input file to keep
data in a couple of separate files as working with 100 000 lines file is
not fun?
We prepared the whole procedure for timetabling with FET. First we
planned (in the Access program) activities for VIPs manually. To use FET
we also had to put into the timetable all activities where students from
one group could choose one activity from a several ones (languages and
some lectures) at the same time. That is why in the input files are so
many “permanently locked” activities and activities with many groups and
only 10 students to avoid conflicts with room capability (I used
<Activity_Tag>UL to mark them). Together with these activities we locked
a room by preferred_room constraint. After that I included prepared data
to the FET input file and thanks God, after all we started to generate
the plan. Fortunately FET is smart enough to find mistakes in locked
activities (room and time conflicts) so than we removed conflicts for
already planned activities.
By the way – during reading the input file I noticed the error that rises
when the number between tags:
<Number_of_Not_Available_Times>NUMBER</Number_of_Not_Available_Times>
was not exactly the same as the number of constraints in the file. Of
course it is not a bug. It never happens if user use FET to input
constraints. But it forced me to count constraints during generating data
and shows that program is rather “sensitive”.
The first hint for other users is to start with minimum number of
constraints and if FET would generate the plan than thinking about adding
the next ones. In TODO file I found the suggestion of “possibility to
disable constraint without removing it. Such 'Active' checkbox like on
activities dialog”. I admit – it would be nice. Moreover finding a good
plan is just like using 10 knobs increasing one constraint and decreasing
the other so fast access to the constraints window is crucial. I suggest
to put “Time constraints” and “Room constraints” buttons also in the main
menu (or creating any other shortcuts) as these constraints are rather
deep in the menu.
The next suggestion is to change the interface for some constraints
(particularly wherever there is a long list). For instance for the
constraint Max day for a teacher per week if we have many teachers a
simple table like:
| Teacher Name | Max days|
| teacher 1 | n |
| teacher n | |
with a button “Save all changes” would be great. Now we have to enter
value for every teacher one by one in separate windows.
After setting constraints we tried to generate the next version of the
plan. We added more and more constraints (for instance WOLNE – dump
activities - free day for student or increasing max day for teacher) and
I was really surprised when FET coped with that. It took from about 1,5
minutes (almost no constraint) to over 20 minutes (with many constraints)
on Intel Core Duo T7250 2GHz 2GB RAM. With too many constrains after
about 10 minutes when I saw no change in the number of placed activities
(neither up nor down) I cut simulation, removed some constraints and
started it over.
The second hint is not to change too many constraints in one simulation
as it may lead to impossible timetable and than it is difficult to say
which particular constraint was too much.
Of course there is a lot of work to do. For instance even when two
consecutive activities are placed at one day (the same group and the same
teacher) sometimes there are placed at different rooms what would force
them to needless changing room. I guess that FET is focused on fulfilling
constrains but not on optimizing timetable. Sometimes simple changing of
two activities makes plan better both for students and teachers. I think
that manually improving generated plan is faster than creating many many
more constraints and repeating simulations. And this is the third hint.
Greetings
K. Kania (KK)
39---------------------------------------------------------
From alfaromeo:
When a user click on Data ---> activities
he presenrd with a list of all activities because filter fields are empty
all activities are listed based on Activity Id
Now, is it possible to a add sort feature like this
Sort by: Teachers
________Students
________Duration
________Subject
________ Act Id
So for example, if you select teachers, all activities will be listed alphapetically in a ascendent order
40---------------------------------------------------------
From Massimo Mancini:
> In advanced lock/unlock I would lock/unlock on teachers basis (with pick up
> the teacher from list of teachers) or on students groups basis (alwais from
> a list) The lists are mantained from subsequent generations and saved with
> data.
41---------------------------------------------------------
From Massimo Mancini:
I have another suggestion: an history file where you record all the actions
of the timetabler and theirs effects. If the history was visible in a a frame
in the View timetable forms, I would see scroll the messages without interruption
and with the opportunity to review them (please don't answer that is too
complicated... you can use a tab widget, a tab for the current situation
another for history... the right answer is: GREAT! I add it in TODO! ;-))).
In general an history file should be a great thing and the base for
undo/rollup features.
|