Я занимаюсь разработкой алгоритма для назначения, и я не уверен, что написал правильный алгоритм, не могли бы вы направить меня? Вопрос: Есть n студент S1, S2, ..., Sn и и n класс: G1, G2, ... Gn. Каждому учащемуся должен быть присвоен ровно один класс, и ровно один студент назначается на один класс. Если Tij - значение присвоения Si в Gj, я должен найти Q-подмножество T, которое является максимальным. (Я должен назначить рабочих для наилучшей возможной работы) Пример для этого вопроса: если у меня есть два студента S1 и S2, а также у меня есть 2 Grad G1 и G2, у меня есть, например, T12 = 12, T21 = 7, T11 = 9, Т22 = 16 подмножество должно быть Q = {Т12, Т22} Я написал следующий алгоритм (в Java):help для написания алгоритма
Algorithm studentG(J[],W[],V[][],x[][])
{
// I use heap data structure for solving this problem
// initial all x[][] = 0
ArrayList<Heap> students = new ArrayList<Heap>();
students = Heap(v[][]); // this method make a heap for each student,
for(int k = 0; k< J.length, k++)
{
Boolean test = false;
// this loop is for each student to assign each student to only one grade not more.
for(int m = 0; m< students.size(); m++)
{
If(students.get[m].root.getGrade() ==k && test == false){
test = true;
//I have assigned 1 to the feasible and 0 othrwise
x[m][k] = 1;
}else if(students.get[m].root. getGrade() != k){
Continue;
}else if(students.get[m].root. getGrade() == k && test == true){
students.get[m].remove(root);
students.get[m].heapify();
}
}
}
делает эту работу хорошо? Благодарю.