Методы оптимизации. Численные методы решения задач одномерной оптимизации. Связь с концепцией «разделяй и властвуй»

Nokia 08.02.2019
Nokia

На практике распространенной является ситуация (это, в частности, показывают рассмотренные примеры), когда множество 3) включает в себя более чем одно допустимое состояние системы . Если при этом удается получить сразу несколько вариантов планов, то можно пытаться выбрать из них лучший план с позиций критерия системы). Это метод ограниченного перебора рациональных планов.  


Однако метод простого перебора заранее разработанных вариантов имеет некоторые существенные недостатки. Во-первых, даже при сравнении большого числа проектных вариантов новой техники нет полной гарантии, что выбранный вариант действительно является оптимальным, так как выбор ограничен наличными вариантами. Во-вторых, увеличение числа проектных вариантов приводит не только к увеличению вероятности выбора оптимального варианта новой техники , но и сопровождается ростом объема проектных работ, которые останутся не внедренными в производство, так как реализуется лишь один вариант. Кроме того, увеличение числа возможных  

Это чрезвычайно сложная задача. Универсальный подход к ее решению состоит в методе последовательного перебора всех сочетаний проектов, поскольку проранжировать проекты в условиях ресурсных ограничений попросту невозможно.  

Как видно, описанный здесь метод решения , основанный на полном переборе вершин, является значительно более простым л эффективным, нежели непосредственное использование метода множителей Лагранжа . В то же время не следует считать, что решение задач линейного программирования является простым делом, состоящим просто в полном переборе вершин множества допустимых значений переменных. Для того чтобы понять это, достаточно заметить, что вершина множества допустимых точек (в том случае, когда это множество имеет внутренние точки) в задаче (4.22) - (4.24) связана с обращением в равенства п ограничений из их совокупности (4.23), (4.24). Таким образом, вообще говоря, число вершин множества (4.23), (4.24) может равняться числу различных сочетаний по п ограничений из общего числа т + п. Число различных сочетания  

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

Направленный перебор. Начнем с точки, удовлетворяющей ограничениям (ее можно найти простым перебором). Будем последовательно или случайно (метод случайного поиска) менять ее координаты на определенную величину А, каждый раз переходя в точку с более высоким значением целевой функции . Если выйдем на плоскость ограничения, будем двигаться по ней, находя одну из координат по уравнению ограничения. Затем движение по ребру (когда два ограничения-неравенства переходят в равенства)... Остановка - в вершине линейного многогранника. Решение найдено (с точностью до А если необходимо, в окрестности найденного решения проводим направленный перебор с шагом Д/2, Д/4 и т.д.).  

