Модель системы в excel

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

Прежде чем приступить к работе с моделью данных, необходимо получить некоторые данные. Для этого мы будем использовать интерфейс Get & Transform (Power Query), поэтому вам может потребоваться выполнить шаг назад и посмотреть видео, или следуйте нашему руководству по обучению по get & Transform и Power Pivot.


Где есть Power Pivot?

  • Excel 2016 & Excel для Microsoft 365 — Power Pivot включен в ленту.

  • Excel 2013 — Power Pivot входит в Office профессиональный плюс Excel 2013, но не включен по умолчанию. Дополнительные сведения о запуске надстройки Power Pivot для Excel 2013.

  • Excel 2010 — скачайте надстройку Power Pivot, а затем установите надстройку Power Pivot.


Где находится get & Transform (Power Query)?

  • Excel 2016 & Excel для Microsoft 365 . Get & Transform (Power Query) интегрировано с Excel на вкладке «Данные«.

  • Excel 2013 — Power Query — это надстройка, которая входит в Excel, но ее необходимо активировать. Перейдите к разделу «Параметры >» > надстроек, а затем в раскрывающемся списке «Управление» в нижней части панели выберите com-надстройки > Go. Проверьте microsoft Power Query Excel, а затем ОК, чтобы активировать его. На Power Query будет добавлена вкладка Power Query.

  • Excel 2010 — скачивание и установка Power Query надстройки.. После активации на ленту Power Query вкладки.

Начало работы

Сначала необходимо получить некоторые данные.

  1. В Excel 2016 и Excel для Microsoft 365 используйте data >Get & Transform Data > Get Data > Get Data to import data from any number of external data sources, such as a text file, Excel workbook, website, Microsoft Access, SQL Server, or another relational database that contains multiple related tables.

    В Excel 2013 и 2010 перейдите к Power Query >получения внешних данных и выберите источник данных.

  2. Excel предложит выбрать таблицу. Если вы хотите получить несколько таблиц из одного источника данных, установите флажок «Включить выбор нескольких таблиц «. При выборе нескольких таблиц Excel автоматически создает модель данных.

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

    Получение & преобразования (Power Query) Навигатор

  3. Выберите одну или несколько таблиц и нажмите кнопку «Загрузить «.

    Если необходимо изменить исходные данные, можно выбрать параметр «Изменить «. Дополнительные сведения см. в статье «Общие сведения Редактор запросов (Power Query)».

Теперь у вас есть модель данных, которая содержит все импортированные таблицы, и они будут отображаться в списке полей сводной таблицы.

Примечания: 

  • Модели создаются неявно, когда вы импортируете в Excel несколько таблиц одновременно.

  • Модели создаются явно, если вы импортируете данные с помощью надстройки Power Pivot. В надстройке модель представлена в макете с вкладками, аналогичном Excel, где каждая вкладка содержит табличные данные. Дополнительные сведения об импорте данных с помощью надстройки Power Pivotсм. в статье «Получение данных с помощью SQL Server данных».

  • Модель может содержать одну таблицу. Чтобы создать модель на основе только одной таблицы, выберите таблицу и нажмите кнопку Добавить в модель данных в Power Pivot. Это может понадобиться в том случае, если вы хотите использовать функции Power Pivot, например отфильтрованные наборы данных, вычисляемые столбцы, вычисляемые поля, ключевые показатели эффективности и иерархии.

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

  • Советы по сокращению размера модели данных см. в статье «Создание модели данных, оптимизированной для памяти, с помощью Excel и Power Pivot».

  • Дополнительные сведения см. в руководстве по импорту данных в Excel и созданию модели данных.

Создание связей между таблицами

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

  1. Перейдите в power Pivot > Manage.

  2. На вкладке « Главная» выберите » Представление схемы».

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

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

    Power Query представления схемы связей модели данных

    Мы создали следующие ссылки:

    • tbl_Students | Идентификатор учащегося > tbl_Grades | Идентификатор учащегося

      Другими словами, перетащите поле «Идентификатор учащегося» из таблицы «Учащиеся» в поле «Идентификатор учащегося» в таблице «Оценки».

    • tbl_Semesters | Идентификаторы > tbl_Grades | Семестр

    • tbl_Classes | Номер класса > tbl_Grades | Номер класса

    Примечания: 

    • Имена полей не обязательно должны совпадать для создания связи, но они должны быть одинаковыми типами данных.

    • Соединители в представлении схемы имеют «1» с одной стороны, а «*» — с другой. Это означает, что между таблицами существует связь «один ко многим», которая определяет, как данные используются в сводных таблицах. См. дополнительные сведения о связях между таблицами в модели данных.

    • Соединители указывают только на наличие связи между таблицами. На самом деле они не показывают, какие поля связаны друг с другом. Чтобы просмотреть ссылки, перейдите в раздел Power Pivot > Manage > Design > Relationships > Управление связями. В Excel можно перейти к разделу «>данных».

Создание сводной таблицы или сводной диаграммы с помощью модели данных

Книга Excel может содержать только одну модель данных, но эта модель может содержать несколько таблиц, которые можно многократно использовать в книге. Вы можете добавить дополнительные таблицы в существующую модель данных в любое время.

  1. В Power Pivotперейдите к разделу » Управление».

  2. На вкладке « Главная» выберите сводную таблицу.

  3. Выберите место размещения сводной таблицы: новый лист или текущее расположение.

  4. Нажмите кнопку «ОК», и Excel добавит пустую сводную таблицу с областью списка полей справа.

    Список полей сводной таблицы Power Pivot

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

Добавление имеющихся несвязанных данных в модель данных

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

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

  2. Добавьте данные одним из следующих способов.

  3. Щелкните Power Pivot > Добавить в модель данных.

  4. Выберите Вставка > Сводная таблица и установите флажок Добавить эти данные в модель данных в диалоговом окне «Создание сводной таблицы».

Диапазон или таблица будут добавлены в модель как связанная таблица. Дополнительные сведения о работе со связанными таблицами в модели см. в статье Добавление данных с помощью связанных таблиц Excel в Power Pivot.

Добавление данных в таблицу Power Pivot данных

В Power Pivot невозможно добавить строку в таблицу, введя текст непосредственно в новой строке, как это можно сделать на листе Excel. Но можно добавить строки , скопируйте и вставьте или обновите исходные данные и обновите модель Power Pivot.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Ознакомьтесь & по преобразованию и обучению Power Pivot

Общие сведения о редакторе запросов (Power Query)

Создание модели данных, оптимизированной для памяти, с помощью Excel и Power Pivot

Руководство. Импорт данных в Excel и создание модели данных

Определение источников данных, используемых в модели данных книги

Связи между таблицами в модели данных

Сборник заданий по разделу:

ОМПЬЮТЕРНОЕ

МОДЕЛИРОВАНИЕ В MS EXCEL

Иванов Иван

Для всех специальностей СПО

Разработала:

преподаватель

Белева Людмила Федоровна

Сыктывкар,2016 год

Пояснительная записка:

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

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

МАТЕМАТИЧЕСКИЙ АППАРАТ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ

ВЕРОЯТНОСТЬ СЛУЧАЙНОГО СОБЫТИЯ

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

Вообще, пусть определенное испытание проводится многократно в одних и тех же условиях и при этом каждый раз фиксируется, произошло или нет интересующее нас событие А. Число m называют частотой события А, а отношение m/n – относительной частотой, где n – общее число испытаний.

Задача 1.

Определить относительную частоту выпадения орла.

Для этого: введите формулы в расчетные ячейки.

Формула

Комментарий

Результаты

А1

=ЦЕЛОЕ (СЛЧИС()+0,5)

Выпадение орла или решки

0 или 1

A2

Копируем формулу

А3

до

A4

A5

500

A6

….

строки

А500

включительно

А501

=СЧЕТЕСЛИ(А1:А500;1)

Число выпадений орла

234

А502

=СЧЕТ(А1:А500)

Число бросков

500

А503

= А501/ А502*100

Относительная частота

0,49

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

Такое определение называют статистическим определением вероятности.

Задача 2. Бросание кубика

Найдите статистическую вероятность для каждого значения выпадения очков 1,2,3,4,5,6.

Для этого: введите формулы в расчетные ячейки.

A

B

C

D

1

