Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Распределение процессов

55K
20 декабря 2009 года
smart90
1 / / 20.12.2009
Помогите пожалуйста с алгоритмом.

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

Это вкратце, в принципе есть ещё методичка, находится она здесь: http://pvk170.files.wordpress.com/2009/09/2009-d181d0bfd0be-d0bbd0b0d0b1-1.doc

Суть алгоритма в следующем: расставить вначале задачи без учета количества процессоров, а затем на тех шагах, где количество задач больше чем количество процессоров, выполнять расположение задач различными способами (например задач 3, а процессоров 2. И эти 3 задачи располагаем на двух процессорах всеми возможными вариантами).

Что сделано:
Задачи записаны в виде структур (время выполнения; зависимые задачи; выполнен/выполняется/не выполнен).
Процессоры тоже в виде структур (занят/свободен; номер выполняемой задачи; время занятости).

Без учета ограниченного количества процессоров всё работает.

Проблема с перебором, как сделать так, чтобы был в виде функции, вызываемой рекурсивно. То есть как реализовать сам перебор?

Заранее благодарю за помощь!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог