Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Vangelis Karafillidis

#1
Italian / Italiano / Re: ORARIO IMPOSSIBILE
August 30, 2025, 12:59:27 AM
Some of your teachers have "max hours daily = 4". This seems to be a problem. If you set "max hours daily = 5" for all the teachers with this constraint, the timetable solves in less than 10 seconds.

Vangelis.

#2
Hello.

I checked the screenshot you uploaded. If I understood correctly, you need to schedule two divisions (subgroups) of the same group to attend at the same time (period/time slot) their own lessons with the respective teachers.
In this case, you need to define (add) these two subgroups (for example if the groups is 10A, the subgroups of 10A could be 10A1 and 10A2), and then add the respective activities. The most "general" form of the constraint you could use is "a set of activities occupies max time slots from selection", since you can apply it virtually on all similar cases. You add these activities to this constraint, then select all time slots (necessary weight=100%) and set max occupied=1 (or at least 1 seems to be OK for your case).

Vangelis.
#3
Suggestions / Re: A suggested new type of constraint
August 17, 2025, 11:57:58 PM
Liviu.

I think that there might be some kind of misunderstanding...
There are two variants.
1) The "literal" variant: The user needs to define a group of teachers and then apply the necessary constraints to this group of teachers.
2) The "functional" variant: The user can select the teachers they need (let's say by clicking on the respective checkbox for each one of the teachers), and then add the constraint to the selected teachers (practically: add multiple constraints at once... one constraint for each one of the selected teachers).

The 1st variant seems to be what Aboulhamid suggested, and most likely it's difficult and tricky to code.
The 2nd variant, seems (at least to me) to be primarily some kind of UI "manipulation", which most likely does not need some "tricky" code for defining groups teachers, plus some "exotic" code for applying constraints to groups of teachers. Maybe... the 2nd variant (regarding the functionality part) is a good option, without severe implications regarding the coding part. What do you think Liviu? And... what do other users think about these variants?

Vangelis.

#4
Get Help / Re: Some teachers need to teach first hours
August 17, 2025, 03:39:07 PM
Thank you Liviu.

I think there is a variant for step 3.
We could use the constraint "an activity has a set of preferred starting times" instead of the constraint "an activity has a set of preferred time slots". In this scenario the preferred starting times should be the first hour of each day. What do you think? Is this going to work? Which variant is the optimal one?

Vangelis.

#5
Get Help / Re: Some teachers need to teach first hours
August 17, 2025, 10:35:57 AM
I think you should use some tricks in order to get an exact solution for your problem.

1) Assign an activity tag for the primary activities of each teacher. For example if Teacher1 is the primary teacher for Class1 and Class2, you should assign the activity tag Teacher1_Class1 for his/her (primary) activities with Class1, and the activity tag Teacher2_Class2, for his/her (primary) activities with Class2.
2) Create a pseudo activity, split=1, duration=2, no teacher, no student group, subject=PseudoActivity for each one of these primary teachers, and each one of his/her primary Classes. Assign the above mentioned activity tag for each one of these activities respectively to the teacher. For example the pseudo activities for Teacher1 should have the activity tag Teacher1_Class1 (for the pseudo activity you created respectively to the primary activities of this teacher for Class1), and the activity tag Teacher1_Class2 (for the pseudo activity you created respectively to the primary activities of this teacher for Class1).
3) Use the constraint "an activity has a set of preferred time slots" for each one of the pseudo activities, selected time slots = the first two hours of each day. For example, for Teacher 1, add one constraint with the pseudo activity with the activity tag Teacher1_Class1, and another one for the pseudo activity with the activity tag Teacher1_Class2. The weight should be 100%. You can easily filter the activities using the activity tag filter. Repeat this step for each one of the pseudo activities. This is going to place these pseudo activities (with duration = 2) exactly on the first two hours of any day.
4) Use the constraint "a set of activities occupies max time slots from selection". Select (by filter - activity tag) the above groups of activities + the respective pseudo activity. For example select all the activities + the pseudo activity with activity tag = Teacher1_Class1. Select all time slots. If the number of the REAL primary activities of Teacher1 with Class1 is n, set max time slots = n. The weight should be 100%. This is going to make the pseudo activity of Class1 for Teacher 1 (which should be placed in the first two hours of any day), coincide with any two real activities of Teacher1 with Class1, which is what you need (or at least this is what I understood).

