2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Приближенный алгоритм
Сообщение04.12.2006, 22:12 


20/11/05
12
Москва
Условие: Имеется m-процессорная система (процессоры не обязательно одинаковые, производительность их указывается). Необходимо выполнить n-работ (работы не обязательно одинаковые, время их работы указывается для процессора единичной производительности). Необходимо так распределить работы, чтобы наиболее загруженный процессор закончил выполнение как можно раньше.
Приближенный алгоритм вроде ясен (отсортировать работы и давать тому, кто раньше сможет закончить её выполнение). Вот только проблема с гарантированной оценкой алгоритма. Вроде как получается 4/3 (точно также , если бы процессоры были одинаковы), но как это доказать (или может не 4/3).

 Профиль  
                  
 
 
Сообщение05.12.2006, 02:18 
Модератор
Аватара пользователя


11/01/06
5702
Оценка не может быть константой, так как легко привести пример, когда она зависит от параметров задачи.

Рассмотрим случай двух процессоров с производительностью 1 и p>1 и двух задач со временем работы 1 и 2.
По алгоритму задача 2 отдается на выполнение второму процессору и ее выполнение потребует 2/p времени, вторая задача отдается первому процессору и ее выполнение потребует 1 времени.
Если же обе задачи отдать второму процессору, то потребуется (1+2)/p=3/p времени. Поэтому оценка алгоритма не меньше (1+2/p)/(3/p) = (p+1)/3, что растет с ростом p.

 Профиль  
                  
 
 
Сообщение05.12.2006, 09:19 


20/11/05
12
Москва
maxal
Алгоритм я думал следующий: работа отдается тому, кто после её выполнения затратит наименьшее время в сумме. Если есть 2 процессора 1 и p>1 и две задачи со временем работы 1 и 2 (задачи потом осртируме по не возрастанию). p может быть таким большим, что 2/p+1/p<1,т.е. обе работы пойдут второму процессору. Или вы имеете в виду другой алгоритм какой-то? При моем алгоритме оценка не доходит даже до 2-х (если на примерах смотреть). Но в таком я случае я не знаю, как это доказать для случая m-процессоров.

 Профиль  
                  
 
 
Сообщение05.12.2006, 15:57 
Модератор
Аватара пользователя


11/01/06
5702
Да, я просто сначала не понял вашего алгоритма.

На $m$ процессорах можно получить оценку снизу $\frac{2m-1}{m}.$ Для этого достаточно запустить алгоритм на $m$ одинаковых процессорах (производительности 1) $m(m-1)$ задач сложности 1 и одну задачу сложности $m.$ Алгоритм сначала распределит простые задачи по $m-1$ на каждый процессор, а затем на одном из них в довесок запустит сложную задачу. Затраченное время равно $2m-1.$ В оптимальном варианте надо запустить сложную задачу на одном процессоре, а простые распределить поровну между остальными, это потребует $m$ времени.

 Профиль  
                  
 
 
Сообщение05.12.2006, 18:02 


20/11/05
12
Москва
Задачи ведь отсортированы по не возрастанию. Значит мой алгоритм сначала даст одному процессору сложную задачу, а потом только простыми займется. В таком случае оценка 4/3 будет. А вот если процессоры разные... Оценка мне кажется 2, но как это доказать...

 Профиль  
                  
 
 
Сообщение06.12.2006, 16:25 
Модератор
Аватара пользователя


11/01/06
5702
См. статью Approximation algorithms for scheduling unrelated parallel machines.

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

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



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

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


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

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