=ЦЕЛОЕ(СЛЧИС()*6+1

1

{=ЧАСТОТА(A1:A500;B1:B6)}

=С1/500*100

2

Копируем формулу

2

3

до

3

4

500

4

5

строки

5

6

включительно

6

….

500

Дополнение: рассмотрим событие В, которое означает выпадение числа очков, кратного 3. Это событие происходит при двух исходах испытания: когда выпало 3 очка и когда выпало 6 очков. Эти исходы называют благоприятными исходами для события В. При бросании кубика из 6 равновозможных исходов испытания благоприятными для события В являются лишь два исхода. Отношение числа благоприятных исходов к числу всех равновозможных исходов равно 2/6. Это отношение называют вероятностью события В и пишут Р(В)=2/6=1/3.

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

В рассмотренном примере посмотрим назначения ячеек D3 и D6, их сумма 32,6 колеблется около 33%. Таким образом, классическое и статистическое определение вероятности совпадают с определенной степенью точности.

Задача 3.

Проверить, что вероятность выпадения оба раза решки равна 0,25.

Решение.

Для этого: введите формулы в расчетные ячейки.

A

B

C

D

E

F

1

=ЦЕЛОЕ(СЛЧИС()+0,5)

=ЦЕЛОЕ(СЛЧИС()+0,5)

=A1+B1

0

{=ЧАСТОТА

(C1:C50;D1:B3)}

=E1/50*100

2

Копируем формулу

1

3

до

2

4

50

5

строки

6

включительно

Задача 4.

Из 25 экзаменационных билетов по геометрии ученик успел приготовить 11 первых 8 последних билетов. Какова вероятность того, что на экзамене ему достанется билет, который он не подготовил?

Решение.

Общее число равновозможных исходов при выборе билетов на экзамене 25. Пусть М – событие, заключающееся в том, что ученику достанется на экзамене билет, к которому он не подготовился. Число благоприятных для М исходов (но не для ученика) равно 25-(11+8). Значит Р (М) =6/26=0,24. Проверим это. Для этого: введите формулы в расчетные ячейки.

A

B

C

D

1

=ЦЕЛОЕ (СЛЧИС()*25+1)

=ЕСЛИ(A911;1;0)

=ЕСЛИ(A1

=B1+C1

2

Копируем формулу

Копируем формулу

Копируем формулу

Копируем формулу

3

до

4

49

5

строки

включительно

49

Число неудачных билетов

=СЧЁТЕСЛИ(D1:D49;2)

50

Число всех билетов

=СЧЁТ(D1:D49)

52

Относительная

вероятность в %

=D50/D51*100

Задача 5.

Антон и Игорь бросают белый и черный игральные кубики и подсчитывают сумму выпавших очков. Они договорились, что если при очередной попытке в сумме выпадает 8 очков, то выигрывает Антон, а если в сумме выпадает 7 оков, то выигрывает Игорь. Является ли такая игра справедливой?

Решение.

При бросании кубиков на белом кубике может выпасть 1,2,3,4,5 или 6 очков.

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

(1,1)

(2,1)

(3,1)

(4,1)

(5,1)

(6,1)

(1,2)

(2,2)

(3,2)

(4,2)

(5,2)

(6,2)

(1,3)

(2,3)

(3,3)

(4,3)

(5,3)

(6,3)

(1,4)

(2,4)

(3,4)

(4,4)

(5,4)

(6,4)

(1,5)

(2,5)

(3,5)

(4,5)

(5,5)

(6,5)

(1,6)

(2,6)

(3,6)

(4,6)

(5,6)

(6,6)

В каждой паре на первом месте записано число очков, выпавших на белом кубике, на втором – число очков на черном кубике. Общее число равновозможных исходов равно 36. Пусть событие А означает, что при бросании кубиков в сумме выпало 8 очков, а событие В означает, что в сумме выпало 7 очков. Для события А благоприятными являются следующие 5 исходов:(2;6), (3,5), (4;4), (5,3), (6;2). Для события В благоприятными являются следующие 6 исходов:(1;6), (2,5), (3,4), (4;3), (5,2), (6;1). Отсюда: Р (А)=5/36 Р(В)=6/36.Поэтому делаем вывод шансов выиграть у Игоря больше, чем у Антона. Значит, такая игра не является справедливой.

Проверим это. Для этого: введите формулы в расчетные ячейки.

A

B

C

D

E

F

1

=ЦЕЛОЕ(СЛЧИС()*6+1)

=ЦЕЛОЕ(СЛЧИС()*6+1)

=A1+B1

1

{=ЧАСТОТА(C1:C100;D1:D12)}

=Е1/100*100

2

Копируем формулу

Копируем формулу

2

3

до

до

3

4

100

100

4

5

строки

строки

5

6

12

100

Задача 6.

На карточках написаны натуральные числа от 1 до 10 включительно, после чего карточки перевернули и перемешали. Затем наугад открыли одну карточку. Какова вероятность того, что на ней будет написано простое число или число, большее 7?

Решение.

Пусть событие А означает, что на каточке написано простое число, а событие В означает число, большее 7. Для события А благоприятными являются 4 исхода 10 равновозможных(появление одного из чисел 2,3,5,7), то есть вероятность события А равна 0,4.

Для события В благоприятными являются 3 исхода из 10 равновозможных(появление чисел 8,9,10), то есть вероятность события В равна 0,3.

Нас интересует событие С, когда на карточке написано простое число или число, большее 7. Событие С наступает тогда, когда наступает одно из событий А или В. Очевидно, что эти события являются несовместимыми. Значит, вероятность события С равна сумме вероятностей событий А и В, то есть: Р(С)= Р(А) + Р(В)=0,4+0,3=0,7.

Проверим это. Для этого: введите формулы в расчетные ячейки.

A

B

C

D

E

F

G

H

1

2

3

5

7

7

2

1

=ЦЕЛОЕ(СЛЧИС()*10+1)

=ЕСЛИ(B2=C$1;1;0)

=ЕСЛИ(B2=D$1;1;0)

=ЕСЛИ(B2=Е$1;1;0

=ЕСЛИ(B2= F$1;1;0)

=ЕСЛИ(B27;1;0)

=СУММ(C2:G2)

3

2

Копируем формулу

4

до

5

97

98

=СЧЁТЕСЛИ

(H2:H97;»0″)

99

=Н98/97

Задача 7.

В результате многократных наблюдений установили, что вероятность попадания в мишень одного стрелка равна 0,9, а другого – 0,8. Каждый из стрелков сделал по одному выстрелу по мишени. Какова вероятность того, что мишень будет поражена?

Решение.

Рассмотрим такие события: А – первый стрелок попал в мишень; В – второй стрелок попал в мишень; С – мишень поражена. События А и В независимые. Однако воспользоваться в этом случае умножением вероятностей нельзя, так как событие С наступает не только, тогда, когда оба стрелка попали в мишень, но и тогда, когда в мишень попал хотя бы один из них.

Поступим иначе. Рассмотрим события Ā, B, С, противоположные соответственно событиям А, В, С. События Ā, B являются независимыми, так как промах при выстреле по мишени первого стрелка ( событие Ā) не зависит от промаха второго стрелка( событие B). Событие С означает совместное появление событий Ā,B. Поэтому Р(С)= Р(Ā) • Р(B).

Из свойств вероятностей противоположных событий вытекает, что Р(Ā)=1-0,9=0,1;

Р(B)=1-0,8=0,2; Отсюда получаем Р(С)= Р(Ā) •Р(B)=0,1•0,2=0,02. Так как события С и С противоположные, то теперь несложно найти вероятность события С: Р(С)= 1-Р(С)=1-0,02=0,98. Значит, вероятность того, что мишень будет поражена, равна 0,98.

Проверим это на компьютере. Для этого: введите формулы в расчетные ячейки.

A

B

C

D

E

F

1

1

=СЛЧИС()

=СЛЧИС()

=ЕСЛИ(B10,1;1;0)

=ЕСЛИ(C10,2;1;0)

=C1+D1

2

2

заполнить

заполнить

заполнить

заполнить

заполнить

3

3

4

4

5

5

6

6

7

7

97

98

98

=СЧЁТЕСЛИ(F1:F97;»0″)

99

99

=F98/A97

Задания для самостоятельного выполнения:

  1. На карточках написали цифры 1,2,3, после чего карточки перевернули и перемешали. Затем последовательно открыли карточки и положили в ряд. Какова вероятность того, что получится трехзначное число, большее 300?

  2. Для экзамена подготовили билеты с номерами от 1 до 25. Какова вероятность того,

что взятый наугад учеником билет имеет:

а) однозначный номер;

б) двухзначный номер?

  1. Многократные испытания показали, что для некоторого стрелка вероятность выбить при стрельбе 10 очков равна 0,1, а вероятность выбить 9 очков равна 0,3. Чему равна для этого стрелка вероятность выбить не менее 9 очков?

МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ПРОЦЕССОВ

Случай является неотъемлемой частью нашей жизни. Если случай помог нам в чем-то, мы говорим — повезло, если оказался не в нашу пользу, мы сокрушаемся — что за судьба! Многие ученые посвятили свой талант изучению закономерностей случайных событий. Знание законов случайностей может быть полезным в разных сферах: от определения вероятности некоторого события, например выигрыша в лотерею, до использования статистических закономерностей в научных опытах. Ниже будут смоделированы ситуации, которые в теории вероятности получили название «случайных блужданий».

ЗАДАЧА. Бросание монеты

I ЭТАП. ПОСТАНОВКА ЗАДАЧИ

Описание задачи

У вас есть 10 монет. Вы хотите увеличить свой капитал в два раза, испытав заодно и свою судьбу. Суть игры проста. Играя с маклером, вы делаете ставку и бросаете монету. Если выпадет «орел», маклер выдает вам сумму вашей ставки, в противном случае — вы ему отдаете эту сумму. Ставка может быть любой: от 1 до 10 монет. Удвоение начального капитала или банкротство приводит к незамедлительному прекращению этого сеанса игры и расчету. Игра может продолжиться по вашему усмотрению. 

Цель моделирования

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

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

Формализация задачи

Уточняющий вопрос

Что моделируется?

Каков характер процесса?

Чем определяется выигрыш/проигрыш?

Какие объекты участвуют?

Чем характеризуется игрок?

Чем характеризуется монета?

Какую роль выполняет маклер?

Ответ

Процесс игры

Случайный

Монетой: орел/решка

Игрок, маклер и монета

Начальным капиталом Кнач

Ставкой СТ

Текущей наличностью Ктек

II ЭТАП. РАЗРАБОТКА МОДЕЛИ

Информационная модель

Здесь моделируется игра. Игра — это процесс, в котором участвуют три объекта: игрок, маклер и случай, который в данной игре представлен монетой. Маклер определяет проигрыш или выигрыш игрока, выплачивает выигрыш.

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

Имитировать результат падения монеты можно с помощью функции СЛЧИС(). Эта функция выдает случайные числа х в диапазоне 0 ≤ х ˂ 1. Поскольку вероятность выпадения той или иной стороны «половина на половину», то, если СЛЧИС() ˂ 0,5, то результат «орел» (1), в противном случае — «решка» (0).

Формула падения монеты при броске имеет следующий вид:

Бросок = ЕСЛИ(СЛЧИС() ˂ 0,5; 1; 0).

Объект

Параметры

Действия

Название

Значение

Игрок

Начальным капиталом Кнач

Ставкой СТ

Текущей наличностью Ктек

Исходные данные

Исходные данные

Расчетные данные

Выбор ставки

Вычисление наличности

Продолжение игры

Маклер

Бросок

Выигрыш

Проигрыш

Расчетные данные

Расчетные данные

Расчетные данные

Выплата проигранного

Прекращение игры по банкротству

Монета

Вероятность угадывания результата

Положение «орел/решка»

Константа

Расчетные данные

Подбрасывание монет

Определение результата падения

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

Наличность = ЕСЛИ (Бросок=1; Наличность+Ставка; Наличность-Ставка)

Формула определения выигрыша:

Выигрыш = ЕСЛИ(Наличность ˂ 2*Нач.Капитал;»-«; «банк») здесь выдается сообщение «банк» при увеличении наличности вдвое или больше, что является условием прекращения игры.

Функция определения проигрыша:

Проигрыш = ЕСЛИ (Наличность ˃ 0; «банкрот») здесь выдается сообщение «банкрот» по окончании наличности, что также является условием прекращения игры. 

Компьютерная модель

Для моделирования выберем среду электронной таблицы. В этой среде информационная и математическая модель объединяются в таблицу, которая содержит три области: исходные данные;  расчетные данные (результаты); статистика по экспериментам.

В ячейку А7 вводится формулу:=ЕСЛИ(СЛЧИС()

В ячейку В7 вводится формулу:=ЕСЛИ(A7=1;$B$4+$D$4;$B$4-$D$4)

В ячейку C7 вводится формулу:=ЕСЛИ(B7B$4;”-“;”банк”)

В ячейку D7 вводится формулу:=ЕСЛИ(B70;”-“;”банкрот”)

В ячейку B8 вводится формулу:=ЕСЛИ(A8=1;B7+$D$4;B7-$D$4)

Ввести в таблицу исходные данные.

A

B

C

D

1

БРОСАНИЕ МОНЕТЫ

2

3

Исходные данные

4

Начальный капитал

10

ставка

1

5

Результаты

6

Бросок

Наличность

Выиграш

Проигрыш

7

Формула 1

Формула 2

Формула 3

Формула 4

8

Статистика по экспериментам

Ставка

№ сеанса

Количество бросков до результата

Результат

III ЭТАП. КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ

План эксперимента

Тестирование

Проверить правильность ввода формул.

Эксперимент 1

Исследовать выпадение «орла» и «решки» в течение сеанса игры.

Эксперимент 2

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

Проведение исследования

Тестирование

Введите в таблицу контрольные исходные данные и расчетные формулы в первую строку. Результаты сравнить с приведенными в таблице.

IV ЭТАП. АНАЛИЗ РЕЗУЛЬТАТОВ МОДЕЛИРОВАНИЯ

На основе области «Статистика» сделать выводы по поводу ставки в одну монету; других ставок. Выбрать и обосновать собственную тактику игры (ставку). 

Задания для самостоятельного выполнения:

Задача 1. Игра в рулетку

Казино процветает из-за того, что у владельца всегда есть некоторое преимущество перед игроком. Например, в одном из вариантов рулетки колесо имеет 38 лунок: 36 пронумерованы и разбиты на черный и красный цвет, а две оставшиеся имеют № 0 и 00 и выкрашены зеленым. Игрок, ставя на красное или черное, имеет на выигрыш 18 шансов из 38, а на то, что он проиграет, — 20 шансов из 38. Пусть у вас имеется некоторый начальный капитал, который вы хотите удвоить. Постройте компьютерную модель ситуации.

Задача 2. Игра в кости

Два игрока бросают по две игровые кости. Сумма очков, выпавших на двух игровых костях, накапливается. Игра прекращается, когда один из игроков достигает суммы 101.

Игра повторяется до трех побед. 

Задача 3. Лотерея «Спортлото»

Смоделируйте серию игр в 5 из 36. Изберите следующую тактику игры:

  • зачеркивать в билетах одну и ту же комбинацию из «счастливых билетов»

  • бросать кубик и из количества точек на верхней грани составлять набор чисел.

Задача 4. Очередь

За два часа обеденного перерыва 40 человек встали в очередь за билетами.

Кассирша обслуживает одного клиента в среднем одну минуту. Каждый клиент «мучает» вопросами кассиршу до пяти минут(случайным образом). Построить модель ситуации и исследовать ее. Ответьте на вопросы:

  • Хватит ли на обслуживание всех клиентов 2 часов?

  • Если не хватит, то, сколько будет обслужено?

  • Как влияет время расспросов на время обслуживания очереди?

ИГРАЛЬНАЯ КОСТЬ. ИМИТАЦИЯ БРОСАНИЯ ИГРАЛЬНОЙ КОСТИ (VBA)

Microsoft Excel имеет встроенный язык программирования — Visual Basic for Аpplications (VBA). Этот язык позволяет создавать приложения, выполняемые в среде Microsoft Office. Редактор Visual Basic for Application позволяет существенно расширить возможности Excel.

С помощью VBA можно легко и быстро создавать различные приложения, даже не являясь специалистом в области программирования. Редактор Visual Basic for Application имеет графическую инструментальную среду, позволяющую создавать экранные формы и управляющие элементы. С его помощью можно создавать свои собственные функции для Excel, вызываемые мастером функций, разрабатывать макросы, создавать собственные меню и многое другое.

ЗАДАЧА. Снова бросаем игральный кубик

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

Игральную кость можно рассматривать как генератор случайных чисел в целочисленном интервале [1..N] с одинаковой вероятностью выпадения всех чисел интервала.

Создание интерфейса

Перед началом работы над программой в VBA, вам нужно воспользоваться графическим редактором Paint или другим, чтобы создать изображения игральной кости. Вам понадобятся шесть отдельных bmp-файлов, каждый из которых будет картинкой одной из граней кубика (кости).

Запустите VBA, начните новый проект и разместите на форме элемент управления Image, 18 надписей и четыре кнопки.

Н

Рисунок 1.

азначение каждого элемента управления: (см. рисунок 1)

  • элемент управления Image — для графического представления игральной кости (одной ее грани);

  • надписи — для показа количества выпадений того или иного числа и для подписей к ним;

  • кнопки:

Выход — для завершения программы по щелчку на ней;

Начать — чтобы начать бросание по щелчку на кнопке;

Остановить — чтобы остановить бросание по щелчку на ней;

Сброс — чтобы обнулить счет по щелчку на кнопке.

В этой программе присутствует повторяющийся процесс (бросание кости и вывод результата) через регулярные интервалы времени функция — timer.

Код:

Private Sub atimer()

Dim Kost, a, d, stavka As Integer

stavka = CDbl(TextBox2.Text)

PauseTime = 1

Start = timer

Do While timer

DoEvents

Randomize

kost = Int(Rnd * 6) + 1

Select Case kost

Case 1

Image1.Picture = LoadPicture(«C:UsersDesktopkosti1.bmp»)

Label1.Caption = Label1.Caption + 1

Case 2

Image1.Picture = LoadPicture(«C:UsersDesktopkosti2.bmp»)

Label2.Caption = Label2.Caption + 1

Case 3

Image1.Picture = LoadPicture(«C:UsersDesktopkosti3.bmp»)

Label3.Caption = Label3.Caption + 1

Label3.Caption = Label3.Caption + 1

Case 4

Image1.Picture = LoadPicture(«C:UsersDesktopkosti4.bmp»)

Label4.Caption = Label4.Caption + 1

Case 5

Image1.Picture = LoadPicture(«C:UsersDesktopkosti5.bmp»)

Label5.Caption = Label2.Caption + 1

C

Рисунок 2.

ase 6

Image1.Picture = LoadPicture(«C:UsersDesktopkosti6.bmp»)

Label6.Caption = Label6.Caption + 1

End Select

Loop

If stavka = kost Then

Label15.Caption = Label15.Caption + 3

Else

Label15.Caption = Label15.Caption — 2

End If

End Sub

Private Sub CommandButton1_Click()

stavka = CDbl(TextBox2.Text)

Label18.Visible = False

If stavka 0 Then

atimer

Else

Label18.Visible = True

Label18.Caption = «Вы не сделали ставку !!!»

End If

End Sub

Private Sub CommandButton2_Click()

PauseTime = 0

End Sub

Private Sub CommandButton3_Click()

Label1.Caption = «0»

Label2.Caption = «0»

Label3.Caption = «0»

Label4.Caption = «0»

Label5.Caption = «0»

Label6.Caption = «0»

Label15.Caption = «0»

TextBox2.Text = » «

End Sub

Private Sub CommandButton4_Click()

UserForm1.Hide

End Sub

Заключение:

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

Задания для самостоятельного выполнения:

Задача 1. Эксперимент состоит в подсчете числа бросаний двух костей до выпадения двух шестерок. Требуется найти среднее число бросаний, необходимых для получения двух шестерок. (Проводится N экспериментов).

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ В ЭКОНОМИКЕ

Задача 1. Пусть известно, что в штате больницы состоит 6 санитарок, 8 медсестер, 10 врачей, 3 заведующих отделениями, главный врач, заведующий аптекой, заведующий хозяйством и заведующий больницей. Общий месячный фонд зарплаты составляет 10 000 у. е. Необходимо определить, какими должны быть оклады сотрудников больницы.

Построим модель решения этой задачи. За основу возьмем оклад санитарки, а остальные оклады будем вычислять, исходя из него: во сколько-то раз или на сколько-то больше. Говоря математическим языком, каждый оклад является линейной функцией от оклада санитарки: , где С – оклад санитарки; Аi и Bi – коэффициенты, которые для каждой должности определяются следующим образом:

– медсестра получает в 1,5 раза больше санитарки (; );

– врач – в 3 раза больше санитарки (;);

– заведующий отделением – на 30 у. е. больше, чем врач (; );

– заведующий аптекой – в 2 раза больше санитарки (; );

– заведующий хозяйством – на 40 у.е. больше медсестры (; );

– главный врач – в 4 раза больше санитарки (; );

– заведующий больницей – на 20 у.е. больше главного врача (; ).

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

где N1 – число санитарок, N2 – число медсестер и т. д.

В этом уравнении нам известны А1…А8, В1…В8 и N1…N8, а С неизвестно.

Анализ уравнения показывает, что задача составления расписания свелась к решению линейного уравнения относительно С. Решим его.

– Заполните таблицу в соответствии с образцом:

A

B

C

D

E

F

G

1

Должность

Коэф.

А

Коэф.

В

Зарплата

сотрудника

Кол-во

сотрудников

Суммарная

зарплата

Зарплата

санитарки

2

Санитарка

1

0

=B2*$G$2+C2

6

=D2*E2

150

3

Медсестра

1,5

0

8

4

Врач

3

0

10

5

Зав.отделением

3

30

3

6

Зав. аптекой

2

0

1

7

Завхоз

1,5

40

1

8

Главврач

4

0

1

9

Зав. больницей

4

20

1

10

Итого

=СУММ(F2:F9)

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

A

B

C

D

E

F

G

1

Должность

Коэф.

А

Коэф.

В

Зарплата

сотрудника

Кол-во

сотрудников

Суммарная

зарплата

Зарплата санитарки

2

Санитарка

1

0

150

6

900

150

3

Медсестра

1,5

0

225

8

1800

4

Врач

3

0

450

10

4500

5

Зав.отделением

3

30

480

3

1440

6

Зав. аптекой

2

0

300

1

300

7

Завхоз

1,5

40

265

1

265

8

Главврач

4

0

600

1

600

9

Зав. больницей

4

20

620

1

620

10

10425

Как видите, взяв оклад санитарки за 150, мы превысили месячный фонд зарплаты.

Определите оклад санитарки так, чтобы расчетный фонд был равен заданному.

Для этого:

– активизируйте команду Подбор параметра;

– в поле «Установить в ячейке» появившегося окна введите ссылку на ячейку F10, содержащую формулу;

– в поле «Значение» наберите искомый результат 10000.

– В поле «Изменяя значение ячейки» введите ссылку на изменяемую ячейку G2 и щелкните кнопкой ОК. Таблица будет выглядеть следующим образом:

A

B

C

D

E

F

G

1

Должность

Коэф.

А

Коэф.

В

Зарплата

сотрудника

Кол-во

сотрудников

Суммарная

зарплата

Зарплата санитарки

2

Санитарка

1

0

143,80

6

862,77

143,79

3

Медсестра

1,5

0

215,69

8

1 725,55

4

Врач

3

0

431,39

10

4 313,87

5

Зав. отделением

3

30

461,39

3

1 384,16

6

Зав. аптекой

2

0

287,59

1

287,59

7

Завхоз

1,5

40

255,69

1

255,69

Главврач

4

0

575,18

1

575,18

Зав. больницей

4

20

595,18

1

595,18



Итого

10 000,00

Задача об использовании сырья

Что такое линейное программирование

Многие экономические процессы описываются математическими моделями, в которых требуется найти такие значения переменных параметров, при которых достигается максимальное или минимальное значение линейной функции от этих переменных, при различных ограничениях, задаваемых линейными управлениями или неравенствами. Искомые переменные, называются контролируемыми факторами, функция – целевой функцией. Задачи такого типа называются задачами линейного программирования.

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

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

Предприятие выпускает курс n видов продукции, которые обозначим: P1, P2,…, Pn. Для этого используется m вида сырья: S1, S2, … , Sm, запасы которого равны соответственно b1, b2, … , bm. Известно, что расход i-го вида сырья для производства единицы j-го вида продукции Pj равен aij. От реализации единицы j-го вида продукции Pj предприятие получает доход, равный Cj. Требуется составить такой план производства каждого вида продукции, чтобы при имеющихся запасах сырья обеспечить предприятию максимальный суммарный доход.

Математическая модель

Построение математической модели осуществляется в три этапа:

  1. Определение переменных, для которых будет составляться математическая модель.

  2. Формирование целевой функции.

  3. Формирование системы ограничений.

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

Материалы(Si)

Запасы материалов (bi), м

Расход материалов на продукцию Pj, м

Палатка (модель 1)

Палатка (модель 2)

Водооттал. ткань

105

7

4

Утеплитель

68

3

5

Москитная сетка

66

1

6

Удельный доход от реализации (Сj)

5

6

Ячейки, выделенные фоном, содержат значения расхода каждого вида сырья (материалов) на производство единицы каждого вида продукции. Это и есть матрица aij. Такой расход сырья называется удельным. Обозначим план пошива палаток модели 1 через X (шт.), а план пошива палат моделей палаток модели 2 через Y (шт.). При таком плане расход материалов, например водоотталкивающей ткани, составит 7 X + 4 Y метров. Поскольку расход материала не может превышать имеющиеся запасы, получаем ограничения по расходу водоотталкивающей ткани 7 X + 4 Y  105. Аналогические рассуждения приводят к ограничениям и по другим видам материалов. Кроме того, значения X и Y не могут быть отрицательными. Сформулированные условия запишем в виде системы неравенств, которым должны удовлетворять неизвестные X и Y:

Доход от реализации одной палатки модели 1 равен 5 единицам стоимости (например, 5 тыс. руб.), а доход от реализации палатки модели 2 — 6 единицам стоимости тогда суммарный доход предприятия от реализации всей произведенной продукции определится формулой: Z =5 X + 6 Y. Следовательно, Z есть функция от X и Y. Z(X, Y) является целевой функцией, поскольку целью производства является получение максимального дохода.

Таким образом, математическая формулировка задачи звучит так: требуется найти такое решение системы линейных неравенств (1)-(5),при котором целевая функция Z(X, Y) принимает максимальное значение.

Решение с помощью электронных таблиц

П

Таблица 1.

одготовим данные, как это показано в таб.1. В ячейках В2 и В3 будет получено решение, т.е. найдены объемы производства каждого вида продукции, при которых суммарных доход, вычисляемый в ячейках В17, принимает максимальное значение. Диапазон ячеек В13:В15 содержит формулы, с помощью которых задаются левые части неравенств (1)-(2), ограничивающих расход сырья. Диапазон ячеек D13:D15 содержит запасы материалов.

A

B

C

D

1

Объем производства

2

Палатки (модель 1)

3

Палатки (модель 2)

4

5

6

Материалы

Запасы материалов

Палатки (модель 1)

Палатки (модель 2)

7

Водооттал. ткань

105

7

4

8

Утеплитель

68

3

5

9

Москитная сетка

66

1

6

10

Удельный доход от реализации

5

6

11

12

Ограничения

13

=C7*$B$2+D7*$B$3

105

14

=C8*$B$2+D8*$B$3

68

15

=C9*$B$2+D9*$B$3

66

16

17

Суммарный доход

=C10*B2+D10*B3

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

Д

Рисунок 1.

ля этого выполняются следующие действия:

В поле Установить целевую ячейку вводится адрес ячейки В17.

  • Для поля Равной выбирается параметр максимальному значению.

  • В поле Изменяя ячейки вводится диапазон ячеек с неизвестными В2:В3.

  • Щелчком на кнопке Добавить вызывается окно Добавить ограничение.

  • Для ввода первого ограничения в поле Ссылка на ячейку указывается адрес ячейки В13, а в поле Ограничение – адрес ячейки D13. Между ними выбирается знак отношения  и нажимается кнопка Добавить. Аналогично добавляются два оставшихся ограничения.

  • Щелчком на кнопке параметры вызывается окно Параметры поиска решения (рис. 2), в котором необходимо отметить, что ищутся неотрицательные значения X и Y и используется линейная модель. Это означает то, что целевая функция линейно зависит от переменных X и Y.

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

Рисунок 2.

После того как все установки сделаны, следует нажать кнопку Выполнить.

В результате в ячейках В2 и В3 будет получено решение – объем производства палаток первой и второй моделей (таб.2), а в ячейке В17 – максимальный доход, полученный от реализации такого объема продукции. Как исследовало ожидать, полученные значения совпадают с результатами графического метода решения задачи: X = 11, Y = 7, Z = 97.

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

A

B

C

D

1

Объем производства

2

Палатки (модель 1)

11

3

Палатки (модель 2)

7

4

5

6

Материалы

Запасы материалов

Палатки (модель 1)

Палатки (модель 2)

7

Водооттал. ткань

105

7

4

8

Утеплитель

68

3

5

9

Москитная сетка

66

1

6

10

Удельный доход от реализации

5

6

11

12

Ограничения

13

105

105

14

68

68

15

53

66

16

17

Суммарный доход

97

Задания для самостоятельного выполнения:

Задача 1.

Предположим, что мы решили производить несколько видов конфет. Назовем их условно «А», «В», «С». Известно, что реализация 10 килограммов конфет «А» дает прибыль 9 у. е., «В» – 10 у. е., «С» – 16 у. е.

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

Нормы расхода сырья на производство 10 кг конфет каждого вида приведены ниже.

Сырье

Нормы расхода сырья

Запас сырья

А

В

С

Какао

18

15

12

360

Сахар

6

4

8

192

Наполнитель

5

3

3

180

Прибыль

9

10

16

Задача 2.

Ваше предприятие выпускает изделия 1, изделия 2, изделия 3, используя общий склад комплектующих. Каждое изделие состоит из деталей, имеющихся на складе. В связи с ограниченностью запаса необходимо найти оптимальное соотношение объемов выпуска изделий. Прибыль, получаемая от каждого изделия, равна соответственно 47,32; 31,55; 22,08. Число деталей, идущих на каждое изделие, указано в таблице.

Наличие на складе

Изделие 1

Изделие 2

Изделие 3

Деталь 1

450

1

1

0

Деталь 2

250

1

0

0

Деталь 3

800

2

2

1

Деталь 4

450

1

1

0

Деталь 5

600

2

1

1

Задача 3.

В ресторане готовятся фирменные блюда трех видов (блюдо А, блюдо В и блюдо С) с использованием при приготовлении ингредиентов трех видов (ин­гредиент 1, ингредиент 2 и ингредиент 3). Расход ингредиентов в граммах на блю­до задается следующей таблицей:

Вид ингредиента

Блюдо А

Блюдо В

Блюдо C

Ингредиент 1

20

50

10

Ингредиент 2

20

0

40

Ингредиент 3

20

10

10

Стоимость приготовления блюд одинакова (100 руб.).

Ежедневно в ресторан поступает 5 кг ингредиента 1 и по 4 кг ингредиентов видов 2 и 3. Каково оптимальное соотношение дневного производства блюд различного вида, если производственные мощности ресторана позволяют использовать весь запас поступивших продуктов?

Задача 4.

Пошивочная мастерская планирует выпуск двух видов костюмов: мужских и женских. На женский костюм требуется 1 м шерсти, 2 м лавсана и 1 человеко-день трудозатрат. На мужской костюм — 3,5 м шерсти, 0,5 м лавсана и 1 челове­ко-день трудозатрат. Всего имеется 350 м шерсти и 240 м лавсана, 150 человеко-дней трудозатрат. Предусматривается выпуск не менее 110 костюмов, причем, необходимо обеспечить прибыль не менее 1400 руб. Определите оптимальное количество костюмов каждого вида, если прибыль от реализации женского костюма составляет 10 руб., а мужского — 20 руб.

ПОСТРОЕНИЕ И ИССЛЕДОВАНИЕ ОПТИМИЗАЦИОННОЙ МОДЕЛИ НА VBA

Задача 1.

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

Тип заготовки Способы раскроя
1-й

2-й

3-й

А

10

3

8

В

3

6

4

Необходимо выбрать оптимальное сочетание способов раскроя, для того чтобы получить 500 заготовок типа А и 300 заготовок типа В.

Формальная модель:

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

X1— количество листов, раскроенное способом 1;

X2— количество листов, раскроенное способом 2;

X3— количество листов, раскроенное способом 3.

Ограничения:

Определяются значениями требуемых количеств заготовок типа А и В:

10X1+3X2+8X3=500 и 3X1+6X2+4X3=300

Кроме того, количества листов не могут быть отрицательными: X10, X20, X30 и дробными X1, X2, X3 – целые.

Создание интерфейса:

Запустите V BA, начните новый проект и разместите на форме 8 надписей; одну кнопку.

P

Рисунок 1.

rivate Sub CommandButton1_Click()

Dim x1, x2, x3, F As Integer

F = 300

For x1 = 0 To 100

For x2 = 0 To 100

For x3 = 0 To 100

If (10 * x1 + 3 * x2 + 8 * x3 = 500) And (3 * x1 + 6 * x2 + 4 * x3 = 300) Then

If x1 + x2 + x3

F = x1 + x2 + x3

Label1.Caption = x1

Label2.Caption = x2

Label3.Caption = x3

Label4.Caption = F

End If

End If

Next x3

Next x2

Next x1

End Sub

Задания для самостоятельного выполнения:

Задача 1.

Фабрика производит два вида красок: первый – для наружных, а второй – для внутренних работ. Для производства красок используется два ингредиента: А и В. Максимально возможные суточные запасы этих ингредиентов составляют 6 и 8 т соответственно. Известные расходы А и В на 1 т красок:

Ингредиенты

Расход ингредиентов, т.ингр./т.краски

Запас, т.ингр./сут

Краска 1-го вида

Краска 2-го вида

А

1

2

6

В

2

1

8

Изучение рынка сбыта показало, что суточный спрос на краску 2-го вида никогда не превышает спроса на краску 1-го вида более, чем на 1 т. Кроме того, спрос на краску 2-го вида не превышает 2 т /сут. Оптовые цены 1 т красок равны: 3 т. руб. для краски 1-го вида и 2 т. руб. для краски 2-го вида. Найти какое количество краски каждого вида необходимо производить, чтобы доход от реализации продукции был максимальным.

Задача 2.

Фабрика производит два вида красок: первый – для наружных, а второй – для внутренних работ. Для производства красок используется два ингредиента: А и В. Максимально возможные суточные запасы этих ингредиентов составляют 6 и 8 т соответственно. Известные расходы А и В на 1 т красок:

Ингредиенты

Расход ингредиентов, т.ингр./т.краски

Запас, т.ингр./сут

Краска 1-го вида

Краска 2-го вида

А

1

2

6

В

2

1

8

Изучение рынка сбыта показало, что суточный спрос на краску 2-го вида никогда не превышает спроса на краску 1-го вида более чем на 1 т. Кроме того, спрос на краску 2-го вида не превышает 2 т /сут. Оптовые цены 1 т красок равны: 3 т. руб. для краски 1-го вида и 2 т. руб. для краски 2-го вида. Найти какое количество краски каждого вида необходимо производить, чтобы доход от реализации продукции был максимальным.

Транспортная задача

Рассмотрим еще одну типовую задачу линейного программирования.

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

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

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

  • Вывоз всей продукции от поставщика;

  • Минимизация транспортных затрат.

Математическая модель

Рассмотрим простейший вариант транспортной задачи. В т пунктах отправления (складах) А1, А2, …, Ат находится однородный груз в количестве а1, а2, …, ат единиц соответственно. Потребность в этом грузе в п пунктах назначения (магазинах) В1, В2, …, Вп составляет b1, b2, …, bn соответственно. Будем считать, что сумма запасов на складах равна суммарным потребностям в магазинах, т.е. = . Такая модель называется замкнутой.

Обозначим через Сij удельные затраты, т.е. затраты на перевозку единицы груза из iго пункта в j-й пункт назначения, а через Xij – неизвестный объем груза, который надор перевезти из j— го пункта отправления в j-й пункт назначения.

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

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

Рассмотрим транспортную задачу на примере четырех складов и четырех магазинов.

Задача. Известно, что на складах имеется запас муки в количестве 45, 100, 20, 75 мешков. А магазины имеют потребность в этом товаре в количестве 30, 80, 95, 35 мешков.

Магазин № 1

Магазин №2

Магазин №3

Магазин №4

b1 = 30

b2 = 80

b3 = 95

b4 = 35

Склад № 1

a1 = 45

6

3

7

10

Склад № 2

a2 = 100

10

4

12

10

Склад № 3

a3 = 20

5

9

8

11

Склад № 4

a4 = 75

4

2

4

8

Ячейки, выделенные фоном, содержат удельные стоимости перевозок Cij. Например, стоимость перевозки единицы груза (мешка) со склада № 3 в магазин № 4 составляет 11 денежных единиц. Проверим замкнутость модели. Для этого просуммируем все запасы муки на складах: 45 + 100 + 20 + 75 = 240. Найдем суммарные потребности магазинов в муке: 30 + 80 + 95 + 35 = 240. Таким образом, модель является замкнутой, т. е. потребность магазинов в муке равна запасу на складах.

Весь груз со складов должен быть вывезен. Этот факт для i-го склада можно отразить следующим образом: Xi1 + Xi2 + Xi3 + Xi4 = ai. Весь груз в магазины должен быть ввезен. Для j-го магазина будет справедливо следующее: X1j + X2j + X3j + X4j = bj.

Таким образом, удовлетворению спроса магазинов отвечает выполнение системы уравнений:

Вывоз всего груза со складов достигается при выполнении системы уравнений:

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

Z = C11 X11 + … + C14X14 + C21 · X 21 + … + С24 · X24 + C31 · X31 +…+ C34 · X34 +C41 · X41 +…+ C44 · X44.

Решение с помощью электронных таблиц

Р

Таблица 1.

ассмотрим решение задачи на примере табличного процессора Microsoft Excel.

Представим данные в виде, показанном в таблице 1.

A

B

C

D

E

F

G

1

Матрица перевозок

2

Магазин 1

Магазин 2

Магазин 3

Магазин 4

3

Склад № 1

=сумм

4

Склад № 2

=сумм

5

Склад № 3

=сумм

6

Склад № 4

=сумм

7

=сумм

=сумм

=сумм

=сумм

8

9

10

11

bj

30

80

95

35

12

ai

Магазин 1

Магазин 2

Магазин 3

Магазин 4

13

45

Склад № 1

6

3

7

10

14

100

Склад № 2

10

4

12

10

15

20

Склад № 3

5

9

8

11

16

75

Склад № 4

4

2

4

8

17

18

19

Сумм. затраты:

=СУММПРОИЗВЕД(С3:F16;C13:F16)

Исходными данными являются удельные затраты на перевозки (диапазон ячеек C13:F16), запасы муки на складах (диапазон ячеек A13:A16), потребности магазинов в муке ( диапазон ячеек С11:F11).

Диапазон ячеек C3:F6 предназначен для получения искомого решения-объемов перевозок груза. Суммируя объемы перевозок в каждой строке, задаем левые части уравнений-ограничений, обеспечивающий вывоз всего груза с каждого склада. Суммированием объемов перевозок по столбцам задаются левые части уравнений-огранечений, удовлетворяющих спрос каждого магазина в муке. Формула =СУММПРОИЗВ (С3:F6; C13:F16), вычисляющая целевую функцию(суммарные затраты) Z, размещена в ячейке С19. Встроенная функция СУММПРОИЗВ суммирует произведения, полученные построчным перемножением содерживого ячеек из диапозонов С3:F6; C13:F16.

Например, СУММПРОИЗВ (А1:В2;А3:B4) =A1*A3+B1*B3+A2*A4+B2*B4.

Рисунок 1.

Установите курсор в ячейку С19, в которой должно быть выполнено значение целевой функции.

Выполним команду Поиск решения.

В открышевшемся окне необходимо провести установки, показанные на рис.1.

В

Таблица 2.

результате будет найдено решение, представленное в таблице 2.

A

B

C

D

E

F

G

1

Матрица перевозок

2

Магазин 1

Магазин 2

Магазин 3

Магазин 4

3

Склад № 1

0

10

35

0

45

4

Склад № 2

30

70

0

0

100

5

Склад № 3

0

0

20

0

20

6

Склад № 4

0

0

40

35

75

7

30

80

95

35

8

9

10

11

bj

30

80

95

35

12

ai

Магазин 1

Магазин 2

Магазин 3

Магазин 4

13

45

Склад № 1

6

3

7

10

14

100

Склад № 2

10

4

12

10

15

20

Склад № 3

5

9

8

11

16

75

Склад № 4

4

2

4

8

17

18

19

Сумм.затраты:

1455

Искомые объемы перевозок представлены в ячейках C3:F6. Со склада №1 мука будет отправлена в магазины №2 и 3 в объемах 10 и 35 мешков соответсвенно, со склада №2 – в магазины №1 и 2 в объемах 30 и 70 мешков, со склада №3 — в магазин №3 в объеме 20 мешков, со склада №4 в магазины №3 и 4 в объемах 40 и 35 мешков. Минимальные затраты на перевозки составляют 1455 денежных единиц.

Задания для самостоятельного выполнения:

Задача 1. Найти оптимальный объем перевозок товаров с 3 заводов на 5 региональных складов. То есть минимизировать затраты на перевозку грузов от заводов-производителей на торговые склады.

Производительность каждого завода и затраты на перевозку от завода на каждый склад приведены в таблице:

Заводы

Поставки

Затраты

склад 1

склад 2

склад 3

склад 4

склад 5

Завод 1

310

10

8

6

5

4

Завод 2

260

6

5

4

3

6

Завод 3

280

3

4

5

5

9

Технология работы:

– Заполните таблицу в соответствии с образцом:

A

B

C

D

E

F

G

1

Заводы

Всего

склад 1

склад 2

склад 3

склад 4

склад 5

2

Завод 1

=СУММ (С2:G2)

1

1

1

1

1

3

Завод 2

Заполнить вниз

1

1

1

1

1

4

Завод 3

1

1

1

1

1

5

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

6

Итого

=СУММ (С2;С4)

7

8

Потреб. складов

180

80

200

160

220

9

Заводы

Поставки

Затраты

10

Завод 1

310

10

8

6

5

4

11

Завод 2

260

6

5

4

3

6

12

Завод 3

280

3

4

5

5

9

13

14

Перевозка

=СУММ (С14:G14)

=С2*С10+С3*С11+С4*С12

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

Задача 2.

Авиакомпания по заказу армии должна перевезти на некотором участке 700 человек. В распоряжении компании имеется два типа самолетов, которые можно использовать для перевозки. Самолет первого типа перевозит 30 пассажиров и имеет экипаж 3 человека, второго типа – 65 и 5 соответственно.

Эксплуатация 1 самолета первого типа обойдется 5000$, а второго 9000$. Сколько надо использовать самолетов каждого типа, если для формирования экипажей имеется не более 60 человек.

МОДЕЛИРОВАНИЕ ЗАДАЧИ ОПТИМАЛЬНОГО УПРАВЛЕНИЯ

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

Координаты населенных пунктов приведены в табл. 1.

Таблица 1

Номера населенных пунктов

Координаты населенных пунктов

Х

У

1

2,0

8,0

2

10,0

9,0

3

1,0

2,0

4

4,0

9,0

5

9,0

5,0

Решение.

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

Для решения задачи введем обозначения (табл. 2).

Таблица 2

Объект

Координата Х

Координата У

Населенный пункт №1

Х1

У1

Населенный пункт №2

Х2

У2

Населенный пункт №3

Х3

У3

Населенный пункт №4

Х4

У4

Населенный пункт №5

Х5

У5

Аэродром

ХА

УА

Железнодорожная станция

ХС

УС

Минимальное расстояние от железнодорожной станции до i-го населенного пункта (i = 1, …, 5) через аэропорт можно определить следующим образом:

Решение с помощью электронных таблиц

В соответствующие ячейки Табл. 3 введите расчетные формулы.

Таблица 3

Адрес ячейки

Содержимое ячейки (формула)

1

Е5

=КОРЕНЬ(($B$12-B5)^2+($C$12-C5)^2)

2

E6—E9

Скопировать формулу из Е5 в E6—E9

3

В16

=КОРЕНЬ((B14-B12)^2+(C14-C12)^2)+СУММ(Е5:Е9)

Компьютерная модель

A

B

C

D

E

1

Моделирование расположения аэродрома и железнодорожной станции

2

Расположение населенных пунктов

3

Объект, населенный пункт

Координата

Расстояние между

Аэродромом и населенными пунктами

x

y

4

5

Населенный пункт №1

2,0

8,0

6

Населенный пункт №2

10,0

9,0

7

Населенный пункт №3

1,0

2,0

8

Населенный пункт №4

4,0

9,0

9

Населенный пункт №5

9,0

5,0

10

11

Оптимальные координаты объектов (аэродрома и железнодорожных станций)

12

Аэродром

13

Железнодорожная станция

14

15

16

Оптимальное суммарное расстояние от аэродрома до станции и всех населенных пунктов

Эксперимент № 1

  • Применяя надстройку Excel «Поиск решения» ( Поиск решения), назначьте в качестве целевой ячейки В16 и установите переключатель Равной: равным минимальному значению.

  • Укажите в качестве изменяемых ячеек ячейки $B$12:$C$12; $B$14:$C$14 (координаты аэродрома и станции). Ограничения не вводите.

Щелкните по кнопке Выполнить. Фрагмент рабочего листа

A

B

C

D

E

1

Моделирование расположения аэродрома и железнодорожной станции

2

Расположение населенных пунктов

3

Объект, населенный пункт

Координата

Расстояние между

Аэродромом и населенными пунктами

x

y

4

5

Населенный пункт №1

2,0

8,0

2,5

6

Населенный пункт №2

10,0

9,0

5,7

7

Населенный пункт №3

1,0

2,0

6,6

8

Населенный пункт №4

4,0

9,0

1,5

9

Населенный пункт №5

9,0

5,0

5,2

10

11

Оптимальные координаты объектов (аэродрома и железнодорожных станций)

12

Аэродром

4,5

7,6

13

14

Железнодорожная станция

4,5

7,6

15

16

Оптимальное суммарное расстояние от аэродрома до станции и всех населенных пунктов

21,5

  • Постройте диаграмму, выберите тип Точечная.

  • Проанализируйте результат.

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

Эксперимент № 2

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

Таблица 4

Объект

Координата Х

Координата У

Озеро

≥ 0 и ≤4

≥ 3 и ≤ 6

Железная дорога

≥ 6

=1

Рисунок 1.

  • Установите курсор в ячейку В16.

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

  • Произведите поиск решения.

Фрагмент рабочего листа (после ввода ограничений)

A

B

C

D

E

1

Моделирование расположения аэродрома и железнодорожной станции

2

Расположение населенных пунктов

3

Объект, населенный пункт

Координата

Расстояние между

Аэродромом и населенными пунктами

x

y

4

5

Населенный пункт №1

2,0

8,0

3,8

6

Населенный пункт №2

10,0

9,0

5,8

7

Населенный пункт №3

1,0

2,0

5,9

8

Населенный пункт №4

4,0

9,0

3,2

9

Населенный пункт №5

9,0

5,0

3,9

10

11

Оптимальные координаты объектов (аэродрома и железнодорожных станций)

12

Аэродром

5,2

6,1

13

14

Железнодорожная станция

6,0

1,0

15

16

Оптимальное суммарное расстояние от аэродрома до станции и всех населенных пунктов

27,5

ЗАДАЧИ ТЕОРИИ РАСПИСАНИЙ

Постановка задач теории расписаний

В задачах теории расписаний рассматриваются комплексы работ, связанных общим объектом или общим исполнителем, направленные на достижение определенной цели. Модели теории расписаний позволяют найти наиболее дешевый или наиболее быстрый порядок выполнения работ.

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

При выборе наиболее быстрого по времени варианта работ минимизируется отрезок времени от начала работ до их окончания (достижения цели). Простейшей задачей такого типа является задача и двух станках. На двух станках надо обработать N деталей. Каждая из деталей обрабатывается сначала на одном станке, а затем – на втором. Время обработки каждой детали на каждом станке известно. Задача состоит в том, что необходимо определить такой порядок обработки деталей, при котором время выполнения всей работы будет минимальным. Порядок обработки, минимизируется время T, называется оптимальным.

Задача о шлюзе

Математическая модель

Через шлюз последовательно должны пройти N судов. Известно время (в часах) шлюзования каждого судна – ti и ущерб от 1 часа простоя судна — Ui денежных единиц. Здесь индекс обозначает порядковый номер судна в очереди. Например, t1 это время шлюзования 1-го судна, t2 – время шлюзования 2-го судна, u2 – стоимость 1 часа простоя в ожидании своей очереди 2-го судна и т.д. Время простоя в очереди, например, 4-го судна, если оно ждет, пока через шлюз пройдут первые три, равно: t1 + t2 + t3 , а материальный ущерб от простоя 4-го судна равен: u4(t1 + t2 + t3).

Показатель экономической эффективности работы шлюза связан с суммарным ущербом от простоя судов в ожидании своей очереди на шлюзовании. Например, если к шлюзу подошли одновременно 4 судна и они пропускаются через шлюз в порядке их номеров, то суммарный ущерб от простоя (S) вычисляется так: S = u2t1 + u3(t1 + t2) + u4(t1 + t2 + t3).

В общем случае, если в очереди находятся N судов, то суммарный ущерб от простоя выражается формулой: S = .

Задача состоит в том, чтобы определить такой порядок пропускания судов через шлюз, при котором величина S будет минимальна.

Математический анализ этой задачи приводит к следующему ответу: минимум величины S достигается в том случае, если суда пропускаются в порядке убывания величины . Этот принцип можно пояснить на следующем примере. Пусть к шлюзу подошли одновременно два судна, время шлюзования которых одинаково (t1 = t2 ), но стоимость простоя разная. Тогда в первую очередь надо пропустить то судно, у которого простой стоит дороже. Если же у двух судов в очереди одинаковая стоимость простоя ( u1 = u2 ), то вперед надо пропустить то судно, у которого меньше время шлюзования.

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

Решение в электронных таблицах

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

№ судна

1

2

3

4

5

Время шлюзования

45

36

28

24

72

Ущерб от простоя

5

12

7

4

3

Вычислим общий ущерб от простоя по формуле:

S= u2 • t1 + u3 •(t1 + t2) + u4 •(t1 + t2 + t3) + u5 •(t1 + t2 + t3 + t4).

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

S=12•45+7•(45+36)+4•(45+36+28)+3•(45+36+28+24) =1942.

Найдем оптимальный порядок (расписание) шлюзования судов, обеспечивающий минимальный ущерб от простоя.

Чтобы найти ущерб от простоя, в ячейках С6:F6 вычислим суммы вида : , а в ячейку B7 поместим формулу = СУММПРОИЗВ(C3:F3;C6:F6).

В соответствии с этой формулой вычисляется сумма произведений: C3*C6+D3*D6+E3*E6+F3*F6 Таблица 2.

A

B

C

D

E

F

1

№ судна

1

2

3

4

5

2

Время простоя

45

36

28

24

72

3

Ущерб от простоя

5

12

7

4

3

4

5

6

=B2

=C6+C2

=D6+D2

=E6+E2

7

=СУММПРОИЗВ(C3:F3;C6:F6)

В 4-ю строку таблицы впишем формулы, по которым для каждого судна сосчитается величина k= . Затем отсортируем столбцы диапазона ячеек B1:F4 в порядке возрастания значений k в 4-й строке. Указание на то, что производится сортировка столбцов, задается с помощью диалогового окна Параметры сортировки: столбцы диапозона; cортировать по – строка 4, по возрастанию.

После проведения сортировки в диапазоне ячеек B1:F1 будет содержаться порядок прохождения судов через шлюз со следующими номерами: № 2, 3, 4, 1, 5. При такой очередности общий ущерб от простоя будет минимальным и составит 1347 денежных единиц, в то время как при шлюзовании судов в порядке их прибытия общий ущерб составлял 1942 денежных единицы. Таблица 3.

A

B

C

D

E

F

1

№ судна

2

3

4

1

5

2

Время простоя

36

28

24

45

72

3

Ущерб от простоя

12

7

4

5

3

4

k

3

4

6

9

24

5

6

36

64

88

133

7

Общий ущерб

1347

ИССЛЕДОВАНИЕ МЕТОДОВ ВЫЧИСЛЕНИЯ ОПРЕДЕЛЁННЫХ ИНТЕГРАЛОВ

Задача 1. Вычислить по формуле прямоугольников   с шагом . Заметим, что этот интеграл легко может быть вычислен аналитически:  

Чтобы найти приближённое значение интеграла  , нужно:

  • разделить отрезок [ab] на n равных частей точками х0= а, х1, х2,…, х n -1, х n = b;

  • вычислить значения подынтегральной функции   в точках деления, т.е. нати  у 0 = f (x0)у 1 =f (x1)у 2 = f (x2)у n -1 = f (xn-1)у n = f (xn) ;

  • воспользоваться одной из приближённых формул.

Метод прямоугольников:

Простейшим приближённым методом является метод прямоугольников.

Геометрически идея способа вычисления определённого интеграла по формуле прямоугольников состоит в том, что площадь криволинейной трапеции АВСD  заменяется суммой площадей прямоугольников, одна сторона которых равна, а другая —

Для нахождения определённого интеграла методом прямоугольников необходимо ввести значения подынтегральной функции f(x) в рабочую таблицу Excel в диапазоне х  [0;3 ] с заданным шагом х = 0,1.

A

B

1

Аргумент

Функция

2

0

=A2^2

3

0,1

4

0,2

5

6

7

8

9

32

33

= 0,1* Сумм (В3:В32)

В ячейке В33 появляется приближённое значение искомого интеграла (9,455) .

Сравнивая полученное приближённое значение с истинным значением интеграла (9), можно видеть, что ошибка приближения метода прямоугольников в данном случае равна= 0,455

Метод трапеций:

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

Для нахождения определенного интеграла методом трапеций, как и в случае использования метода прмоугольников, значения подынтегральной функции f(x) должны быть введены рабочую таблицу Excel в диапазоне х  [0;3] с заданным шагом х = 0,1.

A

B

1

Аргумент

Функция

2

0

=A2^2

3

0,1

4

0,2

5

6

7

8

9

32

33

=0,1*((B2+B32)/2+СУММ(B2:B31))

В ячейке В34 появляется приближённое значение искомого интеграла (9,005) .

Сравнивая полученное приближённое значение с истинным значением интеграла (9), можно видеть, что ошибка приближения метода трапеций в данном случае равна= 0,005

Метод трапеций обычно даёт более точное значение интеграла, чем метод прямоугольников

Задача 2.  Вычислить по формуле прямоугольников   с шагом .

Решение с помощью VBA

С

Рисунок 1.

оздание интерфейса:

Код программы:

Private Sub CommandButton3_Click()

End

End Sub

Рисунок 1.

Private Sub UserForm_Initialize()

With Me.ComboBox1

.AddItem «Метод_Трапеции»

.AddItem «Метод_Прямоугольников»

End With

End Sub

Private Sub CommandButton2_Click()

Dim n As Single, a As Single, x As Single

Dim b As Single, s As Single, s1 As Single

Dim s2 As Single, z As Single, i As String

i = ComboBox1.Value

a = TextBox1.Text

b = TextBox2.Text

n = TextBox3.Text

Select Case i

Case Is = «Метод_Трапеции»

h = (b — a) / n: s = 0

x = a + h

Do While x

s = s + fun(x)

x = x + h

Loop

s = (h / 2) * (fun(a) + 2 * s + fun(b))

T

Рисунок 2.

extBox4.Text = s

Case Is = «Метод_Прямоугольников»

h = (b — a) / n: s1 = 0

x = a + h

Do While x

s1 = s1 + fun(x)

x = x + h

Loop

s1 = h * s1

TextBox5.Text = s1

End Select

End Sub

Function fun(x As Single) As Single

fun = x ^ 2

End Function

Задания для самостоятельного выполнения:

Задача 1. Методом прямоугольников и методом трапеций найти следующие интегралы:

  1. при x=0,1;

  2. при x=0,1.

Задание 2. Построить график и вычислить площадь криволинейной трапеции, ограниченной линиями y=x2sin x, y=0, x=a, x=b (ai = a+(b-a) СЛЧИС()).

Литература:

  1. Информатика и ИКТ. Профильный уровень: учебник для 11 класса. / И.Г. Семакин, Е.К. Хеннер, Л.В.Шестакова.— М.: БИНОМ, Лаборатория знаний, 2012. — 330 с.

  2. Информатика. Сборник элективных курсов. А.А.Чернов. Волгоград: Учитель, 2007г

  3. http://иванов-м.рф/informatika_11/informatika_materialy_zanytii_11_20.html

  4. Куклина И. Д. Применение электронных таблиц при изучении приближенных методов вычисления интеграла // Информатика и образование. — М. — 2010. — № 9. — С. 94 —96.

  5. Попова О. Н. Моделирование задачи оптимального управления// Информатика и образование. — М. — 2002. — № 10. — С. 78 —82.

  1. Гельман В.Я. Решение математических задач средствами Excel: Практикум. – СПб.: Питер, 2003. – 240 с.

  2. Тимофеева Н.М. Как решать задачи? / “В мир информатики” № 67 (“Информатика” № 2/2006).

2

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

Оглавление

  • Что такое модель данных
  • Простая задача
  • Преимущества модели данных
  • Добавить данные в модель данных
  • Создание отношений между данными
  • Использование модели данных

Содержание

  1. Что такое модель данных
  2. Простая задача
  3. Преимущества модели данных
  4. Добавить данные в модель данных
  5. Создание отношений между данными
  6. Использование модели данных
  7. Анализировать в Excel – Модель данных отсутствует в Excel – Сообщество Microsoft Power BI

Что такое модель данных

Модель данных Excel позволяет загружать данные (например, таблицы) в память Excel. Он сохраняется в памяти, где вы его не видите. Затем вы можете указать Excel связать данные друг с другом с помощью общего столбца. Часть «Модель» модели данных относится к тому, как все таблицы соотносятся друг с другом.

Старая школа Excel Pro, используйте формулы для создания огромной таблицы, содержащей все данные для анализа. Им нужна эта большая таблица, чтобы сводные таблицы могли служить источником единой таблицы. Тем не менее, создавая отношения, вы избавляетесь от необходимости использовать формулы ВПР, СУММЕСЛИ, ИНДЕКС-ПОИСКПОЗ. Другими словами, вам не нужно собирать все столбцы в одной таблице. Через отношения модель данных может получить доступ ко всей необходимой информации. Даже если он находится в нескольких местах или за таблицами. После создания модели данных Excel сохраняет данные в своей памяти. И, имея его в своей памяти, вы можете получить доступ к данным по-новому. Например, вы можете начать использовать несколько таблиц в одной сводной таблице.

Простая задача

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

Преимущества модели данных

Метод And before отлично подходит, когда вы работаете с очень небольшим количеством данных. Тем не менее, у использования функции модели данных в Excel есть преимущества. Вот некоторые преимущества:

  1. Проверка и обновление формул может быть произвольной при работе с большим количеством таблиц. В конце концов, вам нужно убедиться, что все формулы заполнены до нужной ячейки. И после добавления новых столбцов формулы LOOKUP также необходимо расширить. Модель данных требует совсем немного времени при настройке , чтобы связать таблицу. При настройке используется общий столбец. Однако столбцы, которые вы добавляете позже, автоматически добавляются в модель данных.
  2. Работа с большими объемами данных часто приводит к очень медленной работе листа из-за вычислений.. Однако модель данных корректно обрабатывает большие объемы данных , не замедляя работу вашей компьютерной системы.
  3. Excel 2016 имеет ограничение в 1,048,576 строк. Однако количество строк, которые вы можете добавить в память модели данных, практически не ограничено . В 64-битной среде нет жестких ограничений на размер файла. Размер книги ограничен только доступной памятью и системными ресурсами.
  4. Если ваши данные находятся только в вашей модели данных, вы значительно сэкономите на размере файла .

Добавить данные в модель данных

Теперь вы узнаете, как добавлять таблицы в модель данных. Для начала убедитесь, что ваши данные находятся в таблице. Используя Power Query, вы можете легко загружать таблицы в модель данных.

  • Щелкните вкладку Данные -> Щелкните ячейку в нужной таблице для импорта
  • Выберите Из таблицы/диапазона

На главной вкладке редактора Power Query

  • Выберите Close & Load -> затем Закрыть и загрузить в…

  • Выберите Только создать соединение .
  • Обязательно установите флажок Добавить эти данные в модель данных

Это добавляет данные в модель данных. Обязательно выполните эти действия для обеих таблиц .

Создание отношений между данными

После добавления данных в модель данных вы можете связать общие столбцы друг с другом. Чтобы создать связи между таблицами:

  • Перейдите на вкладку Данные -> выберите Управление моделью данных

Откроется экран Power Pivot.

  • Щелкните Представление диаграммы. Это дает вам обзор всех таблиц в модели данных.
  • Затем свяжите общий столбец “Продавец” в первая таблица, со столбцом «Продавец» во второй таблице. Вы можете сделать это, щелкнув и перетащив один столбец на другой. Должна появиться связь.

Примечание : Когда вы устанавливаете связь между двумя столбцами, обычно в одном из столбцов указываются уникальные значения. Это называется отношением один-ко-многим . Наличие дубликатов с обеих сторон может привести к ошибке. Для сложных вычислений могут существовать отношения многие-ко-многим (например, в Power BI). Однако это слишком сложная задача, чтобы описать ее в этой статье. Если вас интересуют эти темы, обязательно исследуйте «Отношения« многие ко многим ».

Использование модели данных

Теперь мы подошли к самому интересному.. Чтобы использовать модель данных в сводной таблице, выполните следующие действия:

  • Перейдите на вкладку Вставить -> нажмите Pivot Таблица

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

  • Нажмите Использовать модель данных этой книги

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

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

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

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


Я произвел некоторые преобразования и добавил еще несколько столбцов в свою модель данных.
Теперь мне нужно экспортировать эти данные в файл CSV из модели данных, как мне сделать это, Рик? У меня 7,5 миллионов записей.

Ответ


Привет, Рик! – Спасибо, что поделились!
У меня к вам вопрос, надеюсь, вы сможете ответить:
У меня есть файл CSV с 2 мил. строки (записи GL с транзакциями за каждый день). Я использую Power Query для подключения к файлу и добавления в Datamodel.
Если я ничего не сделаю, Datamodel должен обработать 2 миллиона. строк.
Если я сделаю группировку с агрегированием суммы в месяц в Power Query, тогда будет только 80 тысяч строк.
Будет ли это преимуществом, сделайте это быстрее в модели данных , чтобы использовать PowerQuery для такого агрегирования?

Ответ


Привет, Рик, спасибо за ответ. На данный момент я только пытаюсь создать информационный список. Хотя я понял это; когда я объединяю их в Power Query, он определяет уникальный ключ цветового кода и дает мне то, что я ищу. Большое спасибо!

Ответ


У меня есть 5 списков в Sharepoint на основе производственных частей, которые я хочу использовать в модели данных (сначала попробуйте это).

Я только начинаю с двух из них: «Основные части» и «Цветовые коды».. Я подтвердил, что столбец «Цветовой код» в списке «Цветовые коды» уникален (2000 уникальных кодов). В списке «Основные детали» около 1800 номеров деталей. Объединение происходит по «Цветовому коду», который есть в каждом списке. Когда я пытаюсь извлечь описание цвета из списка цветовых кодов, я получаю сообщение о том, что отчет сводной таблицы не помещается на листе – он пытается назначить каждый цветовой код каждому отдельному номеру детали, как будто нет реляционной связи между Столбцы цветового кода в каждом списке, но они явно есть в моей модели данных. Какие-либо предложения? На первом этапе кажется очевидным, что…

Ответ


Привет, Рик,
Ваша статья ясна, проста и легка для понимания.
Я прочитал много статей о модели данных и Power Pivot, но ваша статья действительно проста.
У меня к вам вопрос.
Я создал панель мониторинга в формате xlsb и вставил множество срезов, сводных таблиц и графики.
Две таблицы, из которых берутся данные, состоят из 200 тыс. строк, но они всегда растут неделя за неделей.
Каждую неделю мне приходится преобразовывать данные в таблицы, потому что источники таких данные разные (SAP, Coupa), и, кроме того, я вношу в них некоторые дополнительные изменения.
Теперь я заметил, что время загрузки модели данных слишком сильно увеличивается, и я ищу способ сделать запросы быстрее.
Я сохранил файл как xlsb. Я также удалил исходные данные (изначально я помещал таблицы в тот же файл, что и панель мониторинга на разных листах): после обновления исходных данных и обновления панели мониторинга я использую для удаления листов, на которых были исходные данные, чтобы уменьшить размер файла. На данный момент размер файла составляет 20 МБ (xlsb).
Основная проблема – время для загрузки модели данных. Все еще слишком много.
Я еще не использовал power query/pivot, потому что эта панель инструментов используется многими пользователями, и, если я хорошо помню, всем им следует активировать эту функцию, чтобы панель работала нормально. Это может быть очень сложно управлять.
Я уже пытался не использовать функции.
Исходный источник данных с множеством столбцов и все функции в нем сохранены в другом файле. Затем я помещаю в тот же файл, где находится панель управления, но на другом листе, только те столбцы, которые мне действительно нужны для работы.
Как сказано выше, после обновления сводных таблиц и графиков я удаляю исходные данные (сохраненные в другом файле Excel).

Итак, есть ли у вас предложения, чтобы ускорить запросы?
Спасибо,
Майкл

Ответить


Привет, Рик. Спасибо за то, что уделили время написанию этого.

Итак, я в основном застрял на том факте, что у меня есть рабочая книга, которая добавляет и вычисляет столбцы и меры.
Теперь … я хочу используйте эту модель данных в ДРУГОМ файле excel. Соединение должно обновляться автоматически, поскольку оба файла находятся на Sharepoint.

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

Есть шансы?

Спасибо,

Сантьяго из Перу

Ответ


Привет, Рик,

Надеюсь, ты поможешь с моим вопросом. У меня есть данные, которые повторяются через годы. Я отметил это стрелкой на картинке. Вот ссылки на файл Excel.

https://www.dropbox.com/scl/fi/1xxmqyb9a0vwpj00mfkgj/Sample.xlsx?dl=0&rlkey=n2zc09cvc7gzxgv0p3g9kwi70

https://www.dropbox.com/s/hpcmtf6q1rfehwl/Capture.PNG?dl=0

https://www.dropbox.com/s/418zg5uupy6g3wj/Capture2.PNG? dl = 0

Стоимость печати должна быть указана только за один год, а не за три года. Все остальные данные верны: гонорар тренера, гонорар эксперта, плата за номер и плата за питание и питание.

Спасибо,
K

Ответить


У меня есть информационная панель, заполненная сводными таблицами, которые заполняются моделью данных. Я хочу включить срезы для фильтрации данных. Если я затем отправлю файл кому-то, у кого нет доступа к исходному источнику данных, будут ли срезы работать для этого человека? Или они получат ошибку, потому что Excel и модель данных больше не могут найти источник данных? (Я знаю, что они не могут обновить модель данных, я просто беспокоюсь о просмотре того, что я уже заполнил, прежде чем отправлять им)

Ответ


не работает для меня! В модели данных все дублируется между двумя таблицами! Итак, у меня есть 99 единичных строк в таблице 1 и 99 уникальных строк в таблице 2, так что есть отображение 1-1. Таблица первая. Я переместил один столбец из таблицы 1 в таблицу 2 и попытался объединить два, используя модель данных, и все, что он делает, повторяет 99 полей из таблицы 2 под ключом в таблице 1 – vlookups намного проще. Кроме того, у меня возникают всевозможные проблемы с памятью, поэтому он не так хорош, как vlookups для больших наборов данных.

Ответ


Так что в основном Excel становится больше похожим на Access?

Ответить


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

Ответ


Спасибо, отличная информация

Ответ


Одна важная вещь, которая мне нравится в моделях данных, – это дополнительные функции, которые вы можете использовать в сводных таблицах, особенно «Уникальные счетчики».

Ответ



Анализировать в Excel – Модель данных отсутствует в Excel – Сообщество Microsoft Power BI

Привет всем –

I Я пытаюсь использовать «Анализировать в Excel», чтобы перенести мою модель данных Power BI в Microsoft Excel для создания отчетов для моих клиентов (которые предпочитают работать в Excel). Я успешно сохранил файл Excel с подключением pbiazure из службы Power BI и построил сводную таблицу. Однако, когда я пытаюсь щелкнуть «Управление моделью данных» в Excel, чтобы увидеть взаимосвязи (которые, как я ожидаю, будут такими же, как для рабочего стола Power BI), модель данных не отображается и остается пустой.

Кто-нибудь знает, почему это так? В случае, если он напрямую подключен к набору данных в службе Power BI, я предполагаю, что он сможет отображать и редактировать модель данных непосредственно в Excel..

Может ли кто-нибудь пролить свет на то, почему отображается пустой экран без модели данных?


Привет, @ sviswan2!

Параметр «Управление моделью данных» в Excel будет отображать модель данных только при подключении источника данных в Excel. Модель данных создается автоматически при одновременном импорте двух или более таблиц из базы данных. Когда вы импортируете одну таблицу, вы можете выбрать «добавить эти данные в модель данных». См. Эту статью: Advanced Excel – модель данных

В этом выпуске «Анализировать в Excel» просто цитирует набор данных из службы power bi, а не как единый источник данных, этот набор данных взят из вашего. pbix, который включает отношения и т. д., поэтому он не будет использоваться в качестве единственного источника данных для добавления в модель данных в Excel.

Другими словами, сам набор данных был моделью, вы Вы можете управлять им на своем рабочем столе power bi, а не в Excel, чтобы воссоздать модель.

С уважением,
Инцзе Ли

Если этот пост помогает, то, пожалуйста, рассмотрите вариант “Принять его” как решение, которое поможет другим участникам быстрее его найти.


Привет @ v-yingjl –

Спасибо за пояснение, которое немного помогает понять. Поэтому, пожалуйста, поясните следующее:

1) Если модель данных не импортирована, будут ли работать все отношения между данными, которые я настроил в файле рабочего стола, когда я использую его как «Анализировать в Excel “?

2) Если я хочу добавить какую-либо связь или меру, я должен сначала сделать это на рабочем столе Power BI, опубликовать в службе, а затем он должен появиться в моем файле Excel?

