Динамическое программирование решение задач в excel

Линейное программирование в Excel

В Excel 2007 для включения пакета анализа надо нажать перейти в блок Параметры Excel, нажав кнопку в левом верхнем углу, а затем кнопку «Параметры Excel» внизу окна:


Для того чтобы решить задачу ЛП в табличном процессоре Microsoft Excel , необходимо выполнить следующие действия:
1. Ввести условие задачи:
a) создать экранную форму для ввода условия задачи:
· переменных,
· целевой функции (ЦФ),
· ограничений,
· граничных условий;
b) ввести исходные данные в экранную форму:
· коэффициенты ЦФ,
· коэффициенты при переменных в ограничениях,
· правые части ограничений;
c) ввести зависимости из математической модели в экранную форму:
· формулу для расчета ЦФ,
· формулы для расчета значений левых частей ограничений;
d) задать ЦФ (в окне «Поиск решения» ):
· целевую ячейку,
· направление оптимизации ЦФ;
e) ввести ограничения и граничные условия (в окне «Поиск решения» ):
· ячейки со значениями переменных,
· граничные условия для допустимых значений переменных,
· соотношения между правыми и левыми частями ограничений.
2. Решить задачу:
a) установить параметры решения задачи (в окне «Поиск решения» );
b) запустить задачу на решение (в окне «Поиск решения» );
c) выбрать формат вывода решения (в окне «Результаты поиска решения» ).

Рассмотрим подробно использование MS Excel на примере решения следующей задачи.

Фабрика «GRM pic» выпускает два вида каш для завтрака — «Crunchy» и «Chewy». Используемые для производства обоих продуктов ингредиенты в основ­ном одинаковы и, как правило, не являются дефицитными. Основным ограничением, накладываемым на объем выпуска, является наличие фонда рабочего времени в каждом из трех цехов фабрики.

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

Цех Необходимый фонд рабочего времени
чел.-ч/т
Общий фонд рабочего времени
чел.-ч. в месяц
«Crunchy» «Chewy»
А. Производство 10 4 1000
В. Добавка приправ 3 2 360
С. Упаковка 2 5 600

Доход от производства 1 т «Crunchy» составляет 150 ф. ст., а от производства «Chewy» — 75 ф, ст. На настоящий момент нет никаких ограничений на возможные объемы продаж. Имеется возможность продать всю произведенную продукцию.

а) Сформулировать модель линейного программирования, максимизи­рующую общий доход фабрики за месяц.

б) Решить ее c помощью MS Excel.

Ввод исходных данных
Создание экранной формы и ввод исходных данных

Экранная форма для решения в MS Excel представлена на рисунке 1.

В экранной форме на рисунке 1 каждой переменной и каждому коэффициенту задачи поставлена в соответствие конкретная ячейка на листе Excel. Имя ячейки состоит из буквы, обозначающей столбец, и цифры, обозначающей строку, на пересечении которых находится объект задачи ЛП. Так, например, переменным задачи 1 соответствуют ячейки B4 (x1), C4 (x2), коэффициентам ЦФ соответствуют ячейки B6 (c1=150), C6 (c2=75), правым частям ограничений соответствуют ячейки D18 (b1=1000), D19 (b2=360), D20 (b3=600) и т.д.

Ввод зависимостей из формальной постановки задачи в экранную форму

Для ввода зависимостей определяющих выражение для целевой функции и ограничений используется функция MS Excel СУММПРОИЗВ , которая вычисляет сумму попарных произведений двух или более массивов.

Одним из самых простых способов определения функций в MS Excel является использование режима «Вставка функций» , который можно вызвать из меню «Вставка» или при нажатии кнопки fx (рисунок 2) на стандартной панели инструментов.

Рисунок 2

Так, например, выражение для целевой функции из задачи 1 определяется следующим образом:
· курсор в поле D6;
· нажав кнопку fx , вызовите окно «Мастер функций — шаг 1 из 2»;
· выберите в окне «Категория» категорию «Математические»;
· в окне «Функция» выберите функцию СУММПРОИЗВ (рис. 3);

Рисунок 3
· в появившемся окне «СУММПРОИЗВ» в строку «Массив 1» введите выражение B$4:C$4 , а в строку «Массив 2» — выражение B6:C6 (рис. 4);