Vangelis.

P.S. Liviu... Unfortunately my eye still hurts... Could you check my answer in detail. I can't spend much time in front of my PC in order to check by myself in detail what I wrote..
#6
I thought that the clearest form for this feature would be a double check box... the first part should be "consecutive if on the same day"... this first part should always be "active"... (i.e. the user should always be able to check/uncheck it)... the second part should be "inactive" (i.e. the user should not be able to select anything) when the first check box is unchecked...) and become automatically "active" (i.e. the user should be able to check it) when the first check box is checked... and appear by default unchecked when the first one is unchecked... this second part should be a "sub-option" (a "nested" option) and appear "indented" to the right... (when compared to the first part/option)....  I think that the indication "allow break(s) between consecutive activities" is the clearest one I could think of...

Vangelis.
#7
Hello!

I am the person who asked about the lack of the constraint "students (set) - min days per week", because it seemed strange to me, since the respective constraint for teachers has been implemented.
Regarding the Greek educational system (State Primary and Secondary Schools), the students should attend their classes every single day of the week. There are no empty days for students. I think this can be easily achieved with the existing constraints. The user should simply add the respective "min hours daily" constraints, without checking the "allow empty days". But even for different situations, the combination of other constraints "students set - max days per week", "students set - min hours daily", "students set - max hours daily", could result in the desired "min days per week", with "allow empty days" checked.
So, at least for the Greek educational system, I think there is no reason to implement this constraint.
Regarding the other constraint "teacher(s) - begin(s) early", I think it wouldn't be highly useful for the Greek educational system. At least, I never needed this type of constraint.
In conclusion, I think it's better to keep FET compatible with earlier versions. And generally speaking, it's not a good idea to invest much time in order to implement features that are not really necessary. Moreover, I think it's safer to avoid implementing features that could cause problems to FET, and only if they are really necessary to code them.

Vangelis.

#8
Quote from: kostasitia on April 03, 2025, 06:51:48 AM
Quote1) Αν καταλαβαίνω καλά το πρόβλημά σου, θα πρέπει να δηλώσεις ως «εβδομάδα» στο FET όλη την χρονική περίοδο του σεμιναρίου. Στα ονόματα των ημερών μπορείς να βάλεις το πραγματικό όνομα της ημέρας και την αντίστοιχη ημερομηνία. Π.χ. αν το σεμινάριο εκτείνεται σε 20 εργάσιμες ημέρες, θα πρέπει να δηλώσεις μία εβδομάδα 20 ημερών.
2) Μπορείς να «περιορίσεις» τους εκπαιδευτικούς (εκπαιδευτές) ως προς τις ημέρες που θα διδάξουν χρησιμοποιώντας περιορισμούς «εκπαιδευτικός - μη διαθέσιμοι χρόνοι».

Όσον αφορά το συγκεκρίμενο κομμάτι,
για να έχω στο ίδιο timetable 2 και 3
σεμινάρια που να ξεκινάνε πχ αργοτέρα
και να τελειώνουν νωρίτερα θα πρέπει
να δημιουργήσω καινούργιο αρχείο;