Найдем объем заказываемой партии (0, при котором минимизируется функция средних затрат склада за единицу времени, т.е. функция Z (Q). На практике величины Q часто принимают дискретные значения, например из-за использования транспортных средств определенной грузоподъемности в этом случае оптимальное значение (бога.) находят перебором допустимых значений Q. Мы будем считать, что ограничений на принимаемые значения Q нет, тогда задачу на минимум функции Z (Q) можно решить методами дифференциального исчисления  

СИМПЛЕКСНАЯ ТАБЛИЦА (

3) Выбор математического аппарата. Математический аппарат, применяемый при построении модели, зависит от типа модели. Так для алгоритмизации расчетных моделей используются аналитические формулы любой сложности, системы линейных или дифференциальных уравнений (законы Кирхгофа, метод узловых токов и контурных напряжений).

Для алгоритмизации прогностических моделей используются известные алгоритмы расчетных моделей, с выделением исходных данных и прогнозируемых параметров системы.

Для математического описания оптимизационных моделей применяются специальные математические методы - методы оптимизации.

3. Третий этап - реализация построенного алгоритма модели на ЭВМ.

4. Исследование результатов численного моделирования, оценка их адекватности, и общей пригодности модели для использования.

5. Интерпретация результатов моделирования и принятие решения об использовании математической модели или необходимости ее развития. Здесь определяется жизненный цикл модели и необходимость актуализаций модели, то есть изменения ее параметров в связи c изменением условия функционирования.

Методы оптимизации

Люди, приступая к осуществлению своих мероприятий, оценивают над их последствия и принимают решения, выбирая тем или другим образом зависящие от них параметры - способы организации мероприятий и процессов. В теории принятия решений используются оптимизационные модели и решаются задачи оптимизации.

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

За критерий оптимальности принимается некоторая функция F(x) , называемая целевой функцией. Целевая функция аналитически выражает зависимость оптимизируемого показателя от некоторых параметров x, значения которых можно изменять, называемых управляемыми параметрами

хi , i = 1,2,...,n.

Управляемые параметры xi являются независимыми друг от друга и в процессе оптимизации могут изменяться в известных пределах (допустимой области) Dx . Аналитически область допустимых значений может задаваться аналитически в виде набора функций

Ψ k (x 1 ,...,x n )= 0

В общем виде математическую задачу оптимизации можно сформулировать следующим образом:

Минимизировать (максимизировать) целевую функцию с учетом ограничений на управляемые переменные.

Под минимизацией (максимизацией) функции n переменных F(x)=F(x1 , ... ,xn ) на заданном множестве Dx понимается определение глобальног минимума (максимума) этой функции на заданном множестве Dx .

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

Максимизация целевой функции (F(x) -> max) эквивалента минимизации противоположной величины (−F(x) -> min), поэтому можно рассматривать только задачи минимизации.

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

Численные методы решения задач одномерной оптимизации

Задачи одномерной минимизации представляют собой простейшую математическую модель оптимизации, в которой целевая функция зависит от одной переменной, а допустимым множеством является отрезок вещественной оси:

F(x) -> min , x принадлежит .

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

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

Большим достоинством прямых методов является то, что от целевой функции не требуется дифференцируемости и, более того, она может быть не задана в аналитическом виде. Единственное, на чем основаны алгоритмы прямых методов минимизации, это возможность определения значений F(x) в заданных точках.

Самым слабым требованием на функцию F(x), позволяющим использовать эти методы, является ее унимодальность (наличие одного минимума в области допустимых значений). Поэтому далее будем считать функцию F(x) унимодальной на отрезке .

Метод перебора

Метод перебора или равномерного поиска является простейшим из прямых методов минимизации и состоит в следующем.

Разобьем отрезок на n равных частей точками деления:

xi =A+i·(B − A)/n, i=0,...n

Вычислив значения F(x) в точках xi , путем сравнения найдем точку xm , где m - это число от 0 до n, такую, что

F(xm ) = min F(xi ) для всех i от 0 до n.

Погрешность определения точки минимума xm функции F(x) методом перебора не превосходит величины ε = (B − A)/n.

Метод дихотомии

Метод применяется для нахождения экстремума-максимума или экстре- мума-минимума нелинейных одномерных унимодальных целевых функций.

Суть метода в следующем. Пусть целевая функция F(х) задана на интервале A≤ x ≤ B. Отрезок на каждом этапе делится пополам. За первые две поиско-

чения целевой функции F(x) в точках x1 , x2 уточняется направление поиска. Если отыскивается экстремум-минимум и F(х1 ) < F(х2 ), то смещается правая граница первоначального интервала неопределенности , т.е. полагается В = x2 , если F(х1 ) > F(x2 ) , то смещается левая граница А = x1 . Если новый интервал неопределенности [В−А] больше заданной погрешности решения ε, то де-

ление пополам продолжается. Если B−A ≤ ε, то решение получено x* =A + 2 B , F(x) = F(x*).

Метод Фибоначчи

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

Nn =Nn-1 +Nn-2 , при N1 =N2 =1.

Первоначальный интервал неопределенности [В−А] принимается пропорциональным некоторому числу Фибоначчи Fn , определенному в зависимости

Задачи поиска предназначены для определения нахождения элемента, обладающего заданным свойством, в определенной совокупности данных, в частности, в массиве.

Линейный поиск.

Поиск наибольшего и наименьшего элемента в массиве.

Дан ряд чисел , , …, , …, . Разработать алгоритм поиска наибольшего и наименьшего числа в этом ряду с указанием номера (индекса) его расположения.

Очевидный способ поиска наибольшего (наименьшего) числа в заданном ряду n чисел включает следующие действия. Взять первое число ряда и сказать, что оно наибольшее (наименьшее), а индекс его равен 1. Затем взять второе число ряда и сравнить с предполагаемым максимальным (минимальным) первым числом. Если второе число больше предполагаемого (максимального) первого числа, взять третье число ряда и сравнить с первым. Так следует действовать до тех пор, пока не будет выбрано последнее число. В результате на месте первого числа окажется наибольшее (наименьшее) число с указанным его номером в ряду чисел.

Блок – схема алгоритма поиска наибольшего и наименьшего элемента на рис.18.

Рис. 18 Алгоритм нахождения наибольшего и наименьшего элемента в линейном массиве

Программа на языке Pascal представлена в Приложении 1, MaxMin.pas.

Бинарный поиск.

Метод бинарного поиска можно применять уже в отсортированном массиве. Допустим, что массив А отсортирован в порядке не убывания. Это позволяет по результату сравнения со средним элементом массива исключить из рассмотрения одну из половин. С оставшейся частью процедура повторяется. И так до тех пор, пока не будет найден искомый элемент или не будет построен весь массив.

Рассмотрим алгоритм бинарного поиска на примере.

Пример. Пусть X = 6, а массив А состоит из 10 элементов:

3 5 6 8 12 15 17 18 20 25.

1-й шаг. Найдем номер среднего элемента среднего элементов: m = = 5.

3 5 6 8 12 15 17 18 20 25.

2-й шаг. Рассматриваем лишь первые 4 элемента массива, находим индекс среднего элемента этой части: m = = 2.

6 > А, следовательно, первый и второй элементы из рассмотрения исключаются:

3 5 6 8 12 15 17 18 20 25 ;

3-й шаг. Рассматриваем два элемента, значение m = = 3.

3 5 6 8 12 15 17 18 20 25 ;

А = 6. Элемент найден, его номер – 3.

Блок - схема алгоритма бинарного поиска на рис.19:




Программная реализация бинарного поиска представлена в Приложении 1, Binar.pas.

Случайный поиск.

Организация поиска k -го элемента в неупорядоченном массиве X возможна следующим образом. Выби­рается случайным образом элемент с номером q. Массив X раз­бивается на три части: элементы, меньшие X [q ], равные X [q ]и большие X [q ]. А затем, в зависимости от количества элементов в каждой части, выбирается одна из частей для дальнейшего поиска. Теоретическая оценка числа сравнений имеет порядок k*N, т. е. для худшего случая N 2 , но на практике он значительно быстрее.


СЛОЖНОСТЬ АЛГОРИТМОВ

Характеристики алгоритма, которые влияют на его применимость, принято называть характеристиками сложности алгоритма. Среди характеристик сложности наиболее важными являются две, характеризующие ресурсы исполнителя: время и память. Необходимо знать, как долго будет выполняться алгоритм и хватит ли ресурса памяти для этого. Время зависит от того, кто является исполнителем (человек, вычислительное устройство, компьютер), и от того, насколько быстро он делает операции (разные компьютеры обладают разной производительностью). Так как нужна объективная характеристика алгоритма, не зависящая от исполнителя, то вместо времени исполнения алгоритма будем рассматривать число шагов t выполнения алгоритма. Если – среднее время одного шага исполнителя, то фактическое время работы алгоритма для этого исполнителя.

Таким образом, t есть характеристика алгоритма, не зависящая от особенностей исполнителя, и потому математическая характеристика сложности алгоритма. Память S, используемая алгоритмом, также зависит от особенностей исполнителя. Если на каждом шаге алгоритма используется не более µ единиц памяти, то S ≤ µ · . Эта оценка очень грубая, так как t может значительно превосходить S. В большинстве случаев в качестве характеристики сложности алгоритма применяется характеристика t – число шагов выполнения алгоритма.

Трудоемкость алгоритмов.

Итак, зависит от исходных данных задачи. Зависимость эту не всегда возможно анализировать непосредственно. Вследствие этого целесообразно будет определить временные рамки выполнения алгоритма (максимальное и минимальное время), сколько в среднем будет выполняться алгоритм (среднее время). Но для любых вариантов задачи время (число шагов) ничем не ограничено. Так, при сортировке массива время, как правило, зависит от длины массива и растет с ростом числа элементов массива. Принято входные данные алгоритма характеризовать одним параметром или несколькими параметрами. Одной из таких характеристик является объем входных данных – число элементов входных данных. Эта характеристика объективно характеризует входные данные так же, как и число шагов объективно характеризует исполнение алгоритма. В свою очередь, устанавливают зависимость объема входных данных от одного или нескольких параметров, характеризующих задачу. Так, в задаче сортировки массива таким параметром является длина n массива.

Так как число шагов алгоритма зависит не только от выбранных в задаче параметров , характеризующих объем входных данных но и от других характеристик входных данных
, то можно ввести оценку по всем этим характеристикам. Оценка наибольшего числа шагов, необходимых для выполнения алгоритма, в зависимости от параметров P:

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

и оценку среднего числа шагов, которую называют средней трудоемкостью:

где k – число вариантов других характеристик входных данных.


Трудоемкость алгоритма позволяет оценить время выполнения алгоритма при решении той или иной задачи:

При этом коэффициент статистически определяется для исполнителя или оценивается некоторой константой. Однако точный вид зависимости T(n) от аргумента n часто очень трудно установить. Поэтому вместо установления вида функции для трудоемкости оценивается быстрота роста этой функции при помощи некоторой простой функции f(n).

Говорят, что T(n) = O(f(n)), если |T(n)| ≤ C|f(n)| для всех значений n > n 0 . Такая оценка роста функции T(n) является односторонней, так как функция f(n) может расти быстрее. Лучше оценивать рост трудоемкости функцией f(n), имеющей тот же порядок роста, т. е. также |T(n)| ≥ C1|f(n)|. В этом случае пишут

T(n) = Θ(f(n)) и говорят, что рост T(n) оценивается ростом f(n). Наиболее простыми функциями, оценивающими рост трудоемкости, являются полиномы

В случае T(n) = Θ(p(n)), учитывая, что p(n) = Θ(n k), получаем T(n) = Θ(n k). Говорят, что в этом случае трудоемкость полиномиальна или алгоритм имеет полиномиальную трудоемкость. При k = 1 T(n) = Θ(n) и алгоритмы принято называть алгоритмами с линейной трудоемкостью.

Если есть два алгоритма A1 и A2 решения некоторой задачи и оба имеют полиномиальную трудоемкость, причем k1 < k2 , то говорят, что первый алгоритм имеет меньшую трудоемкость. Но меньшая трудоемкость не означает, что время решения задачи первым алгоритмом будет меньше, чем вторым. Так, пусть

Тогда при n < 10 оказывается, что время решения задачи для первого алгоритма больше, чем для второго. Однако, из определения ясно, что найдется такое n 0 (в примере n 0 = 10), что время решения задачи при n > n0 будет всегда меньше для первого алгоритма.

Трудоемкость алгоритма может иметь скорость роста меньшую, чем линейная. Например, или .

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

Причина, по которой используются только эти два названия трудоемкости (полиномиальная и экспоненциальная), состоит в том, что алгоритмы полиномиальной трудоемкости, как правило, эффективны, если показатель степени у полинома не слишком большой. А алгоритмы экспоненциальной трудоемкости не являются эффективными, так как время вычисления по этим алгоритмам растет очень быстро. В таблице показана скорость нарастания времени работы алгоритмов различной трудоемкости в секундах на компьютере с быстродействием 10 6 оп/сек.

n
0.00001 0.00002 0.00003 0.00004 0.00005
0.0001 0.0004 0.0009 0.00016 0.00025
0.001 0.008 0.0027 0.0064 0.125
0.1 3.2 24.3 1.7 мин 5.3 мин
0.001 1.0 17.9 мин 12,7 дн 35,7 лет
0.059 58 мин 6.5 лет 385500 лет 200 лет

При нескольких параметрах входных данных трудоемкость полиномиального алгоритма растет как полином от нескольких аргументов. Например,

Оценивание трудоемкости алгоритмов.

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

Циклическая структура алгоритма ведет к повторению выполнения его частей, что влияет на общее число шагов выполнения, т. е. на трудоемкость. Следует оценить для каждого цикла, от каких параметров задачи зависит число повторений цикла и как оно растет с ростом этих параметров.

Если цикл B с числом повторений n(B) вложен в цикл A с числом повторений n(A) и циклы независимы (число повторений цикла B не зависит от выполнения цикла A ), то общее число повторений цикла B с учетом повторений цикла A составляет n(A) · n(B).

Отсюда правило: для вложенных независимых циклов их трудоемкости перемножаются Θ(AB) = Θ(A) · Θ(B).

Если вложенные циклы не являются независимыми, т. е. число повторений внутреннего цикла n i (B) зависит от номера i повторения при выполнении внешнего цикла, то нужно проанализировать, как зависит общее число повторений внутреннего цикла от параметров задачи.

Если циклы не являются вложенными, то трудоемкость определяется наибольшей из трудоемкостей циклов

Θ(A + B) = Θ(A) + Θ(B) = max{Θ(A), Θ(B)}.

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

Рассмотрим примеры оценивания трудоемкости на примере алгоритма сортировки массива методом «пузырька». Блок – схема алгоритма сортировки методом «пузырька» см. рис. 15

Алгоритм содержит вложенные циклы. Внешний цикл, в случае массива входных данных, упорядоченного по убыванию, будет выполняться максимальное число раз: n − 1 , а в случае входного массива, упорядоченного по возрастанию, будет выполняться только 1 раз. Внутренний цикл во втором случае выполняется n − 1 раз, а в первом случае циклы зависимы, но, внутренний цикл в среднем выполняется n/2 раз. Поэтому максимальная трудоемкость (входные данные первого случая) оценивается как

Θ(n) · Θ(n) = Θ(n 2) ,

а минимальная трудоемкость (входные данные второго случая) – как

Θ(1) · Θ(n) = Θ(n).

Во втором разделе рассмотрены методы сортировки элементов массива: метод простого выбора, метод «пузырька», сортировка слиянием и вставками. Разобран типовой пример нахождения максимального и минимального элементов в массив и принцип бинарного поиска в упорядоченном массиве. Для закрепления навыков создания алгоритмов сортировки можно рекомендовать задания для самостоятельной работы.


Похожая информация.


Метод перебора - это самый простой способ решения любой задачи. Проще, наверное только метод подбора Если сразу подобрать (по наитию) ответ не получается, а неизвестных в задаче больше, чем накладываемых условий, то метод полного перебора - самое то. Конечно, для начала нужно убедиться, что все остальные варианты решения не подходят, и наложены все явные и неявные условия для ограничения перебираемых комбинаций, иначе время перебора всех возможных вариантов устремится к бесконечности.

Рассмотрим пару примеров применения метода перебора в решении различных задач.

Перебор последовательности

Допустим, нам встретилась последовательность цифр 141526418, и мы знаем, что в ней зашифровано латинскими буквами некое слово. Какой самый простой способ зашифровать слово? Конечно же, использовать шифр замены ! Число цифр нечётное, значит хотя бы одна буква закодирована всего одной цифрой. Но как отделить буквы первой десятки от последующих, кодируемых двумя цифрами? 14 - это AD или N? Вот тут-то нам и пригодится метод перебора. Переберём все комбинации из одной-двух цифр из диапазона .

В последовательности 141526418 можно выделить следующие удовлетворяющие нашим условиям комбинации: 1,2,4,5,6,8,14,15,18,26. Эти числа соответствуют буквам A,B,D,E,F,H,N,O,R,Z. Комбинации 41, 52 и 64 нам не подходят, так как в латинице всего 26 букв.

Перебирать будем так: сначала возьмём самую развёрнутую последовательность, где все буквы из первого десятка, а затем будем по очереди увеличивать используемые числа, то есть заменять последовательности 1-4 на 14, 1-5 на 15, 1-8 на 18, 2-6 на 26, перебирая все возможные комбинации.

    1-4-1-5-2-6-4-1-8 = ADAEBFDAH

    1-4-1-5-2-6-4-18 = ADAEBFDR

    1-4-1-5-26-4-1-8 = ADAEZDAH

    1-4-1-5-26-4-18 = ADAEZDR

    1-4-15-2-6-4-1-8 = ADOBFDAH

    1-4-15-2-6-4-18 = ADOBFDR

    1-4-15-26-4-1-8 = ADOZDAH

    1-4-15-26-4-18 = ADOZDR

    14-1-5-2-6-4-1-8 = NAEBFDAH

    14-1-5-2-6-4-18 = NAEBFDR

    14-1-5-26-4-1-8 = NAEZDAH

    14-1-5-26-4-18 = NAEZDR

    14-15-2-6-4-1-8 = NOBFDAH

    14-15-2-6-4-18 = NOBFDR

    14-15-26-4-1-8 = NOZDAH

    14-15-26-4-18 = NOZDR

Итого получили 16 вариантов. Единственное читаемое слово NOZDR (кому читаемое, а кому и нет ), получилось в самом конце. Оно и будет ответом. Вот если бы в самом начале была подсказка, что из последовательности 141526418 должно получиться 5 букв, то тогда задача решится однозначно. И перебор будет не нужен, потому что разбить на 5 букв последовательность 141526418 можно только одним единственным способом. Но такой подсказки не было, и метод перебора пригодился.

Перебор решений при недостатке условий

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

Учитель на уроке математики задал ученикам такую задачу: «У матери три дочери. Произведение возрастов дочерей = 40, сумма возрастов равна числу учеников в классе. Каков возраст каждой из дочерей?» Ну, ученики по-быстрому посчитали, сколько их всего в классе, и стали решать задачу. Решали-решали… Не решается. Попросили у учителя подсказку. Учитель подумал и говорит: «А, точно! У младшенькой голубенькие глазки!» . Ученики обрадовались, и решили задачу. А теперь вопрос вам: сколько же лет каждой из дочерей?

Если решать задачу в лоб (AxBxC=40, A+B+C=D, голубенькие глазки), то сразу наталкиваешься на кучу неизвестных и недостаток условий. 4 неизвестных, два уравнения и ещё голубенькие глазки!!! Как известно, сколько неизвестных, столько должно быть и независимых условий. У нас в задаче два нормальных условия и одно непонятное. Как же её решать?

А методом перебора! Во-первых, такие задачи по умолчанию решаются целочисленно. Найдём все комбинации из трёх целых чисел, произведение которых даёт 40. Заодно посчитаем сумму этих чисел. Оказывается, таких комбинаций не так уж и много - всего шесть.

    1x1x40=40, 1+1+40=42

    1x2x20=40, 1+2+20=23

    1x4x10=40, 1+4+10=15

    1x5x8=40, 1+5+8=14

    2x2x10=40, 2+2+10=14

    2x4x5=40, 2+4+5=11

Если бы учеников в классе было 42, 23, 15 или 11, то они бы сразу решили задачу. Но у них возникло затруднение - их было 14, и они никак не могли выбрать, какой же из вариантов 1-5-8 или 2-2-10 подходит. Но когда учитель сказал про голубые глазки, им это помогло определиться. Голубые глазки были у младшенькой, то есть была самая младшая дочь, а в варианте 2-2-10 младшеньких две. Значит, нам подходит только четвёртый вариант 1-5-8.

Казалось бы, практически нерешаемая задача, но метод перебора позволил её очень быстро решить. Поэтому не надо бояться решать задачи перебором. Довольно часто число возможных вариантов не так велико, как кажется вначале.



Рекомендуем почитать

Наверх