Левые части ограничений задачи (1) представляют собой сумму произведений каждой из ячеек, отведенных для значений переменных задачи ( B3, C3 ), на соответствующую ячейку, отведенную для коэффициентов конкретного ограничения ( B13, C13 — 1-е ограничение; B14, С14 — 2-е ограничение и B15, С15 — 3-е ограничение). Формулы, соответствующие левым частям ограничений, представлены в табл.1.
Таблица 1.

Формулы, описывающие ограничения модели (1)

Левая часть ограничения Формула Excel
10x1+4x2 или B3×B13+C3×C13 =СУММПРОИЗВ(B4:C4;B13:C13))
3x1+2x2 или B3×B14+C3×C14 =СУММПРОИЗВ(B4:C4;B14:C14))
2x1+5x2 или B3×B15+C3×C15 =СУММПРОИЗВ(B4:C4;B15:C15)

Дальнейшие действия производятся в окне «Поиск решения» , которое вызывается из меню «Сервис» (рис.5):

· поставьте курсор в поле «Установить целевую ячейку» ;

· введите адрес целевой ячейки $D$6 или сделайте одно нажатие левой клавиши мыши на целевую ячейку в экранной форме ¾ это будет равносильно вводу адреса с клавиатуры;

· введите направление оптимизации ЦФ, щелкнув один раз левой клавишей мыши по селекторной кнопке «максимальному значению».

Ввод ограничений и граничных условий
Задание ячеек переменных

В окно «Поиск решения» в поле «Изменяя ячейки» впишите адреса $B$4:$С$4 . Необходимые адреса можно вносить в поле «Изменяя ячейки» и автоматически путем выделения мышью соответствующих ячеек переменных непосредственно в экранной форме.
Задание граничных условий для допустимых значений переменных

В нашем случае на значения переменных накладывается только граничное условие неотрицательности, то есть их нижняя граница должна быть равна нулю (см. рис. 1).
· Нажмите кнопку «Добавить» , после чего появится окно «Добавление ограничения» (рис.6).
· В поле «Ссылка на ячейку» введите адреса ячеек переменных $B$4:$С$4 . Это можно сделать как с клавиатуры, так и путем выделения мышью всех ячеек переменных непосредственно в экранной форме.
· В поле знака откройте список предлагаемых знаков и выберите ≥ .
· В поле «Ограничение» введите 0.

Рис.6 — Добавление условия неотрицательности переменных задачи (1)

Задание знаков ограничений ≤ , ≥ , = .
· Нажмите кнопку «Добавить» в окне «Добавление ограничения» .
· В поле «Ссылка на ячейку» введите адрес ячейки левой части конкретного ограничения, например $B$18 . Это можно сделать как с клавиатуры, так и путем выделения мышью нужной ячейки непосредственно в экранной форме.
· В соответствии с условием задачи (1) выбрать в поле знака необходимый знак, например, ≤ .
· В поле «Ограничение» введите адрес ячейки правой части рассматриваемого ограничения, например $D$18 .
· Аналогично введите ограничения: $B$19 , $B$20 .
· Подтвердите ввод всех перечисленных выше условий нажатием кнопки OK .

Окно «Поиск решения» после ввода всех необходимых данных задачи (1) представлено на рис. 5.
Если при вводе условия задачи возникает необходимость в изменении или удалении внесенных ограничений или граничных условий, то это делают, нажав кнопки «Изменить» или «Удалить» (см. рис. 5).

Решение задачи
Установка параметров решения задачи

Задача запускается на решение в окне «Поиск решения» . Но предварительно для установления конкретных параметров решения задач оптимизации определенного класса необходимо нажать кнопку «Параметры» и заполнить некоторые поля окна «Параметры поиска решения» (рис. 7).

Рис. 7 — Параметры поиска решения, подходящие для большинства задач ЛП

