What optimization algorithm is more suitable for timetable rescheduling?
up vote
0
down vote
favorite
I'm working on the project where university course is represented as a to-do list, where:
course owner (teacher of the course) can add tasks (containing the URL to the resource needs to be learned and two datetime fields - when to start and when to complete the task)
course subscriber (student) can mark tasks as complete or not complete and their marks are saved individually for each account.
If student marks task as complete - his account + element he marked are shown in the course activity tab for teacher where he can:
- initiate a conversation in JavaScript-based chat with him
- evaluate the result of the conversation
What optimization algorithm you could recommend me to use for timetable rescheduling (changing datetime fields for to-do element if student procrastinates) here?
Actually, we can use the student activity on the resource + fact that he marked the task as complete + if he clicked or not on the URL placed on the to-do element leading to the external learning material (for example Google Book).
For example, are genetic algorithms suitable for this model and what pitfalls do they have: https://medium.com/@vijinimallawaarachchi/time-table-scheduling-2207ca593b4d ?
optimization statistics mathematical-optimization data-science np
add a comment |
up vote
0
down vote
favorite
I'm working on the project where university course is represented as a to-do list, where:
course owner (teacher of the course) can add tasks (containing the URL to the resource needs to be learned and two datetime fields - when to start and when to complete the task)
course subscriber (student) can mark tasks as complete or not complete and their marks are saved individually for each account.
If student marks task as complete - his account + element he marked are shown in the course activity tab for teacher where he can:
- initiate a conversation in JavaScript-based chat with him
- evaluate the result of the conversation
What optimization algorithm you could recommend me to use for timetable rescheduling (changing datetime fields for to-do element if student procrastinates) here?
Actually, we can use the student activity on the resource + fact that he marked the task as complete + if he clicked or not on the URL placed on the to-do element leading to the external learning material (for example Google Book).
For example, are genetic algorithms suitable for this model and what pitfalls do they have: https://medium.com/@vijinimallawaarachchi/time-table-scheduling-2207ca593b4d ?
optimization statistics mathematical-optimization data-science np
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'm working on the project where university course is represented as a to-do list, where:
course owner (teacher of the course) can add tasks (containing the URL to the resource needs to be learned and two datetime fields - when to start and when to complete the task)
course subscriber (student) can mark tasks as complete or not complete and their marks are saved individually for each account.
If student marks task as complete - his account + element he marked are shown in the course activity tab for teacher where he can:
- initiate a conversation in JavaScript-based chat with him
- evaluate the result of the conversation
What optimization algorithm you could recommend me to use for timetable rescheduling (changing datetime fields for to-do element if student procrastinates) here?
Actually, we can use the student activity on the resource + fact that he marked the task as complete + if he clicked or not on the URL placed on the to-do element leading to the external learning material (for example Google Book).
For example, are genetic algorithms suitable for this model and what pitfalls do they have: https://medium.com/@vijinimallawaarachchi/time-table-scheduling-2207ca593b4d ?
optimization statistics mathematical-optimization data-science np
I'm working on the project where university course is represented as a to-do list, where:
course owner (teacher of the course) can add tasks (containing the URL to the resource needs to be learned and two datetime fields - when to start and when to complete the task)
course subscriber (student) can mark tasks as complete or not complete and their marks are saved individually for each account.
If student marks task as complete - his account + element he marked are shown in the course activity tab for teacher where he can:
- initiate a conversation in JavaScript-based chat with him
- evaluate the result of the conversation
What optimization algorithm you could recommend me to use for timetable rescheduling (changing datetime fields for to-do element if student procrastinates) here?
Actually, we can use the student activity on the resource + fact that he marked the task as complete + if he clicked or not on the URL placed on the to-do element leading to the external learning material (for example Google Book).
For example, are genetic algorithms suitable for this model and what pitfalls do they have: https://medium.com/@vijinimallawaarachchi/time-table-scheduling-2207ca593b4d ?
optimization statistics mathematical-optimization data-science np
optimization statistics mathematical-optimization data-science np
edited Nov 22 at 13:59
asked Nov 22 at 13:01
paus
77731228
77731228
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
I'm not sure I completely understand your problem but it sounds like you have a feasible timetable to begin with and you just need to improve it.
If so genetic algorithms will work very well, but I think representing everything as binary 'chromosomes' like in the link might not be practical.
There are many other ways you can represent a timetable, such as in a 2D array, or giving an event a slot number.
You could look into algorithms such as Tabu search, Simulated Annealing and Great Deluge and Hill Climbing. They are all based on similar ideas but some work better with some problems than others. For example if you have a very rough search space simulated annealing won't be the best and Hill Climbing usually only finds a local optimum.
The general architecture of the algorithms mentioned above and many other genetic algorithms and Metaheuristics is: select a neighbouring solution using a move operator (e.g. swapping the time of one or two or three events or swapping the rooms of two events etc...), check the move doesn't violate any hard constraints, use an acceptance strategy such as, simulated annealing or Great Deluge, to determine if the move is accepted. If it is keep the solution and repeat the steps until the termination criterion is met. This can be max time, number of iterations reached or improving move hasn't been found in x number of iterations.
Whilst this is running keep a log of the 'best' solution so when the algorithm is terminated you have the best solution found. You can determine what is considered 'best' based on how many soft constraints the timetable violates
Hope this helps!
Yes, we finally decided to treat the problem like optimization problem, not a classification one. Generally speaking, we want to facilitate the daily planning for self-learners based on books, articles and other online and offline resources by adopting the learning plan depending on their activity on the resource: monosnap.com/file/qYASQ74J5x2d9ZrsUrghvmqrlCDM6a It looks like one "course" and many subsrcibers receiving notifications when course owner adds new element to the timeline. We want to personalize it then.
– paus
Nov 30 at 9:18
I'm just trying to understand how time-consuming it will be to embed such sort of personalization if we don't have tests or other stuff, just past-present-future tasks and checkbox to mark it as done.
– paus
Nov 30 at 9:48
About constraints - the student maybe subscribed on several courses, and he has the "common" timetable where these elements are shown to him in the same way in chronological order. The elements may overlap each other by time.
– paus
Nov 30 at 12:25
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
I'm not sure I completely understand your problem but it sounds like you have a feasible timetable to begin with and you just need to improve it.
If so genetic algorithms will work very well, but I think representing everything as binary 'chromosomes' like in the link might not be practical.
There are many other ways you can represent a timetable, such as in a 2D array, or giving an event a slot number.
You could look into algorithms such as Tabu search, Simulated Annealing and Great Deluge and Hill Climbing. They are all based on similar ideas but some work better with some problems than others. For example if you have a very rough search space simulated annealing won't be the best and Hill Climbing usually only finds a local optimum.
The general architecture of the algorithms mentioned above and many other genetic algorithms and Metaheuristics is: select a neighbouring solution using a move operator (e.g. swapping the time of one or two or three events or swapping the rooms of two events etc...), check the move doesn't violate any hard constraints, use an acceptance strategy such as, simulated annealing or Great Deluge, to determine if the move is accepted. If it is keep the solution and repeat the steps until the termination criterion is met. This can be max time, number of iterations reached or improving move hasn't been found in x number of iterations.
Whilst this is running keep a log of the 'best' solution so when the algorithm is terminated you have the best solution found. You can determine what is considered 'best' based on how many soft constraints the timetable violates
Hope this helps!
Yes, we finally decided to treat the problem like optimization problem, not a classification one. Generally speaking, we want to facilitate the daily planning for self-learners based on books, articles and other online and offline resources by adopting the learning plan depending on their activity on the resource: monosnap.com/file/qYASQ74J5x2d9ZrsUrghvmqrlCDM6a It looks like one "course" and many subsrcibers receiving notifications when course owner adds new element to the timeline. We want to personalize it then.
– paus
Nov 30 at 9:18
I'm just trying to understand how time-consuming it will be to embed such sort of personalization if we don't have tests or other stuff, just past-present-future tasks and checkbox to mark it as done.
– paus
Nov 30 at 9:48
About constraints - the student maybe subscribed on several courses, and he has the "common" timetable where these elements are shown to him in the same way in chronological order. The elements may overlap each other by time.
– paus
Nov 30 at 12:25
add a comment |
up vote
1
down vote
accepted
I'm not sure I completely understand your problem but it sounds like you have a feasible timetable to begin with and you just need to improve it.
If so genetic algorithms will work very well, but I think representing everything as binary 'chromosomes' like in the link might not be practical.
There are many other ways you can represent a timetable, such as in a 2D array, or giving an event a slot number.
You could look into algorithms such as Tabu search, Simulated Annealing and Great Deluge and Hill Climbing. They are all based on similar ideas but some work better with some problems than others. For example if you have a very rough search space simulated annealing won't be the best and Hill Climbing usually only finds a local optimum.
The general architecture of the algorithms mentioned above and many other genetic algorithms and Metaheuristics is: select a neighbouring solution using a move operator (e.g. swapping the time of one or two or three events or swapping the rooms of two events etc...), check the move doesn't violate any hard constraints, use an acceptance strategy such as, simulated annealing or Great Deluge, to determine if the move is accepted. If it is keep the solution and repeat the steps until the termination criterion is met. This can be max time, number of iterations reached or improving move hasn't been found in x number of iterations.
Whilst this is running keep a log of the 'best' solution so when the algorithm is terminated you have the best solution found. You can determine what is considered 'best' based on how many soft constraints the timetable violates
Hope this helps!
Yes, we finally decided to treat the problem like optimization problem, not a classification one. Generally speaking, we want to facilitate the daily planning for self-learners based on books, articles and other online and offline resources by adopting the learning plan depending on their activity on the resource: monosnap.com/file/qYASQ74J5x2d9ZrsUrghvmqrlCDM6a It looks like one "course" and many subsrcibers receiving notifications when course owner adds new element to the timeline. We want to personalize it then.
– paus
Nov 30 at 9:18
I'm just trying to understand how time-consuming it will be to embed such sort of personalization if we don't have tests or other stuff, just past-present-future tasks and checkbox to mark it as done.
– paus
Nov 30 at 9:48
About constraints - the student maybe subscribed on several courses, and he has the "common" timetable where these elements are shown to him in the same way in chronological order. The elements may overlap each other by time.
– paus
Nov 30 at 12:25
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
I'm not sure I completely understand your problem but it sounds like you have a feasible timetable to begin with and you just need to improve it.
If so genetic algorithms will work very well, but I think representing everything as binary 'chromosomes' like in the link might not be practical.
There are many other ways you can represent a timetable, such as in a 2D array, or giving an event a slot number.
You could look into algorithms such as Tabu search, Simulated Annealing and Great Deluge and Hill Climbing. They are all based on similar ideas but some work better with some problems than others. For example if you have a very rough search space simulated annealing won't be the best and Hill Climbing usually only finds a local optimum.
The general architecture of the algorithms mentioned above and many other genetic algorithms and Metaheuristics is: select a neighbouring solution using a move operator (e.g. swapping the time of one or two or three events or swapping the rooms of two events etc...), check the move doesn't violate any hard constraints, use an acceptance strategy such as, simulated annealing or Great Deluge, to determine if the move is accepted. If it is keep the solution and repeat the steps until the termination criterion is met. This can be max time, number of iterations reached or improving move hasn't been found in x number of iterations.
Whilst this is running keep a log of the 'best' solution so when the algorithm is terminated you have the best solution found. You can determine what is considered 'best' based on how many soft constraints the timetable violates
Hope this helps!
I'm not sure I completely understand your problem but it sounds like you have a feasible timetable to begin with and you just need to improve it.
If so genetic algorithms will work very well, but I think representing everything as binary 'chromosomes' like in the link might not be practical.
There are many other ways you can represent a timetable, such as in a 2D array, or giving an event a slot number.
You could look into algorithms such as Tabu search, Simulated Annealing and Great Deluge and Hill Climbing. They are all based on similar ideas but some work better with some problems than others. For example if you have a very rough search space simulated annealing won't be the best and Hill Climbing usually only finds a local optimum.
The general architecture of the algorithms mentioned above and many other genetic algorithms and Metaheuristics is: select a neighbouring solution using a move operator (e.g. swapping the time of one or two or three events or swapping the rooms of two events etc...), check the move doesn't violate any hard constraints, use an acceptance strategy such as, simulated annealing or Great Deluge, to determine if the move is accepted. If it is keep the solution and repeat the steps until the termination criterion is met. This can be max time, number of iterations reached or improving move hasn't been found in x number of iterations.
Whilst this is running keep a log of the 'best' solution so when the algorithm is terminated you have the best solution found. You can determine what is considered 'best' based on how many soft constraints the timetable violates
Hope this helps!
answered Nov 30 at 2:06
Fridie3000
305
305
Yes, we finally decided to treat the problem like optimization problem, not a classification one. Generally speaking, we want to facilitate the daily planning for self-learners based on books, articles and other online and offline resources by adopting the learning plan depending on their activity on the resource: monosnap.com/file/qYASQ74J5x2d9ZrsUrghvmqrlCDM6a It looks like one "course" and many subsrcibers receiving notifications when course owner adds new element to the timeline. We want to personalize it then.
– paus
Nov 30 at 9:18
I'm just trying to understand how time-consuming it will be to embed such sort of personalization if we don't have tests or other stuff, just past-present-future tasks and checkbox to mark it as done.
– paus
Nov 30 at 9:48
About constraints - the student maybe subscribed on several courses, and he has the "common" timetable where these elements are shown to him in the same way in chronological order. The elements may overlap each other by time.
– paus
Nov 30 at 12:25
add a comment |
Yes, we finally decided to treat the problem like optimization problem, not a classification one. Generally speaking, we want to facilitate the daily planning for self-learners based on books, articles and other online and offline resources by adopting the learning plan depending on their activity on the resource: monosnap.com/file/qYASQ74J5x2d9ZrsUrghvmqrlCDM6a It looks like one "course" and many subsrcibers receiving notifications when course owner adds new element to the timeline. We want to personalize it then.
– paus
Nov 30 at 9:18
I'm just trying to understand how time-consuming it will be to embed such sort of personalization if we don't have tests or other stuff, just past-present-future tasks and checkbox to mark it as done.
– paus
Nov 30 at 9:48
About constraints - the student maybe subscribed on several courses, and he has the "common" timetable where these elements are shown to him in the same way in chronological order. The elements may overlap each other by time.
– paus
Nov 30 at 12:25
Yes, we finally decided to treat the problem like optimization problem, not a classification one. Generally speaking, we want to facilitate the daily planning for self-learners based on books, articles and other online and offline resources by adopting the learning plan depending on their activity on the resource: monosnap.com/file/qYASQ74J5x2d9ZrsUrghvmqrlCDM6a It looks like one "course" and many subsrcibers receiving notifications when course owner adds new element to the timeline. We want to personalize it then.
– paus
Nov 30 at 9:18
Yes, we finally decided to treat the problem like optimization problem, not a classification one. Generally speaking, we want to facilitate the daily planning for self-learners based on books, articles and other online and offline resources by adopting the learning plan depending on their activity on the resource: monosnap.com/file/qYASQ74J5x2d9ZrsUrghvmqrlCDM6a It looks like one "course" and many subsrcibers receiving notifications when course owner adds new element to the timeline. We want to personalize it then.
– paus
Nov 30 at 9:18
I'm just trying to understand how time-consuming it will be to embed such sort of personalization if we don't have tests or other stuff, just past-present-future tasks and checkbox to mark it as done.
– paus
Nov 30 at 9:48
I'm just trying to understand how time-consuming it will be to embed such sort of personalization if we don't have tests or other stuff, just past-present-future tasks and checkbox to mark it as done.
– paus
Nov 30 at 9:48
About constraints - the student maybe subscribed on several courses, and he has the "common" timetable where these elements are shown to him in the same way in chronological order. The elements may overlap each other by time.
– paus
Nov 30 at 12:25
About constraints - the student maybe subscribed on several courses, and he has the "common" timetable where these elements are shown to him in the same way in chronological order. The elements may overlap each other by time.
– paus
Nov 30 at 12:25
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431627%2fwhat-optimization-algorithm-is-more-suitable-for-timetable-rescheduling%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown