Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[114]

Доказательство. Независимые в S множества, содержащие ж, получаются добавлением элемента ж к независимым в S подмножествам. При этом их веса отличаются ровно на w(x), так что опти-

Теорема 17.10 (правильность жадного алгоритма для матроидов).

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

Доказательство. Пусть М = (S,I) - матроид с весовой функцией w. В силу леммы 17.8 мы можем не принимать во внимание элементы ж £ S, для которых множество {ж} не независимо. Если ж £ S - первый из выбранных алгоритмом элементов, то лемма 17.7 показывает, что существует оптимальное подмножество ACS, содержащее ж. Теперь, согласно лемме 17.9, достаточно найти оптимальное подмножество в матроиде М, полученном из М стягиванием элемента ж (и добавить к нему ж). Дальнейшая работа алгоритма в сущности и представляет собой обработку матро-

[Более формальное рассуждение может быть таким. После любого числа итераций выполнен следующий инвариант цикла: (1) множество А независимо; (2) оптимальное множество можно искать среди множеств, являющихся объединением А с некоторыми из ещё не просмотренных элементов.]

Упражнения

17.4-1 Пусть S - конечное множество, к - натуральное число, Ik - семейство всех подмножеств S, содержащих не более к элементов. Покажите, что (S,Ik) - матроид.

17.4-2* Пусть Т - вещественная матрица, S - множество её столбцов, и подмножество ACS называется независимым, если оно линейно независимо в обычном смысле. Докажите, что получается матроид (называемый матричным, как мы уже говорили).

17.4-3* Пусть (S,I) - матроид. Пусть I - семейство всех таких подмножеств А С S, для которых S \ А содержит некоторое максимальное независимое подмножество ACS. Покажите, что пара (S,Ir) является матроидом. Заметим, что максимальные независимые подмножества (S,Xr) суть дополнения максимальных независимых подмножеств (S,X).

17.4-4* Пусть S = S\ U 5*2 U • • • U Sk - разбиение конечного множества S на непересекающиеся непустые части. Положим X = { А С S : А П Si\ 1 для г = 1, 2,..., к }. Покажите, что пара (S,X) является матроидом.

мальные множества соответствуют оптимальным.

ида М.


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

★ 17.5 Задача о расписании

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

Итак, предположим, что имеется конечное множество S, состоящее из заказов (tasks), каждый из которых требует ровно одну единицу времени для своего выполнения. Расписанием (schedule) для S называется перестановка множества S, задающая порядок выполнения заказов: выполнение первого заказа начинается в момент времени 0 и заканчивается в момент 1, выполнение второго заказа начинается в момент времени 1 и заканчивается в момент 2, и т. д.

В задаче о расписании для заказов равной длительности с единственным исполнителем, сроками и штрафами (scheduling unit-time tasks with deadlines and penalties for a single processor) исходными данными являются:

•множество S = { 1, 2,..., п }, элементы которого мы называем заказами;

•последовательность из п целых чисел d\, d2, , dn, называемых сроками (deadlines) (1 dt п для всех г, срок d{ относится к заказу номер г);

•последовательность из п неотрицательных чисел w\, w2, , wn, называемых штрафами (penalties) (если заказ номер г не выполнен ко времени di, взимается штраф гиг-).

Требуется найти расписание для S, при котором сумма штрафов будет наименьшей.

Заказ номер г просрочен (late) для данного расписания, если его выполнение завершается позже момента di, в противном случае заказ считается выполненным в срок (early). Всякое расписание можно, не меняя суммы штрафов, модифицировать таким образом, чтобы все просроченные заказы стояли в нём после выполненных в срок. В самом деле, если просроченный заказ у идёт раньше выполненного в срок заказа ж, то можно поменять их местами в расписании, и статус обоих заказов при этом не изменится.


Более того, каждое расписание можно, не меняя суммы штрафов, представить в каноническом виде (canonical form), а именно, так, чтобы все просроченные заказы стояли после выполненных в срок, а сроки для выполненных в срок заказов шли в неубывающем порядке. В самом деле, как мы видели, можно считать, что все просроченные заказы стоят после выполненных в срок. Если теперь выполнение непросроченных заказов номер г и j завершается в моменты времени к и к + 1 соответственно, но при этом dj < di, то можно поменять заказы местами, и оба по-прежнему не будут просрочены (коль скоро dj к + 1, то и подавно di > dj к + 1; заказу же номер j вообще ничего не грозит, поскольку по новому расписанию его будут выполнять раньше, чем по старому). Конечное число таких обменов приведёт расписание к каноническому виду.

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

Будем говорить, что подмножество ACS является независимым (independent), если для этого множества заказов можно составить расписание, по которому все заказы будут выполнены в срок. Обозначим через X семейство всех независимых подмножеств множества S.

Как выяснить, будет ли данное подмножество ACS независимым? Для каждого t = 1,2,..., га обозначим через Nt(A) количество заказов из множества А, для которых срок не превосходит t.

Лемма 17.11. Для всякого подмножества ACS следующие три условия эквивалентны:

1.множество А независимо,

2.для всех t = 1, 2,..., га имеем Nt(A) t,

3.если расположить заказы из множества А в порядке неубывания сроков, то все заказы будут выполнены в срок.

Доказательство. Если Nt(A) > t для некоторого t, то заказов, которые должны быть выполнены за первые t единиц времени, больше t и один из них непременно будет просрочен. Таким образом, (1) влечёт (2). Если выполнено (2), то г-ж по порядку срок окончания заказа не меньше г, и при расстановке заказов в этом порядке все сроки будут соблюдены. Следовательно, (2) влечёт (3). Импликация (3) => (1) очевидна.□

Условие (2) является удобным критерием независимости множества заказов (см. упражнение 17.5-2).



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203] [стр.204] [стр.205] [стр.206] [стр.207] [стр.208] [стр.209] [стр.210] [стр.211] [стр.212] [стр.213] [стр.214] [стр.215] [стр.216] [стр.217] [стр.218] [стр.219] [стр.220] [стр.221] [стр.222] [стр.223] [стр.224] [стр.225] [стр.226] [стр.227] [стр.228] [стр.229] [стр.230] [стр.231] [стр.232] [стр.233] [стр.234] [стр.235] [стр.236] [стр.237] [стр.238] [стр.239] [стр.240] [стр.241] [стр.242] [стр.243] [стр.244] [стр.245] [стр.246] [стр.247] [стр.248] [стр.249] [стр.250] [стр.251] [стр.252] [стр.253] [стр.254] [стр.255] [стр.256] [стр.257] [стр.258] [стр.259] [стр.260] [стр.261] [стр.262] [стр.263] [стр.264] [стр.265] [стр.266] [стр.267] [стр.268] [стр.269] [стр.270] [стр.271] [стр.272] [стр.273] [стр.274] [стр.275] [стр.276] [стр.277] [стр.278] [стр.279] [стр.280] [стр.281] [стр.282] [стр.283] [стр.284] [стр.285] [стр.286] [стр.287] [стр.288] [стр.289] [стр.290] [стр.291] [стр.292] [стр.293] [стр.294]