спасибо!


Привет @ sviswan2,

  1. Да, «Анализировать в excel» цитирует набор данных в сервисе power bi, отношения сохранятся.
  2. Если вы хотите добавить взаимосвязь или меру, у вас есть сделать это сначала на рабочем столе power bi, затем опубликовать в сервисе и повторно использовать «Анализировать в Excel», хотя вы не можете видеть взаимосвязь и конкретную формулу меры, вы можете видеть только поля таблицы и значение меры в excel.

С уважением,
Инцзе Ли

Если этот пост поможет, пожалуйста, примите его как решение чтобы помочь другим участникам найти его быстрее.


Привет @ sviswan2,
Анализировать в Excel позволяет взаимодействовать с набором данных из Power BI, но он имеет только соединение с набором данных, он не имеет данных из модели.

Вот ссылка: https://docs.microsoft.com/en-us/power-bi/collaborate-share/service-analyze-in-excel
“Вы можете сохранить книгу Excel вы создаете с помощью набора данных Power BI, как и любую другую книгу. Однако вы не можете публиковать или импортировать книгу обратно в Power BI, потому что вы можете публиковать или импортировать в Power BI только те книги, которые имеют данные в таблицах или имеют модель данных.. Поскольку новая книга просто подключается к набору данных в Power BI , публикация или импорт в Power BI будет происходить по кругу “.

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