Параметр «Максимальное время» служит для назначения времени (в секундах), выделяемого на решение задачи. В поле можно ввести время, не превышающее 32 767 секунд (более 9 часов).
Параметр «Предельное число итераций» служит для управления временем решения задачи путем ограничения числа промежуточных вычислений. В поле можно ввести количество итераций, не превышающее 32 767.
Параметр «Относительная погрешность» служит для задания точности, с которой определяется соответствие ячейки целевому значению или приближение к указанным границам. Поле должно содержать число из интервала от 0 до 1. Чем меньше количество десятичных знаков во введенном числе, тем ниже точность. Высокая точность увеличит время, которое требуется для того, чтобы сошелся процесс оптимизации.
Параметр «Допустимое отклонение» служит для задания допуска на отклонение от оптимального решения в целочисленных задачах. При указании большего допуска поиск решения заканчивается быстрее.
Параметр «Сходимость» применяется только при решении нелинейных задач.Установка флажка «Линейная модель» обеспечивает ускорение поиска решения линейной задачи за счет применение симплекс-метода.
Подтвердите установленные параметры нажатием кнопки «OK» .

Запуск задачи на решение
Запуск задачи на решение производится из окна «Поиск решения» путем нажатия кнопки «Выполнить» .

После запуска на решение задачи ЛП на экране появляется окно «Результаты поиска решения» с сообщением об успешном решении задачи, представленном на рис. 8.

Рис. 8 -. Сообщение об успешном решении задачи

Появление иного сообщения свидетельствует не о характере оптимального решения задачи, а о том, что при вводе условий задачи в MS Excel были допущены ошибки, не позволяющие MS Excel найти оптимальное решение, которое в действительности существует.
Если при заполнении полей окна «Поиск решения» были допущены ошибки, не позволяющие MS Excel применить симплекс-метод для решения задачи или довести ее решение до конца, то после запуска задачи на решение на экран будет выдано соответствующее сообщение с указанием причины, по которой решение не найдено. Иногда слишком малое значение параметра «Относительная погрешность» не позволяет найти оптимальное решение. Для исправления этой ситуации увеличивайте погрешность поразрядно, например от 0,000001 до 0,00001 и т.д.
В окне «Результаты поиска решения» представлены названия трех типов отчетов: «Результаты», «Устойчивость», «Пределы» . Они необходимы при анализе полученного решения на чувствительность. Для получения же ответа (значений переменных, ЦФ и левых частей ограничений) прямо в экранной форме просто нажмите кнопку «OK» . После этого в экранной форме появляется оптимальное решение задачи (рис. 9).

Источник

Тема: Решение задач динамического программирования

Средствами ЭТ Excel

1. Ознакомиться с основными понятиями динамического программирования

2. Освоить порядок решения задачи

3. Научиться оценивать полученные результаты

1 Теоретические сведения

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

Рассматривается управляемый процесс, например экономический процесс распределения средств между предприятиями в течение ряда лет. В результате управления система (объект управления) S переводится из начального состояния s0 в состояние ŝ. Обозначим через sk состояние системы после k-го шага управления. Получаем последовательность состояний s0, s1, …, sk-1, …, sn-1, sn=ŝ, которая изображена на рисунке 8.1

Формулировка задачи динамического программирования:

Определить такое допустимое управление X, переводящее систему S из состояния s0 в состояние ŝ, при котором целевая функция принимает наибольшее (наименьшее) значение.

Особенности модели динамического программирования:

1. Задача оптимизации интерпретируется как n – шаговый процесс управления.

2. Целевая функция равна сумме целевых функций каждого шага.

3. Выбор управления на k-м шаге зависит только от состояния системы к этому шагу , не влияет на предшествующие шаги (нет обратной связи).

4. Состояние sk после k-го шага управления зависит только от предшествующего состояния sk-1 и управления Xk (отсутствие последействия).

5. На каждом шаге управление Xk зависит от конечного числа управляющих переменных, а состояние sk – от конечного числа параметров.

ПРИМЕР выполнения лабораторной работы

Постановка задачи

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

Таблица 8.1 – Ожидаемая прибыль в зависимости от капиталовложений

Филиалы Млн. тг
0,28 0,45 0,65 0,78 0,9
0,25 0,41 0,55 0,65 0,75
0,15 0,25 0,4 0,5 0,62
0,2 0,33 0,742 0,48 0,53

— R(i,j) – прибыль, получаемая от вложения i млн. тг в j – й филиал, где i Î [0,5], j Î [1,4]

— F(A,1,2) – оптимальное распределение средств, когда А млн. тг вкладываются в 1 и 2-й филиалы вместе.

— F(A,1,2,3) – оптимальное распределение средств, когда А млн. тг вкладываются в 1, 2 и 3-й филиалы вместе.

