2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Посоветуйте подход для решения проблемы
Сообщение16.02.2016, 01:41 


02/02/09
17
Беларусь\Гомель-Минск
Есть некоторый человек и есть его конечный список дел (х1, х2 ..) на промежутке времени T.
У каждого дела есть конечный и короткий набор характеристик (читай ограничений о1, o2, o3, о4)
К несчастью, человек наш не идеален, и не всегда делает свои дела и для этого может быть множество причин (пространство, видимо, порядка N)

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

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

Какие бы подходы вы могли посоветовать применить для решения этой задачи. Спасибо.

 Профиль  
                  
 
 Re: Посоветуйте подход для решения проблемы
Сообщение16.02.2016, 02:19 
Заслуженный участник


27/04/09
28128
Доопределить спецификацию. :wink: Пока она слишком призрачна, чтобы что-то можно было предлагать.

 Профиль  
                  
 
 Re: Посоветуйте подход для решения проблемы
Сообщение16.02.2016, 11:05 
Заслуженный участник


06/07/11
5627
кран.набрать.грамота
Таск-трекер пишете?

Phoen1x в сообщении #1099773 писал(а):
Наша задача - построить такое расписание, которое максимизирует количество выполненных дел.
Если надо максимизировать только количество дел - тогда сортируете дела по количеству времени и вперед ставите самые короткие. Тогда, если лимит времени меньше, чем нужно на то, чтобы сделать все дела, сделаете за отведенное время максимум.
Phoen1x в сообщении #1099773 писал(а):
У каждого дела есть конечный и короткий набор характеристик (читай ограничений о1, o2, o3, о4)
Ограничения - это что? Ресурсы, которых на все дела не хватит? Задача о рюкзаке получается.
Phoen1x в сообщении #1099773 писал(а):
К несчастью, человек наш не идеален, и не всегда делает свои дела и для этого может быть множество причин (пространство, видимо, порядка N)
"Причины" - это отмазки что ли? Например, "забухал", "был не в настроении", "любимый котик заболел"? :wink: Если задачу выполнить не удается, то причина, как правило, - это нехватка ресурсов или внезапно возникшая подзадача, которую надо добавить в план. Я бы думал в этом направлении.
Phoen1x в сообщении #1099773 писал(а):
После каждого отрезка времени T у нас есть возможность получить обратную связь от человека, как он оценивает расписание и мы знаем, какие задачи выполненные, а какие нет. Очевидно, что с первого раза у нас не выйдет предложить оптимальный алгоритм, поэтому мы должны сделать систему способной пользоваться обратной связью, чтобы улучшать наше расписание для следующего периода.
А ограничения ваши как именно ограничивают исполнителя?

 Профиль  
                  
 
 Re: Посоветуйте подход для решения проблемы
Сообщение16.02.2016, 13:45 


02/02/09
17
Беларусь\Гомель-Минск
На мой взгляд ключевой вопрос в том, что у каждого свои причины почему дела не делаются. И в этом и заключается основная загвоздка - построить такой механизм обучения, который за относительно небольшое число экспериментов выявит главные факторы и предложит расписание, минимизирующее их влияние.

Второй фактор - задачи являются не строго фиксированными. Может так получится, что есть 10 задач, и как их не раскидывай, всё равно получится плохо, и вероятность не выполнить много дел будет высокой. А если одну из них вообще убрать или ослабить её ограничения - то всё становится гладко и аккуратно.

А максимизируем мы функцию полезности расписания для пользователя.

 Профиль  
                  
 
 Re: Посоветуйте подход для решения проблемы
Сообщение17.02.2016, 06:59 


11/12/14
893
Phoen1x в сообщении #1099857 писал(а):
А максимизируем мы функцию полезности расписания для пользователя.


Присоединяюсь к arseniiv.
Формализуйте используемые термины.
Что в этой задаче есть "функция полезности"?
Правильно заданный вопрос - половина ответа.

 Профиль  
                  
 
 Re: Посоветуйте подход для решения проблемы
Сообщение31.03.2016, 19:33 


02/02/09
17
Беларусь\Гомель-Минск
Попробовал повысить степень формальности, получилось нечто такое.

Есть некоторый человек и есть его конечный список дел (х1, х2 ..) на промежутке времени T.

У каждой задачи есть конечный набор характеристик (читай ограничений о1, o2, o3, о4) - например приоритет, сложность, стрессовость, длительность и т.д.

Человек наш не идеален, и не всегда делает свои дела и для этого может быть множество причин, поэтому [z1, z2, z3, z4, ..., zN] - факторы влияющие на выполнение задачи.
[Wz1, Wz2, Wz3, ..., WzN] - веса этих факторов.

F(z1, .., zN, Wz1, .., WzN) - функция-расписание, неявная функцию от факторов и их весов

[Px1(F), Px2(F), ..., PxN(F)] - вероятность выполнения дел x1, ..., xN при условии использования расписания F

K(Px(F)) - ступенчатая функция, которая возращает 0 если Px(F) < 0.4, 1 если 0.4 < Px(F) < 0.7, 2 если Px(F) > 0.7

Хочется построить такое расписание F(z1, .., zN, Wz1, .., WzN) - неявную функцию от факторов и их весов, которая будем максимизировать U(F) - функция полезности нашего расписания, которая, например, может выражаться в виде (K(Px1(F)) + K(Px2(F)) + ... + K(PxN(F))) / (s1 + ... + sN), где [s1, ..., sn] - некоторые штрафы за усталость.

И т.к. задача зависима от реального человека, время жизни которого конечно, мы не можем рассчитывать на проведение большого числа экспериментов. Поэтому нам нужно выработать некоторый итерационный процесс, который бы начал сходится к субоптимальной F за относительно небольшое число шагов, хотя бы скажем сотни. Ну или если это не возможно, то тогда просто сходится =0)

Надеюсь в таких терминах стало понятнее.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group