Θα πρέπει να μας εξηγήσεις πώς ακριβώς είναι η διάρθρωση των σεμιναρίων. Π.χ. αν τα σεμινάρια επαναλαμβάνονται (όχι ως προς το περιεχόμενο των μαθητών, αλλά ως προγραμματισμός από πλευράς σου) ανά εβδομάδα, ανά μήνα, ή εάν διαφοροποιούνται σε μία μεγαλύτερη περίοδο, π.χ. εξάμηνο, χρόνο, κ.λπ. Η ελάχιστη μονάδα χρονικής «επανάληψης» των σεμιναρίων (του προγραμματισμού τους) υπό φυσιολογικές συνθήκες θα πρέπει να θεωρηθεί ως η «εβδομάδα» του ωρολογίου σου. Με το FET μπορείς να διαχειριστείς ακόμη και ακραίες καταστάσεις, αφού η «εβδομάδα» στο FET μπορεί να έχει μέχρι και 1.000 (χίλες) ημέρες. Πλην όμως, όπως καταλαβαίνεις, εάν η μονάδα χρονικής επανάληψης των σεμιναρίων είναι πολύ μεγάλη, θα καταλήξεις να έχεις ένα ωρολόγιο πρόγραμμα το οποίο θα είναι τεράστιο σε μέγεθος και οι ενδιαφερόμενοι θα δυσκολευτούν πάρα πολύ για να το διαβάσουν.

QuoteΑλλιώς σκεφτόμουν σαν επιλογή να βάλω μέχρι
το τέλος του χρόνου 2025 όλες τις καθημερίνες
και να προσθέτω εκεί μέτα τα σεμινάρια.
Υπάρχει πιο σύντομος τρόπος απο αυτόν που
σκέφτηκα;  :P

Αυτό εξαρτάται από το κατά πόσο τα σεμινάρια επαλαμβάνονται ως προγραμματισμός, π.χ. σε εβδομαδιαία, μηνιαία, κ.ο.κ. βάση.

QuoteΑλλά, αργότερα θα μπορούσα να προσθέσω και για το 2026
τις ημέρες; ή θα ήταν προτιμότερο να δημιουργήσω
νέο αρχείο και να ξαναπεράσω όλα τα στοιχεία για
να μην μπερδευτώ.

Δεν είναι απαραίτητο να περάσεις όλα τα στοιχεία από το μηδέν. Εάν οι ημέρες σου π.χ. είναι οι ίδιες, οι εκπαιδευτές (εκπαιδευτικοί) οι ίδιοι (ή περίπου οι ίδιοι), κ.ο.κ. μπορείς να χρησιμοποιήσεις το ίδιο αρχείο και να τροποποιήσεις όσα δεδομένα και όσους περιορισμούς είναι απαραίτητο.

QuoteΕπίσης παρατήρησα οτι μου δήμιουργεί αυτόματα
πότε ξεκινάει το κάθε μάθημα. Αν βάλω ότι θέλω
να ξεκινάει πρώτο κάποιο μάθημα θα ισχύει για
όλα τα σεμινάρια/τμήματα που έχουν το ίδιο μάθημα ή
μπορώ να το έχω ως περιορισμό στο συγκεκριμένο
τμήμα;

Το FET τοποθετεί τις δραστηριότητες με τον τρόπο που υποδεικνύει ο χρήστης μέσω των περιορισμών που προσθέτει. Εάν δεν βάλεις καθόλου περιορισμούς, πρακτικώς το FET θα τοποθετήσει τις δραστηριότητες τυχαία, τηρώντας μόνον τους βασικούς χρονικούς και χωρικούς περιορισμούς. Δηλαδή, δεν θα τοποθετήσει π.χ. δύο δραστηριότητες ενός εκπαιδευτικού την ίδια ώρα, ούτε θα τοποθετήσει στην ίδια αίθουσα δύο διαφορετικές δραστηριότητες, κ.λπ.

QuoteΓιάτι πρώτη φορά ασχολούμαι στο συγκεκριμένο
κομμάτι και παρακολουθώ και κάποια tutorial
να το πω για τον τρόπο που λειτουργεί το
συγκεκριμένο πρόγραμμα.

Το FET είναι ένα ιδιαίτερα δυνατό εργαλείο επίλυσης ωρολογίων προγραμμάτων. Ανάλογα με τις ανάγκες του κάθε «προγραμματιστή» οι επιλογές μπορεί να ποικίλουν. Π.χ. σε διθέσιο νηπιαγωγείο δεν νομίζω καν να υπάρχει η ανάγκη χρήσης εξειδικευμένης εφαρμογής για την κατάρτιση του ωρολογίου προγράμματος, αφού το ωρολόγιο σε ένα τέτοιο σχολείο μάλλον είναι πολύ εύκολο. Δεν ξέρω κατά πόσο το πρόβλημά σου θα το χαρακτήριζες ως εύκολο ή δύσκολο. Πάντως, με το FET θα πρέπει να μπεις σε μία διαδικασία κατανόησης της λειτουργίας της εφαρμογής, και αρκετών δοκιμών προκειμένου να είσαι σε θέση να αξιοποιήσεις των μέγιστο των δυνατοτήτων του. Το ζήτημα είναι το κατά πόσο για την περίπτωσή σου είναι απαραίτητες οι δυνατότητες του FET, ή εάν π.χ. το ωρολόγιο που θέλεις να καταρτίσεις είναι τυχόν τόσο εύκολο, που δεν αξίζει να χρησιμοποιήσεις (όπως στην περίπτωση του διθέσιου νηπιαγωγείου που ανέφερα παραπάνω) κάποια εξειδικευμένη εφαρμογή.

Βαγγέλης Καραφυλλίδης.

#9
Quote from: kostasitia on April 02, 2025, 08:36:06 AMΚαλησπέρα σας,

Θά ήθελα να ρώτησω αν υπάρχει η δυνατότητα
στο FET να μπορούμε να είσαγαγουμε
συγκεκριμένες ημερομήνιες για σεμινάριο-τάξη.
Πχ απο 1 Μαρτιου εως 15 Απριλιου θα ειναι το
1ο σεμιναριο για παραδειγμα οπου θα γίνεται
ολοήμερο μάθημα για 2-5 μέρες απο συγκεκριμένο
εκπαιδευτή και τον βοηθό του και στην συνεχεια
θα αναλαμβανει αλλος εκπαιδευτης. Επιπλεον,
σε ενα 2ο σεμιναριο διαφορετικού ή ίδιου τύπου
που θα ειναι απο 15 Μαρτιου εως 10 Απριλιου.
Υπάρχει αυτή η δυνατότητα;


1) Αν καταλαβαίνω καλά το πρόβλημά σου, θα πρέπει να δηλώσεις ως «εβδομάδα» στο FET όλη την χρονική περίοδο του σεμιναρίου. Στα ονόματα των ημερών μπορείς να βάλεις το πραγματικό όνομα της ημέρας και την αντίστοιχη ημερομηνία. Π.χ. αν το σεμινάριο εκτείνεται σε 20 εργάσιμες ημέρες, θα πρέπει να δηλώσεις μία εβδομάδα 20 ημερών.
2) Μπορείς να «περιορίσεις» τους εκπαιδευτικούς (εκπαιδευτές) ως προς τις ημέρες που θα διδάξουν χρησιμοποιώντας περιορισμούς «εκπαιδευτικός - μη διαθέσιμοι χρόνοι».

QuoteΚάτι ακόμη αναγράφεται κάπου οι συνολικές ώρες των
εκπαιδευτών για ολα τα σεμίναρια που θα είναι στο
ετος 2025;


Για να δεις τις συνολικές ώρες που διδάσκει ο κάθε εκπαιδευτικός (εκπαιδευτής), μπορείς να πας π.χ. στις Δραστηριότητες και να «φιλτράρεις» ως προς τον κάθε εκπαιδευτικό. Στο πάνω μέρος του διαλόγου θα εμφανιστεί η διάρκεια των δραστηριοτήτων του (σε διδακτικές ώρες).

Βαγγέλης Καραφυλλίδης.

#10
Greek / Ελληνικά / Re: FET - edit & print
March 03, 2025, 07:25:18 PM
Hello @Liviu Lalescu and @g.theodoroy.