— F(A,1,2,3,4) – оптимальное распределение средств, когда А млн. тг вкладываются в 1, 2, 3 и 4-й филиалы вместе.

Значения i, при которых достигается максимум, определяют оптимальные капиталовложения в филиалы.

Порядок решения задачи

1. Откройте рабочую книгу Excel «Задача динамического программирования» или самостоятельно создайте рабочую книгу, содержащую исходные формы для решения задачи и модуль VBA ( текст программы).

2. Перейдите на лист «Решение задачи»

3. В ячейки B2, D3, B6:G13 (в рабочей книге – выделены голубым цветом) введите исходные данные:

В2 – количество филиалов

D3 – размер капиталовложений

B6:E11 – ожидаемую прибыль

4. Нажмите кнопку “Вычислить”, расположенную на рабочем листе

Результат решения задачи приведен на рисунке 8.2.

В диапазон ячеек H6:J11 программа выводит значения F(A,1,2), F(A,1,2,3) и F(A,1,2,3,4). В диапазоне ячеек B17:G22 программа выводит оптимальное распределение капиталовложений по филиалам.

Вывод: Из рисунка 8.2 видно, что максимальная ожидаемая прибыль равна 1,1 млн. тг, а оптимальные капиталовложения состоят в выделении 1 –му филиалу 3 млн. тг, 2-му филиалу – 1 млн. тг и 4-му филиалу – 1 млн. тг.

ЗАДАНИЕ

— Решить задачу динамического программирования по приведенным исходным данным (приложение 8.1)

· Откройте рабочую книгу Excel «Задача динамического программирования»

· Перейдите на лист «Исходные данные»

· Скопируйте интервал таблицы Вариант 1, выделенный голубым цветом

· Перейдите на лист «Решение задачи»

· Вставьте в ячейку В6 скопированный интервал

· Введете в ячейку В2 количество филиалов для данного варианта

· Введите в ячейку D3 размер капиталовложений для данного варианта

· Нажмите кнопку “Вычислить”, расположенную на рабочем листе

· По результатам решения задачи сделайте выводы.

· Очистите содержимое ячеек B6:L13, B17:K24

· Решите задачу для других вариантов исходных данных, приведенных на листе «Исходные данные»

— Составить и решить задачу динамического программирования

Требования к отчету по лабораторной работе

Отчет должен содержать:

1. Условие задачи.

2. Результаты решения задач.

3. Выводы по решению задачи.

Варианты задания

Форма для решения задачи о размещении капитала.

Текст программы для решения задачи о размещения капитала.

Программа написана на языке программирования VBA.

Dim aa,nn,nn1,kk1, i, j, k, n, p, l, t As Integer

Dim m, R(), A() As Double

ReDim R(k + 1, NN), A(k + 1)

For i = 1 To k + 1

For j = 2 To NN + 1

R(i, j — 1) = Cells(i + 5, j).Value

For j = 1 To k + 1

A(j) = Cells(j + 5, 2).Value

For j = 1 To k + 1

A(j) = Cells(j + 5, p + nn1 — 1).Value ‘nn-1

Продолжение приложения 8.3

For n = 1 To k + 1

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.

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

Источник

Заказ: 1026344

ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ. РЕШЕНИЕ ЗАДАЧИ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ В СРЕДЕ EXCEL. Распределить оптимальным образом денежные средства в размере 5 млн.руб между тремя предприятиями при заданных значениях функции эффективности. g1(x),g2(x),g3(x) — предприятия

Описание

В комплекте 2 файла — WORD и Excel

ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ.  РЕШЕНИЕ ЗАДАЧИ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ В СРЕДЕ EXCEL. Распределить оптимальным образом денежные средства в размере 5 млн.руб между тремя предприятиями при заданных значениях функции эффективности. g1(x),g2(x),g3(x) -  предприятия    (Решение → 16340)

ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ.  РЕШЕНИЕ ЗАДАЧИ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ В СРЕДЕ EXCEL. Распределить оптимальным образом денежные средства в размере 5 млн.руб между тремя предприятиями при заданных значениях функции эффективности. g1(x),g2(x),g3(x) -  предприятия    (Решение → 16340)

  • Динозавры. (курсовая работа)
  • Диод марки Д171-400 используется в трехфазной нулевой схеме выпрямления. Выпрямленный ток нагрузки 250 А. Определить мощность тепловых потерь диода. Считать Xd = ∞
  • Диодные ключи
  • Диод относится к классу______ элементов. -: линейных -: нелинейных инерционных -: нелинейных безинерционных -: нелинейных реактивных
  • Диод Шоттки
  • Дипломная работа «Анализ оплаты труда на промышленном предприятии (на примере Общества с ограниченной ответственностью «Усолье-Сибирский Силикон»).
  • Дипломная работа на тему: «PR-текст как фактор влияния на формирование имиджа государственной организации (на примере группы информации и общественных связей штаба УВД)»
  • Динамическое программирование. Для двух предприятий выделено α единиц средств. Как распределить все средства в течение 4 лет, чтобы доход был наибольшим, если известно, что доход от x единиц средств, вложенных в первое предприятие, равен f1(x) , а доход от y единиц средств, вложенных во второе предприятие, равен f2(e) . Остаток средств к концу года составляет g1(x) для первого предприятия и g2(y) для второго предприятия. Задачу решить методом динамического программирования.
  • Динамическое программирование. Задача о загрузкеВ одиннадцатитонную фуру могут быть загружены предметы четырех наименований. В таблице: wi – вес одного предмета i –го наименования в тоннах, ri – прибыль (в тыс. руб.), которую приносит перевозка одного предмета. Какими предметами необходимо заполнить грузовик, чтобы получить максимальную прибыль?
  • Динамическое программирование. Задача о загрузкеСтудент должен выбрать 10 факультативных курсов на пяти различных кафедрах, причем на каждой кафедре должен быть выбран хотя бы один курс. Знания от курсов, выбранных на каждой кафедре, оценены по сто бальной системе. Сколько курсов на каждой кафедре должен выбрать студент, чтобы «максимизировать объем знаний»?
  • Динамическое программирование и марковские модели принятия решений (курсовая работа)
  • Динамическое программирование. Инвестор выделяет средства в размере 5 тыс. ден. ед., которые должны быть распределены между тремя предприятиями. Требуется, используя принцип оптимальности Беллмана, построить план распределения инвестиций между предприятиями, обеспечивающий наибольшую общую прибыль, если каждое предприятие при инвестировании в него средств x тыс. ден. ед. приносит прибыль pi(x) тыс. ден. ед. (i=1, 2 и 3) по следующим данным (таблица в файле).
  • Динамическое программирование. Планируется распределение начальной суммы X0 млн. р. Между четырьмя предприятиями некоторого объединения. Средства выделяются только в размерах кратных α = 80 млн. р. Функции прироста продукции от вложенных средств на каждом предприятии заданы таблично. Требуется так распределить вложения между предприятиями, чтобы общий прирост продукции (в млн. р.) был максимальным. Решить задачу на основе функционального уравнения Беллмана.
  • Динамическое программирование. Решение задачи о загрузке (задача о рюкзаке), использую рекуррентные соотношения. (курсовая работа)

Предварительный просмотр

ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ.  РЕШЕНИЕ ЗАДАЧИ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ В СРЕДЕ EXCEL. Распределить оптимальным образом денежные средства в размере 5 млн.руб между тремя предприятиями при заданных значениях функции эффективности. g1(x),g2(x),g3(x) -  предприятия

На уроке рассмотрен материал для подготовки к ЕГЭ по информатике, разбор 18 задания. Объясняется тема об обработке числовой информации в электронных таблицах.

Содержание:

  • ЕГЭ по информатике 18 задание объяснение
  • Решение 18 задания ЕГЭ
    • Исполнитель Робот

18-е задание: «Обработка числовой информации в электронных таблицах»

Уровень сложности

— повышенный,

Требуется использование специализированного программного обеспечения

— да,

Максимальный балл

— 1,

Примерное время выполнения

— 6 минут.

  
Проверяемые элементы содержания: Умение обрабатывать вещественные выражения в электронных таблицах

Решение 18 задания ЕГЭ

Плейлист видеоразборов задания на YouTube:

Задание демонстрационного варианта 2022 года ФИПИ


Исполнитель Робот


18 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Задание выполняется с использованием прилагаемых файлов

  
Квадрат разлинован на N×N клеток (1 < N < 17). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. При попытке выхода за границу квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа – сначала максимальную сумму, затем минимальную.

Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.

Пример входных данных:

Для указанных входных данных ответом должна быть пара чисел:

Ответ: 1204 | 502
Решение подобного задания смотрите в следующем ниже разборе.
📹 YouTube здесь

Видеорешение на RuTube здесь


18_1:

Задание выполняется с использованием прилагаемых файлов

  
Исходные данные записаны в файле (выше) в виде электронной таблицы прямоугольной формы.
Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой НИЖНЕЙ клетки в правую ВЕРХНЮЮ. В ответе укажите два числа – сначала максимальную сумму, затем минимальную.

✍ Решение:

    ✎ Электронные таблицы:

  • Для решения будем использовать метод динамического программирования — решать будет с конца к началу.
  • Откройте файл электронной таблицы. Скопируем таблицу и вставим ее ниже — это будет шаблон для результирующей таблицы, полученной после решения задачи.
  • Выделите ячейки скопированной таблицы каким-либо цветом, для обозначения ее границ. Теперь удалите все значения в результирующей таблице:
  • решение 18 ЕГЭ

  • Так как задание решается с конца, то выделим последнюю ячейку, в которой окажется Робот — верхняя правая ячейка J12 результирующей таблицы. Робот просто соберет монету, которая находится в этой ячейке. Поэтому для ячейки возьмем значение из исходной таблицы. Введите формулу:
  • 18 задание с исполнителем Робот

    =J1
  • Попасть в данную ячейку J12 Робот мог, либо двигаясь из ячейки I12, либо из J13.
  • Рассмотрим ячейку I12. В ней Робот собирает монету, значение которой возьмем из исходной таблицы (ячейка I1). Ну и поскольку дальше он попадет только в ячейку J12, то необходимо прибавить значение этой ячейки. Поскольку значение уже просчитано для результирующей таблицы, то мы и будем его брать именно с результирующей таблицы. То есть введите формулу для ячейки I12:
  • электронные таблицы excel  в 18 задании егэ

    =I1+J12
  • Для всей верхней строки таблицы мы можем утверждать следующее: из любой ячейки Робот может двигаться только в соседнюю ячейку справа. То есть Робот будет собирать монету с текущей ячейки и при этом необходимо прибавлять значение соседней ячейки справа. То есть формула, которую мы ввели в ячейку I12, будет такой же и для всех оставшихся ячеек верхней строки.
  • Скопируйте формулу из ячейки I12 в диапазон ячеек A12:H12:
  • Определите максимальную и минимальную денежную сумму

  • Теперь перейдем к ячейке J13. Робот собирает монету с текущей ячейки (возьмём значение из ячейки исходной таблицы — J2) и добавим значение ячейки, в которую он пойдет дальше — ячейка J12 (берем значение из результирующей таблицы, поскольку оно уже просчитано):
  • 18 егэ

    =J2+J12
  • Для всех ячеек крайнего справа столбца таблицы можно утверждать: из каждой ячейки можно двигаться только в соседнюю ячейку сверху. То есть Робот будет собирать монету с текущей ячейки и нужно учесть, что он дальше попадает в ячейку сверху (необходимо прибавлять значение сверху из результирующей таблицы). То есть формула для ячейки J13 подходит для всех ячеек данного столбца.
  • Скопируйте формулу из ячейки J13 в диапазон ячеек J14:J21:
  • В ячейки I12 и J13 Робот мог попасть, также двигаясь из ячейки I13. Рассмотрим ее.
  • В ячейке I13 Робот собирает монету из текущей ячейки (берем значение из исходной таблицы — I2), и затем у него альтернатива движения: либо в ячейку I12, либо в J13. В задании необходимо найти, как максимальную, так и минимальную сумму монет. Найдем сначала максимальную. Для этого надо выбрать максимум из I12 и J13 и добавить к текущему значению. Введите формулу в I13:
  • =I2+МАКС(I12;J13)
  • Если проследовать логике движения Робота, то получается, что данная формула будет верной и для всех оставшихся ячеек таблицы. Скопируйте формулу из ячейки I13, использовав маркер копирования, во все оставшиеся ячейки таблицы:
  • Полученное значение в нижней левой ячейке таблицы, с которой начал свое путешествие Робот, — и есть результат.
  • Теперь найдем минимальную сумму. Для этого замените формулу ячейки I13 на =I2+МИН(I12;J13).
  • Скопируйте формулу в оставшийся диапазон ячеек. Значение, полученное в левой нижней ячейке — 522. Это и есть минимальная сумма монет.

Ответ: 1133 | 522


18_2:

Задание выполняется с использованием прилагаемых файлов

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

✍ Решение:

    ✎ Электронные таблицы:

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

  • Так как задание решается с конца, то выделим последнюю ячейку, в которой окажется Робот — нижняя правая ячейка L25 результирующей таблицы. Робот просто соберет монету, которая находится в этой ячейке исходной таблицы — L12. Поэтому для ячейки возьмем значение из исходной таблицы. Введите формулу:
  • формула для L25:
    =L12
  • Попасть в данную ячейку L12 Робот мог, либо двигаясь из ячейки K12, либо из L11.
  • Рассмотрим ячейку К12. В ней Робот собирает монету, значение которой возьмем из исходной таблицы (ячейка K12). Ну и поскольку дальше он попадет только в ячейку L12, то необходимо прибавить значение этой ячейки.
  • Поскольку значение уже просчитано для результирующей таблицы, то мы и будем его брать именно с результирующей таблицы. Стену будем обозначать, как ячейку со значением 0. То есть введите формулу для ячейки K25:
  • =ЕСЛИ(И(L25>0;ИЛИ(K12<=100;K12>=500));K12+L25;0)

    Если выполняются одновременно два условия: L25>0 И либо K12<=100 либо K12>=500, то собираем монету с текущей ячейки (K12) и добавляем монету с L25, так как там нет стены (L25>0)

  • Для всей нижней строки таблицы мы можем утверждать следующее: из любой ячейки Робот может двигаться только в соседнюю ячейку справа. То есть Робот будет собирать монету с текущей ячейки и при это необходимо прибавлять значение соседней ячейки справа. То есть формула, которую мы ввели в ячейку K25 будет такой же и для всех оставшихся ячеек строки.
  • Скопируйте формулу из ячейки K25 в диапазон ячеек A25:J25.
  • Теперь перейдем к ячейке L24. Робот собирает монету с текущей ячейки (возьмём значение из ячейки исходной таблицы — L11) и добавим значение ячейки, в которую он пойдет дальше — ячейка L25 (берем значение из результирующей таблицы, поскольку оно уже просчитано):
  • =ЕСЛИ(И(L25>0;ИЛИ(L11<=100;L11>=500));L11+L25;0)

    Если выполняются одновременно два условия: L25>0 И либо L11<=100 либо L11>=500, то собираем монету с текущей ячейки (L11) и добавляем монету с L25, так как там нет стены (L25>0)

  • Скопируйте формулу из ячейки L24 в диапазон ячеек L14:L23.
  • В ячейке K24 Робот собирает монету из текущей ячейки (берем значение из исходной таблицы — K11), и затем у него альтернатива движения: либо в ячейку L24, либо в K25. В задании необходимо найти, как максимальную, так и минимальную сумму монет. Найдем сначала максимальную. Не забудем проверять значение каждой ячейки, нет ли там стены. Для этого введите формулу в K24:
  • =ЕСЛИ(И(K11>100;K11<500);0;ЕСЛИ(И(L24=0;K25=0);0;ЕСЛИ(L24=0;K11+K25;
    ЕСЛИ(K25=0;K11+L24;K11+МИН(L24;K25)))))

    Здесь логика формулы следующая: если текущее значение ячейки соответствует стене, то записываем 0; ИНАЧЕ — если обе ячейки, в которые может двигаться Робот, — стены, то записываем в текущую ячейку 0; ИНАЧЕ — если ячейка справа — стена, то двигаемся вниз, собирая по пути монеты; ИНАЧЕ — если ячейка снизу — стена, то двигаемся вправо, собирая по пути монеты; ИНАЧЕ — выбираем минимальное значение из соседних ячеек и собираем монеты.

  • Скопируйте формулу из ячейки K24, использовав маркер копирования, во все оставшиеся ячейки таблицы:
  • Полученное значение в нижней левой ячейке таблицы, с которой начал свое путешествие Робот, — и есть результат.
  • Теперь найдем минимальную сумму. Для этого измените формулу, заменив МАКС на МИН. И скопируйте снова данную формулу во всю оставшуюся таблицу.

  • Ответ: 1492 640


