Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РАБ_ВЁ~1.doc
Скачиваний:
3
Добавлен:
08.11.2019
Размер:
1.24 Mб
Скачать

"Оптимальный объем:" & _

v, vbInformation, "Расчет прибыли"

End Sub

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

Option Base 1

Function Прибыль(покуп As Variant) As Variant

Dim NRows, i, j, Цпрод, Цпок, Цсдач, As Integer, Res() As Integer

NRows = покуп.Rows. Count

Цпрод = Range(“продажа”).Value

Цпок = Range(“покупка”).Value

Цсдач = Range(“возврат”).Value

ReDim Res(NRows, NRows)

For i = 1 to NRows

For j = 1 to Nros

If i <= j then Res(i,j) = покуп(i) * (Цпрод – Цпок)

If i > j then Res(i,j) = покуп(j) * (Цпрод – Цпок) – (покуп(i) – покуп(j)) * (Цпок – Цсдач)

Next j

Next i

Прибыль = Res

End Function

В ячейках L13:L17 с помощью формулы

{ = МУМНОЖ(F12:J16; ТРАНСП(F9:J9))},

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

= НАИБОЛЬШИЙ(L13:L17;1),

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

= МАКС((L13:L17)

В ячейке I18 по формуле

= (ПОИСКПОЗ(НАИБОЛЬШИЙ(L13:L17;1); L13:L17;0) – 1)*5,

вычисляем соответствующий оптимальный объем покупок газет. Затем процедура Calc выводит эти оптимальные значения в окне сообщений.

Функция НАИБОЛЬШИЙ(LARGE) возвращает k-е наибольшее значение из множества данных. Эта функция используется, чтобы выбрать значение по его относительному местоположению.

Синтаксис:

НАИБОЛЬШИЙ(массив; k)

Аргументы:

массив Массив или диапазон, для которых определяется k-е наибольшее значение.

k Позиция (начиная с наибольшей) в массиве или диапазоне.

Задача 12

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

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

Данную задачу решает следующая программа:

Option Explicit

Sub Раскрой()

Dim R, i1, i2, i3, i4, s, t As Integer

Dim l, a1, a2, a3, a4, a5, m As Integer

l = 20

a1 = 5: a2 = 7

a3 = 8: a4 = 10

R = 3

m = Application.Min(a1, a2, a3, a4)

t = Application.Floor(l / m, 1)

For i1 = 0 To t

For i2 = 0 To t

For i3 = 0 To t

For i4 = 0 To t

s = 20 - a1 * i1 - a2 * i2 - a3 * i3 - a4 * i4

If s >= 0 And s < m Then

Cells(R, 1).Value = R - 2

Cells(R, 2).Value = i1

Cells(R, 3).Value = i2

Cells(R, 4).Value = i3

Cells(R, 5).Value = i4

Cells(R, 6).Value = s

R = R + 1

End If

Next i4

Next i3

Next i2

Next i1

End Sub

Floor возвращает наибольшее целое число не превышающее данные.

Рис 12

Пусть - количество стандартных рулонов, разрезанных по варианту j, где . Ограничения, налагаемые на переменные , связаны с требованием обеспечить изготовление заказанного количества нестандартных рулонов. Функция цели учитывает суммарные отходы, получаемые при выполнение заказа. Т.е., минимизировать:

при ограничениях :

целое при и ,

,

,

.

Рис 12.1

Отведём диапазон ячеек I3:I12 под переменные. Введём в диапазон ячеек J3:M3 левые части ограничений, определённые следующими формулами :

=СУММПРОИЗВ($I$3:$I$12;B3:B12)

=СУММПРОИЗВ($I$3:$I$12;С3:С12)

=СУММПРОИЗВ($I$3:$I$12;D3:D12)

=СУММПРОИЗВ($I$3:$I$12;E3:E12)

В ячейку N3 введём функцию цели:

=СУММПРОИЗВ($I$3:$I$12;F3:F12)+B2*(СУММПРОИЗВ($I$3:$I$12;B3:B12)-J2)+C2*(СУММПРОИЗВ($I$3:$I$12;C3:C12)-2)+D2*(СУММПРОИЗВ($I$3:$I$12;D3:D12)-L2)+E2*(СУММПРОИЗВ($I$3:$I$12;E3:E12)-M2),

где в ячейки В2:Е2 введены длины, а в ячейки J2M2 – количество заказанных рулонов.

Выберем команду «Сервис» - «Поиск решения» и заполним открывшееся диалоговое окно «Поиск решения», как показано на рис 12.2

Рис 12.2

Ответ: Оптимальным является использование первого варианта раскроя для 100 стандартных рулонов, второго для – для 50, пятого для 150 и десятого для 15 стандартных рулонов рис 12.3

Рис 12.3