Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpora_ROD_1.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Билет №21

1. Целочисленное линейное программирование. Пример. Целевая функция. Система ограничений

Пусть N={1,…n} - множество планируемых операций.

Бинарное отношение H непосредственного предшествования операций (если (i,j)H, то i непосредственно предшествует j) строится в результате анализа информационных зависимостей между операциями

Отношение H представляется конечным ориентированным графом GH.

Минимальный шаг Si выполнения операции i определяется по плану, генерируемому ASAP.

Максимальный шаг Li выполнения операции i определяется по плану, генерируемому ALAP.

Число используемых в плане процессоров типа k есть bk при k=1,…,TYPES.

Стоимость процессора типа k определяется величиной сk.

Обозначим через xij двоичную переменную, принимающую значение 1 в случае, если операция i выполняется на шаге j, и принимающую значение 0 в случае, если операция i не выполняется на шаге j.

Рассмотрим задачу построения обыкновенного плана, имеющего минимальную стоимость при заданном числе Т шагов управления (time-constrained scheduling). Стоимость выразим суммарной стоимостью используемых планом процессоров всех типов.

Эта задача формулируется в виде следующей задачи целочисленного линейного программирования:

Целевая функция:

Система ограничений:

при 1jT, 1kTYPES,

при 1in,

при (i,j)H.

Ограничение (1) вытекает из того факта, что на каждом шаге число используемых процессоров типа k не должно превышать число bk имеющихся процессоров этого типа.

Ограничение (2) выражает возможность выполнения любой операции ровно на одном шаге управления (обыкновенное планирование).

Ограничение (3) формализует тот факт, что операция j должна выполняться на шаге с номером большим, чем номер шага, на котором выполняется операция i, в случае, если операция i предшествует операции j.

2. Определение интерфейсов в С++

Способность к унифицированной работе с разными компонентами известна как полиморфизм (polymorphism). Открытое (public) наследование от чисто абстрактного базового класса называется наследованием интерфейса (interface inheritance), так как производный класс наследует лишь описания функций. Вместо определения интерфейса как класса можно использовать следующее определение из заголовочного файла objbase.h Microsoft Win32 Software Development Kit (SDK):

#define interface struct

Определение использует ключевое слово struct, а не class. Благодаря этому члены структуры автоматически имеют открытый доступ, так что не требуется ключевое слово public. Чтобы стать настоящими интерфейсами в СOM, интерфейсы должны наследовать стандартный интерфейс IUnknown.

Задача - Привести пример многошагового плана

Многошаговое планирование на базе asap

Тип – планирование на достижимость.

Исходные данные:

  1. Граф непосредственного предшествования операций.

  2. Времена t(i), iN выполнения операций.

  3. Время tstep шага управления .

Результирующие данные:

  1. Шаги управления.

  2. Распределение операций по шагам управления.

  3. Число процессоров каждого типа.

Описание алгоритма:

  1. Планирование выполняется в цикле, начиная с первого шага и кончая последним шагом.

  2. Множество всех операций разбивается в процессе планирования на три подмножества: не спланированных операций, частично спланированных операций, полностью спланированных операций.

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

  4. Алгоритм завершает работу в случае полного размещения всех операций на введенных шагах управления.

  5. Для каждого шага управления выполняются следующие действия по планированию:

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

    2. Из множества всех операций выбираются не спланированные операции.

    3. Для каждой из не спланированных операций проверяется, все ли операции-предшественники спланированы на предшествующих шагах управления.

    4. Если да, то операция полностью или частично включается в текущий шаг, в противном случае остается не спланированной.

Рис. 1. Многошаговое планирование ASAP; t(1)= t(3)= t(5)= t(6)= t(8)=1; t(2)= t(4)= t(7)=2; tstep=1; общее время решения задачи 5 единиц (при простом планировании 8 единиц)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]