18_3:

Задание выполняется с использованием прилагаемых файлов

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

✍ Решение:

    ✎ Электронные таблицы:

  • Для решения будем использовать метод динамического программирования — решать будет с конца к началу.
  • Откройте файл электронной таблицы. Скопируем таблицу и вставим ее ниже — это будет шаблон для результирующей таблицы, полученной после решения задачи.
  • Выделите ячейки скопированной таблицы каким-либо цветом, для обозначения ее границ. Теперь удалите все значения в результирующей таблице:
  • Так как задание решается с конца, то выделим последнюю ячейку, в которой окажется Робот — нижняя правая ячейка J21 результирующей таблицы. Робот просто соберет монеты, которые находится в этой ячейке исходной таблицы — J10, если наберется целое число контейнеров (значение кратное 8). Если целое число контейнеров не набирается, — то робот забирает только то, что набралось в контейнеры (8* ЧАСТНОЕ от деления монет на 8). Поэтому для ячейки возьмем значение из исходной таблицы, проверяя его на кратность 8. Введите формулу:
  • формула для J21:
    =ЕСЛИ(ОСТАТ(J10;8)=0;J10;8*ЧАСТНОЕ(J10;8))
  • Рассмотрим ячейку J20. В ней Робот собирает монету, значение которой возьмем из исходной таблицы (ячейка J9). При этом будем проверять значение на кратность 8 и действовать так же, как описано в предыдущем пункте. Ну и поскольку дальше Робот попадет только в ячейку J21, то необходимо прибавить значение этой ячейки.
  • формула для J20:
    =ЕСЛИ(ОСТАТ(J9;8)=0;J9+J21;8*ЧАСТНОЕ(J9;8)+J21)
  • Для всего крайнего справа столбца таблицы мы можем утверждать следующее: из любой ячейки Робот может двигаться только в соседнюю ячейку снизу. То есть Робот будет собирать монету с текущей ячейки и при это необходимо прибавлять значение соседней ячейки снизу. То есть формула, которую мы ввели в ячейку J20 будет такой же и для всех оставшихся ячеек столбца.
  • Скопируйте формулу из ячейки J20 в диапазон ячеек J12:J19.
  • Теперь перейдем к ячейке I21. Робот собирает монету с текущей ячейки (возьмём значение из ячейки исходной таблицы — I10). Проверим заполненность контейнеров, и добавим значение ячейки, в которую Робот пойдет дальше — ячейка J21 (берем значение из результирующей таблицы, поскольку оно уже просчитано):
  • формула для I21:
    =ЕСЛИ(ОСТАТ(I10;8)=0;I10+J21;8*ЧАСТНОЕ(I10;8)+J21)
  • Скопируйте формулу из ячейки I21 в диапазон ячеек A21:H21.
  • В ячейке I20 Робот собирает монету из текущей ячейки (берем значение из исходной таблицы — I9), проверяя заполненность контейнеров, и затем у него альтернатива движения: либо в ячейку J20, либо в I21. В задании необходимо найти, как максимальную, так и минимальную сумму монет. Найдем сначала максимальную. Не забудем проверять значение каждой ячейки на заполненность контейнеров. Для этого введите формулу в I20:
  • формула для I20:
    =ЕСЛИ(ОСТАТ(I9;8)=0;I9+МАКС(J20;I21);8*ЧАСТНОЕ(I9;8)+МАКС(J20;I21))
  • Скопируйте формулу из ячейки I20, использовав маркер копирования, во все оставшиеся ячейки таблицы.
  • Полученное значение в левой верхней ячейке таблицы, с которой начал свое путешествие Робот, — и есть результат.
  • Теперь найдем минимальную сумму. Для этого измените формулу, заменив МАКС на МИН. И скопируйте снова данную формулу во всю оставшуюся таблицу.
  • Ответ: 1144 448

Понравилась статья? Поделить с друзьями:
  • Динамический массив данных в excel
  • Динамическое построение графика в excel
  • Динамический массив vba excel это
  • Динамическое обновление таблицы excel
  • Динамический массив excel как включить