8.5.1. Повышение эффективности решения задачи о восьми ферзях
8.5.1. Повышение эффективности решения задачи о восьми ферзях
В качестве простого примера повышения эффективности давайте вернемся к задаче о восьми ферзях (см. рис. 4.7). В этой программе Y-координаты ферзей перебираются последовательно — для каждого ферзя пробуются числа от 1 до 8. Этот процесс был запрограммирован в виде цели
принадлежит( Y, [1, 2, 3, 4, 5, 6, 7, 8] )
Процедура принадлежит работает так: вначале пробует Y = 1, затем Y = 2, Y = 3 и т.д. Поскольку ферзи расположены один за другим в смежных вертикалях доски, очевидно, что такой порядок перебора не является оптимальным. Дело в том, что ферзи, расположенные в смежных вертикалях будут бить друг друга, если они не будут разнесены по вертикали на расстояние, превышающее, по крайней мере одно поле. В соответствии с этим наблюдением можно попытаться повысить эффективность, просто изменив порядок рассмотрения координат-кандидатов. Например:
принадлежит( Y, [1, 5, 2, 6, 3, 7, 4, 8] )
Это маленькое изменение уменьшит время, необходимое для нахождения первого решения, в 3-4 раза.
В следующем примере такая же простая идея, связанная с изменением порядка, превращает практически неприемлемую временную сложность в тривиальную.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Повышение квалификации
Повышение квалификации В этой главе мы привели примеры, которые могут быть полезными для продвинутых пользователей. Реестр неотделим от операционной системы, от понятия «компьютер», в которое мы вкладываем аппаратно-программный смысл. Обычная цель опытного
Повышение производительности системы
Повышение производительности системы Выше были описаны два способа повышения производительности системы: поддержка NFS ядром (совместно с программой knfsd) и использование асинхронного режима. (Необходимо заметить, что асинхронный режим записи повышает риск потери данных
Повышение цен – альтернативы
Повышение цен – альтернативы Никаких альтернатив! И вот почему. Мало кто из интернет-бизнесменов Рунета верит в действенность высоких цен. Большинство владельцев очень боятся встать на путь их повышения и никогда этого не делали.На самом деле покупатели
Повышение производительности
Повышение производительности Окно сведений о производительности (см. рис. 8.3) не только предоставляет информацию, но и позволяет несколько повысить общую производительность системы. Для этого в левой части окна есть следующие ссылки.• Управление автозагрузкой программ.
4.5. Задача о восьми ферзях
4.5. Задача о восьми ферзях Эта задача состоит в отыскании такой расстановки восьми ферзей на пустой шахматной доске, в которой ни один из ферзей не находится под боем другого. Решение мы запрограммируем в виде унарного отношения:решение( Поз)которое истинно тогда и только
8.5.2. Повышение эффективности программы раскраски карты
8.5.2. Повышение эффективности программы раскраски карты Задача раскраски карты состоит в приписывании каждой стране на заданной карте одного из четырех заданных цветов с таким расчетом, чтобы ни одна пара соседних стран не была окрашена в одинаковый цвет. Существует
8.5.4. Повышение эффективности зa счет добавления вычисленных фактов к базе данных
8.5.4. Повышение эффективности зa счет добавления вычисленных фактов к базе данных Иногда в процессе вычислений приходится одну и ту же цель достигать снова и снова. Поскольку в Прологе отсутствует специальный механизм выявления этой ситуации, соответствующая цепочка
Хватит ли восьми косвенных гипотез, описывающих преимущества полового размножения, чтобы объяснить возникновение пола? Дмитрий Шабанов
Хватит ли восьми косвенных гипотез, описывающих преимущества полового размножения, чтобы объяснить возникновение пола? Дмитрий Шабанов Опубликовано 11 января 2014 Парадоксальность полового размножения, о которой шла речь в моей предыдущей
Менеджмент, ориентированный на повышение эффективности
Менеджмент, ориентированный на повышение эффективности Чтобы оправдать ожидания акционеров и повысить ценность компании, менеджеры компании должны не только уметь сформулировать стратегию, но и претворить ее в жизнь. Управление в стоимостном отношении (Value-based management, VBM)
Размышления об эффективности
Размышления об эффективности [x]. Может ли элегантность и простота нанести удар по эффективности выполнения? Одна из причин широкого использования массивов состоит в том, что основные операции - доступ и изменение элемента - проходят быстро. Надо ли платить за каждый вызов
Повышение статуса идентификации
Повышение статуса идентификации И Бертильон, и Хершель понимали, что технологии идентификации в современном обществе могут использоваться с двумя целями. С одной стороны, эти технологии востребованы правоохранительными органами. Имея в своем распоряжении реестр