подсчет данных

Общее представление

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

  • доходы и расходы;
  • прибыль;
  • денежные потоки;
  • активы и обязательства.

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

Построение финмодели в Excel от Microsoft или в Google docs предусматривает внесение части информации вручную, тогда как зависимые данные определяются с помощью базовых формул. Благодаря этому любая корректировка позволяет моментально пересчитать итоговые значения, оценить риски и проанализировать перспективы получения прибыли.

За счет проделанной работы формируются три типа отчетности:

  • балансовые показатели предприятия;
  • аналитика результатов (ОФР);
  • отчет по движению денежных средств (ОДДС).

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

показатели прибыльности

Финансовое моделирование проекта в Excel: что нужно знать

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

  1. Создайте предварительный вариант с минимальным количеством данных, и задайте локальные критерии расчета для зависимых переменных. В качестве примера можно привести выручку относительно цены продукции и объемов реализации, фонд оплаты труда при сдельной работе, социальные отчисления ФОТ и т.д.
  2. Обобщите параметры в рамках общей системы, и проведите предварительную проверку функциональности готовой структуры. Ключевой критерий — схождение баланса, отклонения в котором свидетельствуют о допущенных ошибках. Небольшое количество формул позволяет без особых усилий выявить проблемные зоны, требующие корректировки.
  3. Детализируйте финансовый расчет бизнес-плана в Excel, дополнив его новыми базовыми показателями. Раскройте специфику формирования себестоимости продукции, уточните периоды взаиморасчетов с поставщиками исходя из имеющихся коммерческих условий, привяжите к производственным объемам корреляцию, учитывающую величину переходящего товарного остатка. При добавлении параметров также следует проверять работоспособность системы, чтобы исключить «перекос» формульных значений.

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

финансовый расчет

Готовые решения для всех направлений

Склады

Сократите издержки в работе склада до 70% : ускорьте складские операции, устраните ошибки человеческого фактора и забудьте про потерю и пересортицу товаров.

Узнать больше

Магазины

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

Узнать больше

Маркировка

С маркировкой вы на 100% исключите приемку контрафактного товара на свой склад, а также сможете отслеживать полную цепочку поставок товара от производителя.

Узнать больше

E-commerce

Скорость, точность приёмки и отгрузки товаров на складе — краеугольный камень в E-commerce бизнесе. Начни использовать современные, более эффективные мобильные инструменты.

Узнать больше

Учреждения

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

Узнать больше

Производство

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

Узнать больше

RFID

Первое в России готовое решение для учёта товара по RFID-меткам на каждом из этапов цепочки поставок.

Узнать больше

ЕГАИС

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

Узнать больше

Сертификация

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

Узнать больше

Инвентаризация

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

Узнать больше

Показать все решения по автоматизации

Как построить финансовую модель компании в Excel: инструкция пошагово

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

Подсчет доходов

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

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

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

наглядность финмодели

Кроме того, нелишним станет добавление аналитики по номенклатуре, отражающей такие характеристики операционной деятельности, как:

  • доля возврата продукции;
  • типы клиентов (физические или юридические лица);
  • реквизиты торговой точки или региона продаж.

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

таблица планирование по доходам

Пример планирования расходов

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

  • Материальные затраты. В рамках упрощенной версии будем считать, что в эту категорию входит только приобретение товаров без НДС, количество которых полностью совпадает с объемом реализации. Исходя из этого, критериями получаемой величины станут стоимость закупки и количество продаж.
  • Зарплатный фонд. Опять же, для базового варианта достаточно указать общую сумму, без дробления на отдельные элементы.
  • Социальные отчисления. В этом случае используются зависимые переменные, рассчитываемые с помощью формулы. Как правило, стандартным показателем считается 30% от величины ФОТ, плюс дополнительные страховые взносы, размер которых определяется классом риска профессиональной деятельности, определенным для предприятия. В качестве примера возьмем минимально возможный размер, составляющий 0,2%.
  • Амортизация. Даже с учетом того, что наше условное предприятие занимается исключительно розничной торговлей, на его балансе все равно могут быть основные средства и нематериальные активы, относящиеся к собственности. Стандартная практика — расчет среднемесячной суммы, базирующийся на теоретических или практических критериях.

амортизационные отчисления

  • Иные расходы. Фактически начальная стадия детализации, предполагающая отражение постоянных трат компании, легко поддающихся планированию. В рассматриваемую категорию можно включить затраты на аренду торговых площадей, размещение рекламы, представительские и командировочные компенсации, и т.п.

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

Составление планового отчета о финансовых результатах

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

финансовые результаты

Это позволяет перейти к построению ОФР, для которого характерна взаимосвязь с балансом и ОДДС:

Финансовые результаты

Балансовая строка

ДДС

Прибыль или убыток от операционной деятельности

Нераспределенная величина добавляется к данным за предшествующий период

Выручка

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

Поступления = Выручка + Авансовые платежи — Задолженность по отгрузкам

Расходы

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

Платежи = Денежные затраты + Авансы выданные — Кредиторская задолженность

Для большей информативности следует дополнить отчет еще двумя строками:

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

Формирование отчетности ОДДС

требования к финансовой модели

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

  • Предприятие специализируется только на профильной деятельности, не осуществляя сторонних закупок и финансовых операций, и не меняя состав учредителей. Единственным видом операций остается текущая категория.
  • Оплата поставляемой продукции делится на две стадии: 60% авансовым платежом, перечисляемым в месяце, предшествующем отгрузке товара, и 40% — расчет по факту приемки на склад.
  • Для выплат в рамках ФОТ также предусмотрены два перевода: половину составляет аванс, выдаваемый в период начисления, вторые 50% оплачиваются в следующем календарном отрезке так же, как и страховые взносы.

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

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

движение фин средств

Сведение планового баланса

Обобщим технику составления в сводной таблице:

Показатель на начало периода

Формула

Пояснения

Основные средства

Баланс на начало предыдущего месяца — Амортизация за месяц (ОФР)

Запасы

Неизменны и равняются нулю из-за допущения, согласно которому весь объем реализуется за период

Дебиторская задолженность

Баланс на первое число предыдущего месяца + Платежи контрагентам за поставку (ОДДС) — Материальные расходы (ОФР)

В рассматриваемом примере отсутствует дебиторская задолженность

Денежные средства

Остаток на момент начала периода (баланс) + Чистый поток (ОДДС)

Уставный капитал

1000 рублей (ввиду условия об отсутствии новых учредителей)

Нераспределенная прибыль

Начальный показатель (баланс) + Поступление за месяц (ОФР)

Кредиторская задолженность

Значение отправной точки + Начисления ФОТ, социальным выплатам и аренде (ОФР) — Соответствующие платежи (ОДДС)

 

Общие требования

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

бюджет компании

Простота

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

Удобство использования

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

Наглядность

Распространенный недостаток — разнесение предпосылок и выводов, затрудняющее определение взаимосвязи между корректируемыми данными и показателями, на которые они влияют. Грамотная визуализация — важный аспект, исключающий сложности адаптации.

Как подготовить финансовую модель

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

Заключение

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

Количество показов: 25433

Время на прочтение
9 мин

Количество просмотров 12K

К старту курса о машинном и глубоком обучении делимся переводом статьи, автор которой показывает на практике, как модель машинного обучения может использоваться через Excel. Зачем это нужно? Компании больше и больше вкладывают в исследования и разработку моделей прогнозов; по мнению автора оригинала статьи, разработчика и основателя компании PyXLL доступ к ML-моделям через Excel открывает новые горизонты. Вы сможете показать модель пользователям Excel, у которых нет опыта программирования или широких знаний в области статистики. При желании можно создавать инструменты разработки и тренировки моделей полностью в Excel, например строить графы в TensorFlow. Весь исходный код из статьи доступен на GitHub.


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

Python для Machine Learning

Python хорошо подходит для машинного обучения, у него большой массив поддерживаемых пакетов, упрощающих программирование и сокращающих время разработки. ML и DL очень хорошо поддерживаются несколькими пакетами, поэтому Python — идеальный выбор. Посмотрим на распространённые пакеты для ML на Python.

Scikit-Learn

Пакет scikit-learn — это лаконичный и последовательный интерфейс к общим алгоритмам ML, упрощая введение ML в производственные системы. Библиотека сочетает высокую производительность, де-факто она отраслевой стандарт машинного обучения на Python. В статье мы будем работать именно с ней.

TensorFlow

TensorFlow от Google. Эта библиотека с открытым исходным кодом для расчёта графов потоков данных оптимизирована для целей ML. Она была разработана, чтобы удовлетворять высоким требованиям обучения нейронных сетей в среде Google и является преемницей DistBelief — основанной на нейронных сетях системы глубокого обучения, применяется в пограничных областях исследований Google.

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

Keras

Keras — написанная на Python Open Source библиотека для нейронных сетей. Она способна работать поверх TensorFlow, Microsoft Cognitive Toolkit или Theano и имеет архитектуру, которая позволяет быстро проводить эксперименты с глубоким обучением и сосредоточена на модульности, расширяемости и удобстве пользователя. Из документации следует, что работать с Keras можно, когда вам нужна библиотека глубокого обучения, которая:

  • Обладая перечисленными выше преимуществами, позволяет просто и быстро прототипировать решения.

  • Поддерживает свёрточные и рекуррентные нейронные сети, а также их комбинирование.

  • Без проблем работает на CPU и GPU.

PyTorch

PyTorch — это научный вычислительный пакет на Python, он работает в двух направлениях:

  • Как замена NumPy с возможностью задействовать графические процессоры.

  • Как платформа исследования Deep Learning с максимумом гибкости и скорости.

Деревья решений

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

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

Алгоритм быстро анализирует большой объём данных, чего вручную сделать невозможно. В работе деревьев решений множество аспектов, от математики до логики их построения. Мы не будем касаться этих деталей, но построим модель и я покажу, как работать с ней в Excel.

Тренировка модели

Натренируем модель классифицировать животных при помощи деревьев решений. Воспользуемся для этого набором данных UCI Zoo Data Set из 101 животного, в наборе 17 логических признаков и один признак, который мы будем прогнозировать.

Для загрузки данных воспользуемся pandas, а для построения дерева — scikit-learn. Загрузим данные во фрейм Pandas, разделим на признаки и целевой класс, то есть класс животного. Затем разделим данные на тренировочный и тестовый наборы. Scikit-Learn использует тренировочный набор для обучения деревьев, а тестовый резервируется для проверки точности модели.

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
import pandas as pd

# Read the input csv file
dataset = pd.read_csv("zoo.csv")

# Drop the animal names since this is not a good feature to split the data on
dataset = dataset.drop("animal_name", axis=1)

# Split the data into features and target
features = dataset.drop("class", axis=1)
targets = dataset["class"]

# Split the data into a training and a testing set
train_features, test_features, train_targets, test_targets = 
        train_test_split(features, targets, train_size=0.75)

Начинается самое интересное: при помощи классификатора дерева решений в scikit-learn обучим модель на тренировочных данных. Чтобы модель не переобучилась и могла работать, настроим несколько параметров. Максимальная глубина дерева будет равна 5. Поэкспериментируйте со значениями, чтобы увидеть влияние глубины на результаты.

# Train the model
tree = DecisionTreeClassifier(criterion="entropy", max_depth=5)
tree = tree.fit(train_features, train_targets)

Эти две строки строят и обучают модель. Чтобы проверить её точность, подадим на вход данные, которых она не видела.

# Predict the classes of new, unseen data
prediction = tree.predict(test_features)

# Check the accuracy
score = tree.score(test_features, test_targets)
print("The prediction accuracy is: {:0.2f}%".format(score * 100))

Воспользуемся моделью и выполним прогноз на новых данных:

# Try predicting based on some features
features = {
    "hair": 0,
    "feathers": 1,
    "eggs": 1,
    "milk": 0,
    "airbone": 1,
    "aquatic": 0,
    "predator": 0,
    "toothed": 1,
    "backbone": 1,
    "breathes": 1,
    "venomous": 0,
    "fins": 0,
    "legs": 1,
    "tail": 1,
    "domestic": 0,
    "catsize": 0
}

features = pd.DataFrame([features], columns=train_features.columns)
prediction = tree.predict(features)[0]
print("Best guess is {}".format(prediction])

Вызовем модель из Excel

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

К счастью, наша модель написана на Python и перенести её в Excel просто. В PyXLL есть всё необходимое, чтобы писать на Python в Excel. Нужно только добавить несколько декораторов @xl_func из модуля pyxll и настроить надстройку PyXLL для загрузки модуля с моделью. Если вы не знакомы с PyXLL, посмотрите введение в PyXLL в руководстве пользователя.

Построим дерево решений

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

from pyxll import xl_func
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
import os

@xl_func("float, int, int: object")
def ml_get_zoo_tree(train_size=0.75, max_depth=5, random_state=245245):
    # Load the zoo data
    dataset = pd.read_csv(os.path.join(os.path.dirname(__file__), "zoo.csv"))

    # Drop the animal names since this is not a good feature to split the data on
    dataset = dataset.drop("animal_name", axis=1)

    # Split the data into a training and a testing set
    features = dataset.drop("class", axis=1)
    targets = dataset["class"]

    train_features, test_features, train_targets, test_targets = 
        train_test_split(features, targets, train_size=train_size, random_state=random_state)

    # Train the model
    tree = DecisionTreeClassifier(criterion="entropy", max_depth=max_depth)
    tree = tree.fit(train_features, train_targets)

    # Add the feature names to the tree for use in predict function
    tree._feature_names = features.columns

    return tree

Код выше совпадает с кодом, который мы видели ранее, за исключением декоратора @xl_func, который сообщает дополнению PyXLL о том, какая функция Python должна стать пользовательской функцией Excel.

Строка float, int, int: object — это сигнатура функции. Она необязательна, но без этой сигнатуры пользователь сможет передавать в функцию свои типы, например, строки и это может привести к сбою. Возвращаемый тип object означает, что классификатор идёт через Excel как объект Python, функция возвращает дескриптор, который возможно передать другим функциям Python.

Код нужно добавить в список модулей конфигурационного файла pyxll.cfg, также необходима надстройка PyXLL, если вы не установили её.

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

Прогнозируем класс животного

Теперь всё, что нужно для работы с моделью — ещё одна функция для передачи входных данных и получения прогноза. Используем тот же код, что и раньше, но обернём его декоратором @xl_func.

_zoo_classifications = {
    1: "mammal",
    2: "bird",
    3: "reptile",
    4: "fish",
    5: "amphibian",
    6: "insect",
    7: "mollusc"
}

@xl_func("object tree, dict features: var")
def ml_zoo_predict(tree, features):
    # Convert the features dictionary into a DataFrame with a single row
    features = pd.DataFrame([features], columns=tree._feature_names)
    # Get the prediction from the model
    prediction = tree.predict(features)[0]
    return _zoo_classifications[prediction]

Модель возвращает целое число — спрогнозированный класс. Словарь _zoo_classifications содержит эти числа и понятные человеку названия классов.

Эта функция берёт объект дерева из ml_get_zoo_tree и список пар ключ-значение, переданных в неё как словарь. В словаре сопоставлены имена признаков, с которыми мы работали при конструировании дерева, и входные признаки. Их сопоставление таково, что при вызове tree.predict признаки упорядочены правильно.

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

Небольшое дополнение

Чёрно-белые листы с цифрами нравятся всем, но иногда мне нравится добавлять небольшие детали ради привлекательности таблицы. PyXLL позволяет получить доступ к объектной модели Excel с помощью функции xl_app. Объектная модель Excel точно совпадает с той, что применяется в VBA. Функция ниже создаёт на листе объект изображения и загружает его.

from pyxll import xl_app

def show_image_in_excel(classification, figname="prediction_image"):
    """Plot a figure in Excel"""
    # Show the figure in Excel as a Picture object on the same sheet
    # the function is being called from.
    xl = xl_app()
    sheet = xl.ActiveSheet

    # if a picture with the same figname already exists then get the position
    # and size from the old picture and delete it.
    for old_picture in sheet.Pictures():
        if old_picture.Name == figname:
            height = old_picture.Height
            width = old_picture.Width
            top = old_picture.Top
            left = old_picture.Left
            old_picture.Delete()
            break
    else:
        # otherwise create a new image
        top_left = sheet.Cells(1, 1)
        top = top_left.Top
        left = top_left.Left
        width, height = 100, 100

    # insert the picture
    filename = os.path.join(os.path.dirname(__file__), "images", _zoo_classifications[classification] + ".jpg")
    picture = sheet.Shapes.AddPicture(Filename=filename,
                                      LinkToFile=0,  # msoFalse
                                      SaveWithDocument=-1,  # msoTrue
                                      Left=left,
                                      Top=top,
                                      Width=width,
                                      Height=height)

    # set the name of the new picture so we can find it next time
    picture.Name = figname

Вызов ml_zoo_predict обновляет изображение в Excel при каждом изменении прогноза. Функция обновляет Excel, поэтому вызывать её нужно после вычислений, именно этим занимается async_call из pyxll, а ниже вы видите новую версию ml_zoo_predict:

from pyxll import xl_func, async_call

@xl_func("object tree, dict features: var")
def ml_zoo_predict(tree, features):
    # Convert the features dictionary into a DataFrame with a single row
    features = pd.DataFrame([features], columns=tree._feature_names)

    # Get the prediction from the model
    prediction = tree.predict(features)[0]

    # Update the image in Excel
    async_call(show_image_in_excel, prediction)

    return _zoo_classifications[prediction]

Изображение обновляется при изменении прогноза:

Ссылки

Этот материал — яркое напоминание о том, что Excel может справляться с задачами машинного обучения, а область ML сложна, но её сложность преодолима и если вы хотите изменить карьеру или вывести ваши навыки на новый уровень, то можете обратить внимание на наши курсы по Machine Learning, аналитике данных или присмотреться к флагманскому курсу Data Science. Также вы можете узнать, как начать или продолжить развитие в других направлениях:

Data Science и Machine Learning

  • Профессия Data Scientist

  • Профессия Data Analyst

  • Курс «Математика для Data Science»

  • Курс «Математика и Machine Learning для Data Science»

  • Курс по Data Engineering

  • Курс «Machine Learning и Deep Learning»

  • Курс по Machine Learning

Python, веб-разработка

  • Профессия Fullstack-разработчик на Python

  • Курс «Python для веб-разработки»

  • Профессия Frontend-разработчик

  • Профессия Веб-разработчик

Мобильная разработка

  • Профессия iOS-разработчик

  • Профессия Android-разработчик

Java и C#

  • Профессия Java-разработчик

  • Профессия QA-инженер на JAVA

  • Профессия C#-разработчик

  • Профессия Разработчик игр на Unity

От основ — в глубину

  • Курс «Алгоритмы и структуры данных»

  • Профессия C++ разработчик

  • Профессия Этичный хакер

А также:

  • Курс по DevOps

Понравилась статья? Поделить с друзьями:
  • Модель регрессии в excel пример
  • Модель расчета инвестиционного проекта в excel
  • Модель продаж в excel
  • Модель по показателям в excel
  • Модель по информатике на excel