Главная » Просмотр файлов » 1626435694-d107b4090667f8488e7fa1ea1b3d0faa

1626435694-d107b4090667f8488e7fa1ea1b3d0faa (844295), страница 8

Файл №844295 1626435694-d107b4090667f8488e7fa1ea1b3d0faa (Ершов 1977 - Введение в теоретическое программирование) 8 страница1626435694-d107b4090667f8488e7fa1ea1b3d0faa (844295) страница 82021-07-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

Не исключено, что он даже найдет индивидуальное доказательство этому примеру, но нам сейчас важно сделать другой, более общий вывод: ширина сечения уже не может быть для нас ориентиром в определении чвсла величин, требуемых для экономного распределения памяти. Все это, вместе взятое, окончательно хоронит попытку спасти нашу процедуру как способ наилучшего распределения памятиг $ ЬЗ. НАКОПЛЕНИЕ ФАКТОВ. ПРОГРАММЫ ОБШЕГО ВИДА 39 мы получаея с ее помощью некоторое распределение памяти, но уже не можем утверждать, что.оно наилучшее. Несовместимость. Однако суждение в такой негативной форме нас не устраивает.

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

Мы уже увидели, что для определения взаимной конкурент- ности связок 1нам уже пора заменить это случайно появившееся образное название на специальный термин — давайте называть это несовместимостью связок) нам не нужны имена величин: две связки несовместимы, если начальный оператор какого-нибудь маршрута, реализующего какую-нибудь информационную свяаь одной связки, является начальным или внутренним оператором какого-нибудь маршрута, реализующего какую-нибудь информационную связь другой связки 1извините за длинную фразу— зато совершенно точно!). Таким образом, информация о несовместимости по операторной схеме обнаруживается однозначно, а свобода выбора и неоднозначность результатов у нас получается при назначении величин на связки. Сама по себе неоднозначность не страшна: она дает возможность строить разные варианты распределения памяти. Для линейных программ она также не мешала нам найти наилучший результат: там мы знали заранее наименьшее число величин и как его достичь.

При попытке сохранить алгоритм в общем случае.мы себя привязывали к выбранному направлению движения по схеме и старались назначить величину новому результату немедленно по его обнаружении. Из-за сложной структуры связок, мы, так сказать, опережая события, «аабрасывалиэ имена величин на еще не пройденные участки схемы и тем самым, когда впоследствии попадали туда, окааывались в тесных рамках ранее сделанных выборов. Действуя «в малом», в окрестности одного сечения, мы пользовались частичной информацией о несовместимости только данного нового результата с его конкурентами, не имея общей картины о несовместимости связок для программы в целом. Так у нас появляется мысль о разбиении процедуры распределения памяти на две части: а) получение общей информации о несовместимости и б) на основе анализа общей информации о несовместимости выбор того или иного распределения памяти, желательно наилучшего.

Попробуем немедленно проверить эту идею на нашем примере 10. Нам надо в каком-то наглядном виде представить информацию о гл. 1. содегжАтильныи АБАлиз зАЛАчи несовместимости связок..Соберем ее сначала, так сказать, в буквальном виде.

