Не угадывай: сокращай варианты
Пересекать допустимые значения · Передавать следствия между ограничениями
В этом занятии
- Пересекать допустимые значения
- Передавать следствия между ограничениями
- Замечать пустую область вариантов
Пригодится: Рекомендуем сначала пройти «Короткий путь: по шагам или по цене?».
Разберёмся перед практикой+
Не угадывай: сокращай варианты
У переменной бывает область допустимых значений: например, свободный слот встречи — 1, 2 или 3. Каждое ограничение удаляет неподходящие варианты. Если А допускает 1 или 2, а дополнительное правило разрешает 2 или 3, пересечение оставляет только 2; выбирать по настроению уже нечего.
Следствие одного ограничения может усилить другое. Если А и Б должны различаться и А уже равно 2, значение 2 исключается из области Б. Повторяем такие шаги, пока области перестают меняться. Этот процесс называют распространением ограничений; каждый удалённый вариант должен иметь причину.
Пустая область означает, что при текущих требованиях решения нет. Но непустые области ещё не доказывают совместимость всех требований: несколько переменных могут конкурировать за одни и те же значения. Тогда нужен дальнейший разбор совместных назначений, а не проверка каждого списка отдельно.
Удобный черновик хранит возможные значения и объяснение исключений. При добавлении нового правила можно восстановить, где возник конфликт. Так исследователь получает управляемый поиск вместо перебора вслепую и отличает логическое следствие от временного предположения.
А ∈ {1, 2}, Б ∈ {2}, А ≠ Б. Какое значение остаётся у А?
- У Б только один разрешённый вариант: 2.
- Неравенство исключает 2 из области А.
- У А остаётся 1; это следствие требований, а не догадка.
Попробуйте самостоятельно
Запишите рассуждения в черновик или сделайте построение на бумаге. Эти задания для самостоятельной работы: автоматической проверки и XP за них пока нет.
- Запиши три переменные и передавай исключения до остановки; каждый шаг подпиши правилом.
- Придумай случай с непустыми областями, но без совместного решения.
Читайте и разбирайте пример в своём темпе. К практике можно перейти, когда будете готовы.