I think that displaying the students groups at the bottom of the timetable is a good idea. Since I have tried preparing timetables using spreadsheets, the user needs definitely to check which students sets have activities and which ones not (for every single time slot). For most schools, the timetablers work on the "teachers time horizontal" view of the timetable in order to make the necessary adjustments. But this view, is insufficient when the user needs to check easily and fast the situation of the students sets for each one of the time slots. So, the user needs a supplementary chart in order to monitor the "status" of each students group (gap or activity) for all time slots. In my opinion a chart at the bottom the timetable with "ones" (1=activity) and "zeros" (0=no activity) for all the respective students sets would be highly useful. This chart should have in the vertical axis the names of all students groups, and in the horizontal axis these "ones" and "zeros". Of course, the timetable and this supplementary chart should be "aligned" in the vertical axis, so that their time slots correspond each other. Another variant of this chart would be even more useful. For example if a group has no activity in a specific time slot, this specific group ad its respective subgroups should appear with "zeros". And vice-versa. For example, if all the groups of a year have no activities on a specific time slot, this year should appear with a "zero" as well. I don't know if this is possible to be implemented, but the user needs definitely a way to "monitor" their data.

Vangelis.

#11
Greek / Ελληνικά / Re: FET - edit & print
February 25, 2025, 06:38:57 PM
Quote from: Liviu Lalescu on February 25, 2025, 04:54:35 PMThank you!

It is normal, because the fixed activities are scheduled first, and they are possible, but the last unscheduled activities will be impossible to place. To be able to schedule all, deactivate all the time and space constraints of type other than the locking time and space constraints: activity preferred starting time and activity preferred room.


@Liviu Lalescu and @g.theodoroy,

I think that this html file should have a specific behavior. When the user has modified an existing timetable, they need to save the new timetable as a .fet file in order to generate all the other forms (views) of the timetable. The constraints (for example teacher - min hours daily) are not needed anymore. So, since a) the user is sure about the new (modified) timetable, and b) this timetable is a temporary one (i.e. it is going to be used for the next day), only the locking time and space constraints are needed. All the other constraints could be omitted. I don't know if this easier regarding the coding part, but in my opinion if this possible (this "cleaning-up" of the constraints), it might simplify things...

Vangelis.

P.S. I am going to test the new file in more detail soon...
I really like this idea by @g.theodoroy !!!
#12
The problem seems to be students min hours daily = 6. I changed it to min hours daily = 5, and the timetable solves.

Vangelis.

#13
Greek / Ελληνικά / Re: FET - edit & print
February 22, 2025, 08:02:14 PM
Καλησπέρα και πάλι.

Στο facebook έχω δημιουργήσει μία ομάδα με τίτλο «Κατάρτιση Ωρολογίων Προγραμμάτων». Εάν θέλεις μπορείς να αναρτήσεις το αρχείο σου και εκεί. Εάν δεν έχεις λογαριασμό στο facebook, μπορώ να αναρτήσω το αρχείο εγώ, εφόσον μου υποδείξεις τι ακριβώς θέλεις να γράψω στην ανάρτηση.
Πιστεύω πως η προσπάθειά σου είναι προς την κατεύθυνση που θέλουν πολλοί χρήστες του FET, γιατί με το αρχείο που δημιούργησες (και σε περιπτώσεις εύκολων τροποποιήσεων) ο χρήστης μπορεί να κάνει γρήγορα τις αλλαγές που απαιτούνται στο ωρολόγιο, αφού σχεδόν καθημερινά θα τύχει κάποιοι εκπαιδευτικοί να απουσιάζουν. Ωστόσο, εάν είναι εύκολο, καλό θα ήταν να μπορεί να αποθηκευτεί το καινούργιο ωρολόγιο, καθώς και να υλοποιηθεί κάποια μορφή undo/redo.

Βαγγέλης Καραφυλλίδης.



========


Good evening again.

