Формула для определения приоритетности задач на основе веса и даты - PullRequest
2 голосов
/ 31 декабря 2011

Существует ли формула или алгоритм, который может расставлять приоритеты для элементов на основе веса и даты?Например, критический элемент всегда будет в верхней части списка, в то время как два обычных элемента будут расположены по приоритетам в зависимости от срока их оплаты.

Ответы [ 4 ]

3 голосов
/ 31 декабря 2011

Планирование - это одна из наиболее изученных областей информатики, которая удобна, потому что дает много предшествующего уровня техники, из которого вы можете извлечь уроки.

Возможно, самый простой подход - Самый ранний крайний срок - первый - когда вы планируете задачу с первым крайним сроком и работаете над ней, пока она не заблокируется. Затем работайте в ближайший крайний срок. Недостатком является то, что задачи с низким приоритетом, которые занимают много времени, могут блокировать задачи с более высоким приоритетом.

Возможно, стоит определить, должно ли ваше планирование составлять жесткое, твердое или мягкое - иногда имеет смысл полностью отбросить задачи и выполнить почти все вовремя, чем завершить все, кроме полсекунды. слишком поздно.

2 голосов
/ 31 декабря 2011

Да.Это можно сделать, определив функцию сравнения, которая сначала проверяет приоритет.Т.е.

// Returns n < 0, 0, or n > 1 if value1 is less than, equal to or greater
compare(value1, value2) {
  if(value1.priority != value2.priority) {
    return value1.priority - value2.priority;
  }
  return value1.date - value2.date;
}

В качестве альтернативы эта функция возвращает значение, рассчитанное по дате и приоритету, это можно использовать для сравнения задач и упорядочения их по приоритету (а затем по дате):

// Returns
task.GetValue() {
  return me.GetDateAsIntegerValue() + MAX_DATE_VALUE * me.GetPriority();
}

Но, как упоминалось sarnold , это очень хорошо изученная область.

1 голос
/ 31 декабря 2011

Другой способ взглянуть на это как на проблему ранжирования.Если вы берете эти два значения, вес и приоритет, в качестве входных данных, вы можете создать таблицу парных сравнений, которая разбивает элементы на их входные данные (вес и приоритет), а выходные данные являются относительными порядками.

Рассмотрим, скажем, элемент 42и пункт 69, обозначенный X42 и X69: если у вас есть вес и приоритет (W42, P42) и (W69, P69), вы хотели бы знать, должен ли X42 появиться до X69, после него или на равной позиции.Если у вас есть тренировочный набор, вы можете пометить, предпочтительнее ли один другому.

Здесь нам не хватает способа их сравнения.Очень простой метод заключается в использовании логистической регрессии на разнице, т.е. простой функции f ((W_A - W_B), (P_A - P_B)) или f ((W42 - W69), (P42 - P69)), в этомдело.Если результат превышает некоторый порог, то A предпочтительнее B, в противном случае B предпочтительнее A. Вы можете использовать это для сортировки результатов.

Как обычно, большинство результатов в Интернете не очень доступны дляначинающих.Вот короткая глава , которая может быть полезна для понимания логистической регрессии.Однако, если вы хотите более подробно рассмотреть такие вопросы, сайт статистики StackExchange будет лучше.

Вам нужно будет решить: (1) можно ли разложить то, на что вы смотрите, нааддитивная функция веса и приоритета, и, если да, (2) функция потерь или целевая функция, которую необходимо минимизировать, чтобы вы могли получить оптимальные параметры для этой аддитивной функции.Порядковая логистическая модель - это один выбор, порядковый пробит - другой, и существует множество других вариантов.Если вы не используете аддитивную функцию (т. Е. Линейную комбинацию), у вас будет сложный круг возможностей, поэтому лучше начать с чего-то простого.

0 голосов
/ 10 декабря 2012

Вы можете разделить задачи, оценив рейтинг воздействия 1-10 (10 - наивысший) и необходимый результат 1-10 (также 10 - наибольший)

Вы складываете числа вместе и делите на два. Результатом будет приоритет вашего задания 1-10 (наиболее важным является 10).

Пример:

  • Проверка электронной почты: результат воздействия 2 1 = 1,5
  • Позвоните потенциальному клиенту: результат воздействия 10 2 = 6

Исходя из этого примера, вызов клиента будет затем отнесен к более высокому приоритету, чем проверка электронной почты.

...