Сначала связки надо обозначить. Обоаначим их символами операторов, чьи результаты начинают эти связки. Это будут: (вв1Д, (ев2, Ьз), 1у, +, аЬз. Мы имеем (вв1?) несовместим с (вв2, ?и) и аЬв (ев2, (п) несовместим с (вв1,/) и гу 1у несовместим с (вв2, ?п) и + + несовместим с гу и аЬа аЬз несовместим с + и (вв1,!) Эта таблица не очень наглядна,но мы улавливаем какую-то цикличность в ее строении, которую хотелось бы представить в более доступном обоарению виде. Цикл — это окружность — или замкнутая ломаная.

Замкнутая ломаная в свою очередь — это вершины и стороны. Что у нас вершины и чтб стороны? Сторона соединяет две вершины, понятие неЖ7 1а д совместимости относится к двум связкам. Хорошо( Мы обозначаем связки большими точками — вершинами а а ломаной, а вершины неав1/ 1 совместимых связок соединяем линией. Получаем рис. 1.8. Граф иесовместимостя. Автор вправе рассчитывать, что большинство читателей знакомо с мад тематическим понятием ааз + графа.

Мы его формально введем в следующей главе, Рис. 1.8. Наглядное оредставлеиие ии- а для новичков скажем, формации о несовместимости связок. что (неориентированный) граф состоит из вершин и ребер, их соединяющих. На чертеже вершины изображаются точками (или кружками), а ребра — соединительными линиями. Вершины, соединенные ребрами, называются снелснмми. Вернемся к нашей задаче. Граф на рис. 1.8 изображает сводные данные о совместимости и несовместимости связок информационных свяаей. Сам граф можно в связи с этим назвать графом несовместимости.

Вершинами графа являются связки. Смежными вершинами в графе являются несовместимые связки, и наоборот, любые две несмеяные связки являются совместимыми. Распределение памяти на графе несовместимости выглядит так, что надо $ ьз. ИАкопленив ФАктоВ. ИРОРРАммы ОВЩВГО ВИДА 41 каждой вершине сопоставить величину, но так, чтобы никакой паре смежных вершин не сопоставлялась бы одна величина. Экономия будет достигаться тем, что разным несмежным вершинам будет сопоставляться одна и та же величина. Опять-таки автор может рассчитывать, что часть читателей, прочитав условие задачи зкономии памяти в атой формулировке, усмотрит в ней прямую связь со знаменитой задачей теории графов — задачей о раскраске вершин графа: надо раскрасить вершины графа в наименьшее число красок так, чтобы никакая пара смежных вершин не оказалась раскрашенной одной краской.

Этот факт сам по себе очень интересен, но сейчас мы не будем отвлекаться, а опять вернемся к нашему примеру. Распределим память для наших связок. Так как они в графе несовместимости обраауют цикл, то все равно, с какой вершины начинать. Сопоставив Вершине (ав1,!) величину а, мы неизбежно сопоставим смежной вершине (вв2, Ьх) величину Ь, но следующей связке гл можем опять сопоставить а. Величины а и Ь при движении по часовой стрелке будут чередоваться.

Так будет, пока мы не подойдем к вершине аЬя, замыкающей цикл. Мы не только видим, что ей неизбежно придется сопоставить третью величину, но и понимаем, когда бы мы могли обойтись только двумя: если последняя вершина 2 будет смыкать цепочку четного числа вершин, то ее концам будут сопоставлены разные величины, н вершине 2 понадобится третья величина; если 'цепочка содержит нечетное число вершин„то ее концам сопоставлена одна величина, тогда вершине У можно сопоставить вторую величину. Как видно, у нас благодаря введению такой новой конструкции, как граф несовместимости, появляется источник доказательства минимального расходования памяти совершенно другой природы, уже очень косвенно связанный со структурой программы, но зато выдающий исходную информацию для распределения памяти в «чистой» форме, не обремененной никакими деталями.

Получив эту новую форму нам, естественно, будет интересно перепроверить, как сна работает дл)г разобранных цдмн ранее примеров зкономии памяти. Автор рекомендует читателям самостоятельно построить графы несовместимости для примиряв 4-9, честно предупредив, что им придется немного повозиться, чтобы изобразить их на рисунке достаточно красиво н наглядно, Для контроля и небольшого последующего обсуждения все графы изображены на рис. 1.9. Связки в примерах 1, 2 и 9 обозначены именами величин, использованных в начальном варианте программы.

Величины, выбранные прн зкономном распределении, помещаются рядом с соответствующими вершинамн графа. Приоры 3 и 4 пропущены, так как нам еще не ясно, как строить операторную схему для программ, содержащих операторы цикла. В примерах 5 и 6; 7 и Э Гл. 1, содержАтельныи АЫАлиз задАчн связки обозначаются именами операторов, вырабатывающих относящиеся к этим связкам результаты. Во всех случаях мннимаиьность числа величин, испольаованных для «раскраски» вершин графа несовместимости, очевидна. Обращает на себя внимание наличие в примерах 5, б и 9 своего рода ядер в графах — групп вершин, попарно смежных друг другу н поэтому требующих заведомо разных величин. Все остальные вершины существенно у Ыу аГ Рис. $.9. Графы несовместимости. а) Примеры $, 2. 6) Примеры 5, 6.

Характеристики

Тип файла
DJVU-файл
Размер
5,24 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6551
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее