1ridipi — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
Строка 1: Строка 1:
{| class="wikitable" align="center" style="color: red; background-color: black; font-size: 56px; width: 800px;"
 
|+
 
|-align="center"
 
|'''НЕТ ВОЙНЕ'''
 
|-style="font-size: 16px;"
 
|
 
24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.
 
 
Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием.
 
 
Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей.
 
 
Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.
 
 
''Антивоенный комитет России''
 
|-style="font-size: 16px;"
 
|Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.
 
|-style="font-size: 16px;"
 
|[https://meduza.io/ meduza.io], [https://www.youtube.com/c/popularpolitics/videos Популярная политика], [https://novayagazeta.ru/ Новая газета], [https://zona.media/ zona.media], [https://www.youtube.com/c/MackNack/videos Майкл Наки].
 
|}
 
 
 
<div style="background-color: #ABCDEF; font-size: 16px; font-weight: bold; color: #000000; text-align: center; padding: 4px; border-style: solid; border-width: 1px;">Эта статья находится в разработке!</div>
 
<div style="background-color: #ABCDEF; font-size: 16px; font-weight: bold; color: #000000; text-align: center; padding: 4px; border-style: solid; border-width: 1px;">Эта статья находится в разработке!</div>
 
<includeonly>[[Категория: В разработке]]</includeonly>
 
<includeonly>[[Категория: В разработке]]</includeonly>

Текущая версия на 19:33, 4 сентября 2022

Эта статья находится в разработке!


Постановка задачи

Дан один станок на котором нужно выполнить [math]n[/math] работ. Для каждой работы известны моменты времени, когда можно начинать её выполнять - [math]r_{i}[/math] и когда необходимо закончить её выполнение - [math]d_{i}[/math]. Время выполнения [math]p_{i}[/math] у всех работ одинаково и равно одному. Необходимо узнать, можно ли построить расписание для этого станка.

Алгоритм

Идея алгоритма в том, чтобы из тех работ, которые уже можно выполнить, ставить в расписание ту у которой наименьшее [math]d_{i}[/math]. Если эта работа уже просрочена, значит расписание построить нельзя.

Пусть [math]S[/math] - множество ещё не включенных в расписание работ, к выполнению которых уже можно преступить. Изначально [math]S[/math] пустое. Отсортируем работы по порядку их появления.

Алгоритм [math]1 | r_{i}, d_{i}, p_{i}=1 | -[/math]

    [math]S:=\varnothing;[/math]
    [math]j\leftarrow1;[/math]
    [math]time\leftarrow1;[/math]
    [math]FOR[/math]  [math]i := 1[/math] [math]TO[/math] [math]n[/math] [math]DO[/math]
         [math]BEGIN[/math]
         [math]IF[/math] [math]S=\varnothing[/math] [math]THEN[/math]
              [math]BEGIN[/math] [math]time:=r_{j}[/math] [math]END[/math]
         [math]WHILE[/math] [math]time=r_{j}[/math] [math]DO[/math]
              [math]BEGIN[/math]
              Добавить [math]j[/math] в [math]S[/math]
              [math]j:=j+1;[/math]
              [math]END[/math]
         Пусть [math]k\in S[/math] и [math]d_{k}[/math] минимально
         [math]IF[/math] [math]d_{k}\le time[/math] [math]THEN[/math]
              Расписание составить невозможно
         [math]ELSE[/math]
              [math]BEGIN[/math]
              Удалить [math]k[/math] из [math]S[/math]
              [math]time:=time+1;[/math]
              [math]END[/math]
         [math]END[/math]

Сложность алгоритма [math]O(n\log n)[/math] если в качестве [math]S[/math] использовать структуру, которая позволяет поиск элемента с минимальным [math]d_{i}[/math] за [math]O(\log n)[/math].

Литература

  • Peter Brucker. «Scheduling Algorithms» — «Springer», 2006 г. — 379 стр. — ISBN 978-3-540-69515-8