E' da almeno 5 anni che uso Fet, ma è la prima volta che scrivo qui sul forum.
Quindi, prima di tutto, un sentito ringraziamento all'autore di questo preziosissimo software e un saluto a tutti gli utilizzatori.
Veniamo alla questione:
Il difetto maggiore che ho riscontrato in fet è che tende a mettere le ore di una materia in una classe tutte all'inizio della giornata oppure tutte alla fine.
Prendiamo ad esempio l'insegnante Rossi, insegna Matematica e Fisica in due classi, 3A e 3B, 8 ore in una e 8 ore nell'altra.
Fet quando piazza le ore, di solito mette tutte le ore di una classe in prima mattina, ad es. 3A sempre alle prime ore, e tutte le ore dell'altra in tarda mattina, ad es. 3B verso le ultime.
Ovviamente potrei con le chiavi forzare un po' le cose, ma quello che servirebbe secondo me è una maggior distribuzione delle attività in una classe non solo orizzontalmente, ma anche verticalmente.
Che ne pensate?
Sadly only English. Please check:
http://lalescu.ro/liviu/fet/forum/index.php?topic=1416.msg7753#msg7753
I hope someone will explain more detailed in your language.
Thank for your quick reply.
That is the way I followed during last 5 years, but isn't so comfortable, infact if you have 200 and more subactivities, this way become too complicated.
I think that fet, by default, shoud distribuite the subactivities in starting hours and ending hours. This is the only feature that my teachers needs to say that their timetables are quite perfects ;-)
Unfortunately, Marco Barsotti (the FET Italian translator) translated into Italian activity and subactivity with the same word, subattivita (regarding activity time constraints). Volker was talking about the constraints "Le subattivita con indice di una selezione iniziano/cadono in un insieme di ore preferenziali". In this way you can add less constraints, only a few for each subject, not one for each subactivity.
On the other hand, you could also considering using the constraint activities occupy max time slots from selection, but again you will need to add many of these constraints. But the outcome might be nicer.
Even if you have many subjects:
a) you only need to add that one time
b) you can use activity tags instead: so you only need to add a few constraints to care but all activities (with that activity tag). So you need max around ((days per week)/2) constraints. So normaly you need to add only 2 or 3 constraints.
Thanks.
Probably is my fault, cause I don't understand a simply thing...but I don't understand. :-[
And so, first of all: sorry for my bad english.
Liviu, why your software, without constranis, put the subactivities, by default, all at the beginnin or at the end?
I'm trying to understand if this thing is desired by you or simply, without intention, it's a result of your coding .
I say this, because when I observe the timetable results, is clear that a theacher often teach a subject in a class at the beginning of the day often in a week, and teach the same subject in another class at the end of the day
Take a look on this timetables of two teachers and you could understand that, by default, this isn't a good result. So I was wondering if this is wanted by you or maybe this is impossible to avoid by default and I have to use constrains. :o ;)
In other words, I think that by default a subject in the same class should be equally divided between starting hours and ending hours without using constrains.
<table id="table_12" class="even_table" border="1">
<caption>Scuola secondaria di primo grado</caption>
<thead>
<tr><td rowspan="2"></td><th colspan="6">Rossi</th></tr>
<tr>
<!-- span -->
<th class="xAxis">Lunedì</th>
<th class="xAxis">Martedì</th>
<th class="xAxis">Mercoledì</th>
<th class="xAxis">Giovedì</th>
<th class="xAxis">Venerdì</th>
<th class="xAxis">Sabato</th>
</tr>
</thead>
<tbody>
<tr>
<th class="yAxis">07:50</th>
<td rowspan="2">3A<br>ITA-STO-GEO<br></td>
<td rowspan="2">2C<br>ITA-STO<br></td>
<td>---</td>
<td rowspan="2">3A<br>ITA-STO-GEO<br></td>
<td>---</td>
<td>-x-</td>
</tr>
<tr>
<th class="yAxis">08:50</th>
<!-- span -->
<!-- span -->
<td rowspan="2">3A<br>ITA-STO-GEO<br></td>
<!-- span -->
<td rowspan="2">3A<br>ITA-STO-GEO<br></td>
<td>-x-</td>
</tr>
<tr>
<th class="yAxis">09:50</th>
<td>2C<br>ITA-STO<br></td>
<td>---</td>
<!-- span -->
<td>---</td>
<!-- span -->
<td>-x-</td>
</tr>
<tr>
<th class="yAxis">10:55</th>
<td>---</td>
<td rowspan="2">3A<br>ITA-STO-GEO<br></td>
<td>---</td>
<td rowspan="2">2C<br>ITA-STO<br></td>
<td rowspan="2">2C<br>ITA-STO<br></td>
<td>-x-</td>
</tr>
<tr>
<th class="yAxis">11:50</th>
<td>---</td>
<!-- span -->
<td>2C<br>ITA-STO<br></td>
<!-- span -->
<!-- span -->
<td>-x-</td>
</tr>
<tr class="foot"><td></td><td colspan="6">Orario prodotto con FET 5.23.2 il 06/09/14 16:03</td></tr>
</tbody>
</table>
<p class="back"><a href="#top">Torna in alto</a></p>
<table id="table_13" class="odd_table" border="1">
<caption> Scuola secondaria di primo grado</caption>
<thead>
<tr><td rowspan="2"></td><th colspan="6">Bianchi</th></tr>
<tr>
<!-- span -->
<th class="xAxis">Lunedì</th>
<th class="xAxis">Martedì</th>
<th class="xAxis">Mercoledì</th>
<th class="xAxis">Giovedì</th>
<th class="xAxis">Venerdì</th>
<th class="xAxis">Sabato</th>
</tr>
</thead>
<tbody>
<tr>
<th class="yAxis">07:50</th>
<td rowspan="2">3C<br>MAT-SCIE<br></td>
<td>---</td>
<td>---</td>
<td>3C<br>MAT-SCIE<br></td>
<td>2C<br>MAT-SCIE<br></td>
<td>-x-</td>
</tr>
<tr>
<th class="yAxis">08:50</th>
<!-- span -->
<td>1C<br>MAT-SCIE<br></td>
<td>---</td>
<td>1C<br>MAT-SCIE<br></td>
<td>3C<br>MAT-SCIE<br></td>
<td>-x-</td>
</tr>
<tr>
<th class="yAxis">09:50</th>
<td>1C<br>MAT-SCIE<br></td>
<td>3C<br>MAT-SCIE<br></td>
<td>1C<br>MAT-SCIE<br></td>
<td>2C<br>MAT-SCIE<br></td>
<td>---</td>
<td>-x-</td>
</tr>
<tr>
<th class="yAxis">10:55</th>
<td>---</td>
<td rowspan="2">2C<br>MAT-SCIE<br></td>
<td>2C<br>MAT-SCIE<br></td>
<td>---</td>
<td rowspan="2">1C<br>MAT-SCIE<br></td>
<td>-x-</td>
</tr>
<tr>
<th class="yAxis">11:50</th>
<td>2C<br>MAT-SCIE<br></td>
<!-- span -->
<td>3C<br>MAT-SCIE<br></td>
<td>---</td>
<!-- span -->
<td>-x-</td>
</tr>
<tr class="foot"><td></td><td colspan="6">Orario prodotto con FET 5.23.2 il 06/09/14 16:03</td></tr>
</tbody>
</table>
I am not sure I can see such a behavior. Anyway, even if it appears, it is by luck or by the other constraints. The algorithm puts the activities randomly, when the places to put them are equally easy. But it will choose easier places in case some places are easier.
I do not choose to put activities in first slots of the day or the last. And there is no bug in FET to put them in this way.
Liviu è categorico e mi sembra chiaro: l'algoritmo non privilegia la sistemazione verticale delle ore e, quindi, l'osservazione "Fet quando piazza le ore, di solito mette tutte le ore di una classe in prima mattina, ad es. 3A sempre alle prime ore, e tutte le ore dell'altra in tarda mattina, ad es. 3B verso le ultime" è frutto di casualità e dell'insieme dei vincoli usati.
Cerchiamo, perciò, di usare i vincoli che abbiamo a disposizione per ottimizzare la distribuzione delle ore.
Abbiamo per esempio il problema delle lezioni (o subattività) che durano due ore e che sono destinate ai compiti in classe per materie come italiano, latino e matematica ecc.. Nel definire la distribuzione delle ore, abbiamo immaginato e suggerito di individuare con ID=1 queste lezioni.
Come suggerito da Liviu, si può far uso del vincolo "Le subattivita con indice di una selezione iniziano in un insieme di ore preferenziali". L'indice è 1 e le ore preferenziali di inizio saranno la prima e la seconda. E' così assicurato che le classi saranno chiamate a fare i compiti in classe quando la mente è più fresca, alla prima o al più tardi alla seconda ora.
Supponiamo che l'insegnante di lettere di una classe svolga l'attività settimanale in 7 ore di lezione. Questa attività potrebbe essere divisa in 5 subattività: 2+2+1+1+1.
Si può vincolare la prima subattività (con ID=1) a iniziare alla prima o alla seconda ora (come gli algoritmi di FET preferiscono).
La seconda subattività (ID=2) potrebbe essere vincolata ad iniziare fra la prima e la terza ora.
Così anche la terza subattività.
La quarta subattività potrebbe essere vincolata ad iniziare fra la prima e la quarta ora.
La quinta ed ultima subattività potrebbe essere vincolata ad iniziare fra la prima e la quinta ora, con esclusione della sesta ora, nella quale FET, così, non piazzerà mai ore di lettere. Oppure la quinta subattività la si lascia senza vincoli di questo tipo, permettendo a FET di piazzarla dove gli pare e, se occorro, anche alla sesta ora.
Questo è uno scenario ipotetico, che fa riferimento ad una distribuzione delle ore di lettere (lezioni o subattività), che non si devono accumulare - per una classe - tutte (o quasi) a fine giornata.
Questo risultato si può ottenere aggiungendo alcuni vincoli del tipo "Le subattivita con indice di una selezione iniziano in un insieme di ore preferenziali". La selezione è ottenuta indicando la materia e l'indice della subattività. A questa si legano le ore nelle quali è auspicabile che tale subattività inizi.
Lo stesso processo andrà affrontato per tutte le materie delle cui lezioni si desidera evitare un eccessivo accumulo nelle ultime ore.
Quote from: Liviu Lalescu on September 17, 2014, 06:36:51 PM
I am not sure I can see such a behavior. Anyway, even if it appears, it is by luck or by the other constraints. The algorithm puts the activities randomly, when the places to put them are equally easy. But it will choose easier places in case some places are easier.
I do not choose to put activities in first slots of the day or the last. And there is no bug in FET to put them in this way.
Thanks
Quote from: mbarsan on September 22, 2014, 10:54:51 PM
Grazie per la risposta dettagliata.
In effetti quello che hai descritto è quello che faccio per evitare il problema che ho sollevato. Solo mi chiedevo se c'era un modo più immediato, visto che si tratta di metterlo in campo per tutte le discipline e per ogni insegnante.
Voi dite che risulta a causa dei miei vincoli, può darsi, l'anno prossimo proverò a far girare il programma senza vincoli, almeno inizialmente, per vedere il risultato.
Quote from: zeta65 on September 25, 2014, 06:37:01 PM
...si tratta di metterlo in campo per tutte le discipline e per ogni insegnante...
Ciao. Quando usi il vincolo
Le subattivita con indice di una selezione iniziano in un insieme di ore preferenziali, la selezione puoi definirla indicando solamente la disciplina. Così coinvolgerai tutti gli insegnanti di quella materia, senza bisogno di specificarli uno per uno.
Così si aggiunge un numero limitato di vincoli.