I have created a group on Facebook entitled "Κατάρτιση Ωρολογίων Προγραμμάτων". If you want, you can post your file there too. If you don't have a Facebook account, I can post the file myself, as long as you tell me exactly what you want me to write in the post.
I believe that your effort is in the direction that many FET users want, because with the file you created (and in cases of easy modifications) the user can quickly make the changes required in the timetable, since almost every day some teachers will be absent. However, if it is easy, it would be good to be able to save the new timetable, as well as to implement some form of undo/redo.

Vangelis Karafillidis
#14
Greek / Ελληνικά / Re: FET - edit & print
February 22, 2025, 04:41:25 PM
Καλησπέρα.

Έκανα κάποιες δοκιμές μικρής έκτασης. Συγχαρητήρια για την ιδέα και την προσπάθεια. Καταγράφω λοιπόν τις πρώτες μου εντυπώσεις.
Προσωπικά βλέπω πολύ θετικά την ιδέα για τους εξής λόγους:
1) Σε κάποιες περιπτώσεις οι αλλαγές που πρέπει να γίνουν στο ωρολόγιο είναι οφθαλμοφανείς ακόμη και με μία πρώτη ματιά. Μία χειροκίνητη λειτουργία τροποποίησης βοηθά πάρα πολύ στις περιπτώσεις αυτές. Με το FET (όπως σωστά επισημάνθηκε) είναι εφικτή η αυτοματοποιημένη τροποποίηση, αλλά όταν πρόκειται για απλές αλλαγές, οι απαιτούμενοι χειρισμοί στο FET, δεν είναι η απλούστερη και γρηγορότερη οδός.
2) Η ιδέα έχει υλοποιηθεί με τέτοιον τρόπο που μπορεί να αξιοποιηθεί σε οποιαδήποτε πλατφόρμα με μόνη απαίτηση την εφαρμογή Firefox.

Παρατηρήσεις:
1) Με μία μικρή δοκιμή που έκανα, δεν κατάφερα να κάνω undo. Εάν δεν έχει υλοποιηθεί κάτι τέτοιο, ενδεχομένως να ήταν πολύ χρήσιμο, ειδικά για τις περιπτώσεις που κάποιοι χρήστες δοκιμάσουν να κάνουν αλλαγές μέτριας έως μεγάλης έκτασης τροποποιήσεις στο ωρολόγιο.
2) Δεν έχω καταλάβει εάν είναι εφικτό να αποθηκευτεί σε νέο αρχείο η τροποποιημένη μορφή του ωρολογίου. Νομίζω πως κάτι τέτοιο θα ήταν πολύ χρήσιμο.

Βαγγέλης Καραφυλλίδης.

======



Good evening.

I did some small-scale tests. Congratulations for the idea and your efforts. Here are my first impressions.
Personally, I see the idea very positively for the following reasons:
1) In some cases, the changes that need to be made on the timetable are obvious even at first glance. A manual modification functionality helps a lot in these cases. With FET (as rightly pointed out) automated modification is possible, but when it comes to simple changes, the required manipulations in FET are not the simplest and fastest way.
2) The way the idea is implemented makes it usable on any platform with the only requirement being the Firefox application.

Notes:
1) With a small test that I did, I didn't find a some kind of "undo". If this has not been implemented, it could be very useful, especially in cases where some users try to make moderate to large-scale modifications on the timetable.
2) I have not understood if it is possible to save the modified form of the timetable in a new file. I think it would be very useful.

Vangelis Karafillidis

#15
Get Help / Re: Max Hours Per Day Question
January 10, 2025, 07:15:04 PM
Adele, if I understand correctly your problem, you need to ensure that each one of the teachers will have one free hour (gap), which should be placed between their activities. I.e. you need each one of the teachers to have at least one activity before this free period (gap) and at least one activity after this free period (gap). And you need it for all the days of the week. Right? In this case, I am afraid that you might need to use some specialized tricks... So, please confirm first if the above description of your problem is correct.

Vangelis.