Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Алгоритмы и теория программирования


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Алексеев Владимир Николаевич
Статус: Мастер-Эксперт
Рейтинг: 294
∙ повысить рейтинг »
CradleA
Статус: Мастер-Эксперт
Рейтинг: 87
∙ повысить рейтинг »
solowey
Статус: Академик
Рейтинг: 62
∙ повысить рейтинг »

Алгоритмы и теория программирования

Номер выпуска:242
Дата выхода:29.07.2021, 21:15
Администратор рассылки:Зенченко Константин Николаевич (Старший модератор)
Подписчиков / экспертов:2 / 17
Вопросов / ответов:3 / 4

Консультация # 68962: Здраствуйте. У меня такой вопрос, а точнее даже два, но по теме. I.Черкните словесно алгоритм Форда-Фалкерсона поиска макс.потока. II.Какие виды обхода графа есть кроме в глубину и в ширину. Заранее спасибо ответившим....
Консультация # 185340: Здравствуйте! У меня возникли сложности с таким вопросом: Помогите с решением некоторых вопросов теста Разработка масштабируемых программ для многоядерных архитектур 1.Если ускорение программы падает с увеличением числа процессоров, это говорит о том, что: программа хорошо масштабируется программа плохо масштабируется 2. Что ...
Консультация # 18967: Здравствуйте. Есть число предметов N и их веса: A1, A2, ... An. Нужно разделить эти предметы на 2 группы так, чтобы общие веса этих групп были наиболее близки. Как рационально можно это проделать?...

Консультация # 68962:

Здраствуйте. У меня такой вопрос, а точнее даже два, но по теме.
I.Черкните словесно алгоритм Форда-Фалкерсона поиска макс.потока.
II.Какие виды обхода графа есть кроме в глубину и в ширину.
Заранее спасибо ответившим.

Дата отправки: 28.12.2006, 20:13
Вопрос задал: Митрофанов Артем Борисович
Всего ответов: 1
Страница онлайн-консультации »


Консультирует ADSota:

Здравствуйте, Митрофанов Артем Борисович!

1. Алгоритм хорошо описан на http://algolist.manual.ru/maths/graphs/maxflows/Ford_Fulkerson.php

Консультировал: ADSota
Дата отправки: 29.12.2006, 10:32
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 185340:

Здравствуйте! У меня возникли сложности с таким вопросом:
Помогите с решением некоторых вопросов теста Разработка масштабируемых программ для многоядерных архитектур

1.Если ускорение программы падает с увеличением числа процессоров, это говорит о том, что:
программа хорошо масштабируется
программа плохо масштабируется

2. Что называют «бутылочным горлом» архитектуры фон Неймана
возникновение коллизий при обращении нескольких устройств к шине
образование очередей к разделяемому ресурсу
необходимость выборки данных в процессор даже в том случае, когда они не требуют обработки

3. Зависание потоков, вызванное обращением к критическому ресурсу, ведет к:
уменьшению производительности ПО
потере данных
уменьшению точности вычислений

4. Отношение теоретического ускорения работы многопоточной программы к практическому обычно больше 1, т.к.:
часто неправильно оценивается практическое ускорение
из-за дополнительных внешн их факторов, не учитываемых при теоретической оценке

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

6. Сколько пулов потоков можно организовать для процесса в ОС Windows:
1
2
3


7. Параллельный блок это:
сегмент программы, в которой каждый оператор выполняется после других
сегмент памяти, в котором несколько потоков могут выполняться одновременно

Дата отправки: 01.02.2012, 09:09
Вопрос задал: frox
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Асмик Гаряка (Советник):

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

В системе с плохой масштабируемостью добавление ресурсов приводит лишь к незначительному повышению производительности, а с некоторого «порогового» момента добавление ресурсов не даёт никакого полезного эффекта.
Ответ: плохо масштабируется

2
Бутылочное горло (иногда употребляется также заимствованный термин англ. bottleneck — ботлнек, батлнек) — выражение, используемое для описания самого узкого места в системе (ситуации, расположении и т.п.), ограничивающего перемещение чего-либо, по аналогии с горловиной бутылки, узость которой не позволяет вылить или высыпать всё её содержимое сразу, даже если её перевернуть.
Вот что говорил Джон Бэкус на церемонии вручения ему Тьюринговской премии в 1977 году: «Что такое компьютер по фон Нейману? Когда 30 лет назад Джон фон Нейман и другие предложили свою оригинальную архитектуру, идея показалась элегантной, практичной и позволяющей упростить решение целого ряда инженерных и программистских задач. И хотя за прошедшее время условия, существовавшие на момент ее публикации, радикально изменились, мы отождествляе м наши представления о компьютерах с этой старой концепций. В простейшем изложении фон-неймановский компьютер состоит из трех частей: это центральный процессор (CPU или ЦПУ), память и соединяющий их канал, который служит для обмена данными между CPU и памятью, причем маленькими порциями (лишь по одному слову). Я предлагаю назвать этот канал «бутылочным горлом фон Неймана».
В данном случае подходит больше всего возникновение коллизий при обращении нескольких устройств к шине, но точного описания нет. Бутылочным горлом является сущестование лишь одного канала передачи данных, а также сложность распараллеливания.

3)уменьшению производительности ПО
4) из-за дополнительных внешних факторов, не учитываемых при теоретической оценке
5)вызов функций по завершении запросов на асинхронный ввод-вывод
6)Это зависит от версии Windows. До Висты было возможно создавать 1 пул, в Висте и позже ограничений нет.
7)сегмент программы, в котором несколько потоков могут выпол няться одновременно

Консультировал: Асмик Гаряка (Советник)
Дата отправки: 01.02.2012, 13:15
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 18967:

Здравствуйте.
Есть число предметов N и их веса: A1, A2, ... An.
Нужно разделить эти предметы на 2 группы так, чтобы общие веса этих групп были наиболее близки.
Как рационально можно это проделать?

Дата отправки: 29.03.2005, 21:21
Вопрос задал: andrey
Всего ответов: 2
Страница онлайн-консультации »


Консультирует mvp:

Здравствуйте, andrey!
Вычисляем общий вес. Сортируем, например по возрастанию. Получаем массив P1, ..., Pn. Пусть это будет первая группа. Из неё извлекаем во вторую группу предмет, вес которого наиболее близок к суммарному пополам(но меньше либо равен). Если разница равна нулю - поделили поровну, всё. Если нет, то из первой группы выбираем предмет (если есть, если нет - конец) наиболее близкий по весу к разнице весов первой и второй группы пополам (но меньше либо равно). И т. д., пока разница не станет <= 1 или не найдутся предметы с меньшим, чем необходимо весом.
P. S. Массив лучше отсортировать, чтобы быстрее работало. В итоге, первая группа не легче второй, но разница в весе минимальна.

Консультировал: mvp
Дата отправки: 29.03.2005, 22:29
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует DSota:

Здравствуйте, andrey!
1. Находим предмет с максимальным весом.
2. Если сумма весов в первой группе больше, добавляем его во вторую круппу.
Если меньше, добавляем его в первую группу,
Ну если равны - то тут по настроению
3. Если остался еще предмет - идем на пункт1.
"Алгоритмически":
Создаем 2 переменные и массив N элементов:
1-я переменная - общий вес первой группы
2-я переменная - общий вес второй группы
Каждый элемент массива (байт) - признак текущего веса предмета - скажем - 0 - он еще не распределен, 1-он уже переложен в 1-ю группу, 2-он уже переложен во 2-ю группу
1. находим максимальный элемент массива, у которого признак - 0
2. Если 1-я переменная (общий вес) больше 2-й, то 2-я переменная увеличиваеться на Ai (массу предмета), выставляеться признак 2 в массиве признаков
иначе 1-я увеличиваеться и выставляется признак 1
3. Проверяем массив признаков на наличие нулей - если есть, идем на пункт 1
4. Из массива признаков определяем, что куда переложили.

Консультировал: DSota
Дата отправки: 30.03.2005, 08:54
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное