What optimization algorithm is more suitable for timetable rescheduling?
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 |
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 |
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 '18 at 13:59
paus
asked Nov 22 '18 at 13:01
pauspaus
77931229
77931229
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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 '18 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 '18 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 '18 at 12:25
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
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 '18 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 '18 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 '18 at 12:25
add a comment |
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 '18 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 '18 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 '18 at 12:25
add a comment |
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 '18 at 2:06
Fridie3000Fridie3000
306
306
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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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.
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