Кумир. Линейное программирование. Программа для построения графика целевой функции.
Оценка 4.9

Кумир. Линейное программирование. Программа для построения графика целевой функции.

Оценка 4.9
Компьютерные программы
pdf
информатика +1
11 кл
14.11.2018
В 11 классе в числе последних тем изучается линейное программирование. (И.Г. Семакин, Е.К. Хеннер, Т.Ю. Шеина. Информатика. Москва. Бином. 2016. п.20. Модели оптимального планирования). Программа (в т.ч. комментарии и графики)) позволяет сделать процесс изучения темы наглядным на каждом шаге. Применение портируемого языка Кумир значительно ускоряет процесс программирования.Программа и построенный график целевой функции линейного программирования.
04-01-lin-prog-Sh.pdf

Кумир. Линейное программирование. Построение графика целевой функции.

| СПБ, Лицей №554

| Kumir-2.1.0-rc7/bin/kumir2-classic.exe

| Ноябрь 2018

| 04-01

| Первая функция: график оранжевого цвета (yf1) x+4y=1000

|

| Вторая функция: график красного цвета (yf2)   х+у = 700

|

| Третья функция: график черного цвета - целевая функция это

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

|

| Линии желтого цвета ограничивают область допустимых значений

| входных переменных сверху и справа (слева и сниэу область  | ограничена осями координат т.к. значения х и у положительны).

| Строим графики в масштабе 1:100.

использовать Чертежник

алг | Программа выбора оптимального количества х-пирожков и | у-пирожных с целью получения максимальной прибыли ymp.

| Ограничения: 8-часовой рабочий день, 700 мест на складе.

| Оборудование позволяет выпускать х= 0-1000 пирожков (если

| не выпускать пмрожные) и 250 пирожных (если не выпускать

| пирожки). На пирожное уходит в 4 раза больше времени, | чем на пирожок. Пирожное стоит в 2 раза дороже пирожка.

| Если принять стоимость пирожка 1 р и выпускать только | пирожки получим 700 р прибыли и простаивание оборудования.

| Если выпускать только пирожные, то 500 р прибыли.

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

| Если время в минутах на 1 пирожок обозначить t, то получим

| x*t+y*4t = 8*60 = 480 минут,  но время на 1 пирожок можно

| вычислить как 480/1000 = 0.48 минуты. Подставим в уравнение | и получим:

| x+4y=1000     (1) | Место на складе ограничивает общее количество.

| х+у = 700     (2)

| Целевая функция ymd (максимальный доход) определяется по  | формуле: 

| ymd = x + 2y  (3)

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

нач

|Обьявление величин: цел x,y,xmax,ymax

xmax:=0

ymax:=0 вещтаб ymd[0:1001] вещтаб ygr1[0:1001] вещтаб ygr2[0:1001] вещтаб ygr[0:1001]

вещтаб ymdt[0:1001] | текущее значение на вертикали

x:=0;y:=0

. нц пока x<=1000

. . x:=x+1

. . ymd[x]:=0

. . ygr1[x]:=0

. . ygr2[x]:=0

. . ygr[x]:=0

. кц .

.

. | Проведем линию 1 в масштабе 1:100

. x:=0

. поднять перо

. сместиться в точку(0,7)

. выбрать чернила(красный)

. опустить перо

. нц пока x<=700

. . x:=x+1

. . y:=700-x

. . сместиться в точку(x/100,y/100)

. кц .

. | Проведем линию 2 в масштабе 1:100

. поднять перо

. сместиться в точку(0,2.5)

. выбрать чернила(оранжевый)

. опустить перо

. нц пока x<=1000

. . x:=x+1

. . y:=int((1000-x)/4)

. . сместиться в точку(x/100,y/100)

. кц .

. | Вычислим массив значений у для верхней и правой границы 

. | Окрасим границу в желтый цвет

. x:=0

. y:=0

. поднять перо

. сместиться в точку(0,2.5)

. выбрать чернила(желтый)

. опустить перо

. нц пока x<=1000

. . x:=x+1

. . ygr1[x]:=700-x

. ygr[x]:=ygr1[x]

. ygr2[x]:=(1000-x)/4

. если ygr2[x] < ygr[x]

. . то

. . . ygr[x]:=ygr2[x] . . .

. все .

. если ygr[x]>=0 и ygr2[x] >= 0

. . то

. . . . сместиться в точку(x/100,ygr[x]/100)

. . . . |вывод "   x = ",x,"    ygr = ",ygr[x], нс

. . все . .

. кц .

. | Найдем максимальные значения целевой функции . | ymd для каждого значения х.

. x:=0

. y:=0

. ygr[0]:=250

. ygr[1000]:=0

. ymd[0]:=500

. цел yt

. yt:=0

. поднять перо

. сместиться в точку(x/100,ymd[x]/100)

. опустить перо

. сместиться в точку(x/100,ymd[x]/100)

. x:=0

. нц пока x<=700

. . | Цикл вычисления ymd[x] на вертикали до границы ygr[x]

. . yt:=0

. . нц пока yt <=  ygr[x] . . .

. . . ymd[x] := x+2*yt . . .

. . . если ymd[x]>=ymax

. . . . то

. . . . . xmax:=x

. . . . . ymax:=int(ymd[x])

. . . . . |вывод "  x = ",xmax,"   y = ",ymax, нс

. . . все . . .

. . . |вывод "x= ",x,"   y=  ",yt,"  ymd[x]= ",ymd[x], нс     |

(4)

. . . yt:= yt+1 . . .

. . . опустить перо

. . кц

. . выбрать чернила (черный)

. . сместиться в точку(x/100,ymd[x]/100)

. . x:=x+10 кц

| Просмотрим массив ymd[x] и найдем максимальное значение 


x:=0 ymax:=0 нц пока x<=700

. если ymd[x]>=ymax

. . то

. . . xmax:=x

. . . ymax:=int(ymd[x])

. . . . y:= 700-x

. . все . .

. . x:=x+1

. кц

. вывод "  x = ",xmax,"   y= ",y,"   макс. доход = ",ymax, нс

кон


Кумир. Линейное программирование

Кумир. Линейное программирование

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

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

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

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

Цикл вычисления ymd[x] на вертикали до границы ygr[x]

Цикл вычисления ymd[x] на вертикали до границы ygr[x]

x := 0 ymax := 0 нц пока x <= 700 . если ymd [ x ]>= ymax . . то . . . xmax…

x := 0 ymax := 0 нц пока x <= 700 . если ymd [ x ]>= ymax . . то . . . xmax…

Кумир. Линейное программирование. Программа для построения графика целевой функции.

Кумир. Линейное программирование. Программа для построения графика целевой функции.
Скачать файл