Файл: Понятие переменной в программировании. Виды и типы переменных (ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ИССЛЕДОВАНИЯ ПЕРЕМЕННЫХ В ПРОГРАММИРОВАНИИ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 199

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Пример 3. (Взят из пособия [1]).

Мини-пекарня планирует выпечку батонов и булочек. На производ­ство одного батона расходуется 450 г муки, 10 г масла и 0.5 яйца, а на про­изводство одной булочки - 150 г муки, 5 г масла и 1 яйцо. В пекарню еже­дневно завозят 180 кг муки, 10 кг масла и 775 яиц. Прибыль от реализации батона равна 3 рублям, а от реализации булочки - 5 рублям. В день необ­ходимо производить не менее 780 единиц продукции и получать не менее 3500 рублей прибыли. Требуется разработать план, обеспечивающий мак­симальную прибыль.

Решение. Обозначим производимое в день количество батонов сим­волом x1, а x2 - число булочек. По условию задачи эти переменные удо­влетворяют следующей системе ограничений:

Третье условие в системе (6) есть ограничение на количество масла, привозимого каждый день, а четвертое - на количество муки. В последних двух условиях пропорционально изменены коэффициенты для придания записям более простого вида. Формула прибыли имеет вид:

r = 3x1 + 5x2.

Полный текст программы задачи в символах turbobasic^: r0=1 for x1=0 to 400 step 1

for x2=0 to 775 step i

if 3*xi+x2<=i200 and xi+x2/2<=500 and xi+x2>=780 and_ xi/2+x2<=775 then r=3*xi+5*x2

if r>r0 and 3*xi+x2<=i200 and xi+x2/2<=500 and xi+x2>=780_ and xi/2+x2<=775 then r0=r : xi0=xi : x20=x2

next x2, xi : print r0, xi0, x20

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

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

rmax = 3950, xi0 =i50, x20 = 700.

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

r0=i

for s=i to i000000 step i xi=400*rnd : x2=775*rnd if 3*xi+x2<=i200 and xi+x2/2<=500 and xi+x2>=780 and_ xi/2+x2<=775 then r=3*xi+5*x2

if r>r0 and 3*xi+x2<=i200 and xi+x2/2<=500 and xi+x2>=780_ and xi/2+x2<=775 then r0=r : xi0=xi : x20=x2

next s : print r0, xi0, x20

Результат вычислений:

rmax = 3949.i77, xi0 =i49.94i, x20 = 699.87i

оказался весьма близким к точным целочисленным значениям.

Пример 4. (Взят из пособия [2])..

Имеется большое количество бревен длиной 3 м. Из них распили­ванием следует получить заготовки двух видов: длиной i.2 м и длиной 0.9 м, причем заготовок каждого вида должно быть получено не менее 50 шт. и 8i шт. соответственно. Каждое бревно можно распилить на указанные заготовки тремя способами: i) на 2 заготовки по i.2 м; 2) на i заготовку по i.2 м и 2 заготовки по 0.9 м; 3) на 3 заготовки по 0.9 м. Найти число бревен, распиливаемых каждым способом, с тем чтобы требуемые количе­ства заготовок каждого вида были получены из наименьшего числа бре­вен.


Решение. Обозначим через xi,x2,x3 числа бревен, распиливаемых соответственно 1-м, 2-м и 3-м способами. Из них можно получить 2xi + x2 заготовок по i.2 м и 2x2 + 3x3 заготовок по 0.9 м. Общее количе­ство бревен, потребное для изготовления названных заготовок, обозначим символом r. Тогда математическая модель задачи примет вид:

r = Xi + x 2 + X3 ® min

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

2Xi + X2 > 50,

2X2 + 3x3 > 81

Все переменные - неотрицательные целые числа.

Ниже приведен полный текст программы, решающей данную зада­чу. Длины интервалов изменения переменных в циклах вычислений опре­деляются по правым частям неравенств, и они должны быть: для X1 - не менее 25, для X2 - не менее 41, для X3 - не менее 27, чтобы покрыть объ­ем, в котором может находиться оптимальная точка

r0=1000

for x1=0 to 30 step 1

for x2=0 to 50 step 1

for x3=0 to 30 step 1

if 2*x1+x2>=50 and 2*x2+3*x3>=81 then r=x1+x2+x3

if r<r0 and 2*x1+x2>=50 and 2*x2+3*x3>=81 then_

r0=r : x10=x1 : x20=x2 : x30=x3

next x3, x2, x1

print r0, x10, x20, x30

Вычисления дают нам следующий оптимальный результат:
rmin =46, X10 =4, X20 =42, X30 =0.

В учебном пособии [2] отмечается альтернативность оптимальных результатов в целочисленных задачах, и утверждается, что в этой задаче должно быть четыре таких варианта. Они приводятся, но наш результат не совпадает ни с одним из них. Лучший их результат по отношению к вели­чине отходов уступает нашему результату. Приведем его:

rmin =46, X10 =5, X20 =41, X30 =0.

В нашем случае 2.4 м бревен уходят в отходы, а в их случае - 3 м. В нашем случае делается 50 заготовок в 1.2 м и 84 заготовки длиной 0.9 м. А в их случае делается 51 заготовка в 1.2 м и 82 заготовки длиной 0.9 м. Таким образом, наш результат является пятым альтернативным вариантом, и он оказался лучше по минимуму отходов, хотя никаких дополнительных критериев, как можно видеть, в программу не вставлено.

Выводы:

  1. Суть предлагаемого метода состоит в автоматическом комбини­ровании величин искомых переменных, вычислении целевой функции для каждой допустимой комбинации и в последовательном ее улучшении.
  2. Приведенные простые примеры относятся к различающимся ви­дам задач: в первом примере решается общая задача линейного програм­мирования, во втором примере - каноническая задача, а в третьем и чет­вертом примерах - стандартная задача.
  3. Примеры наглядно иллюстрируют возможности предлагаемого метода - простоту и скорость получения результата.
  4. Предлагаемый метод несомненно имеет недостатки. Это отсут­ствие наглядности, поскольку геометрические образы и связи разнообраз­ных классических подходов остаются в стороне. Это невозможность полу­чения альтернативных результатов в целочисленных задачах. Это невоз­можность определения без специальных действий, что оптимум может иметь место не в точке, а в некоторой непрерывной области переменных. Это невозможность определения в одном вычислении, что задача не имеет конечного экстремума. Наверняка читатель найдет и другие погрешности.
  5. Для повышения точности результата следует уменьшать шаги изменения задаваемых переменных. При большом числе задаваемых пере­менных и малых шагах их изменения количество исчисляемых комбина­ций и время вычисления может быть недопустимо велико. Чтобы получить достаточную точность результата за приемлемое время, надо проводить вычисления в несколько этапов. Перед началом вычислений надо задаться сравнительно крупными шагами и интервалами изменения, обеспечиваю­щими попадание оптимума в заданный объем. Получив при этих условиях сравнительно близкую к оптимуму точку, надо выделить вокруг нее мень­ший объем. Для этого надлежит отступить от нее на величину шага в обе стороны по каждой задаваемой координате и задаться значительно мень­шими величинами шагов. Далее снова проводятся вычисления, и все дей­ствия повторяются, пока не будет достигнута приемлемая точность.
  6. Для снижения количества исчисляемых комбинаций и времени счета можно также попытаться использовать генератор случайных чисел. В первом и третьем примерах применение генератора rnd дает очень близ­кий к оптимуму результат. Однако уже в примере с транспортной задачей для числа циклов изменения переменных 107 результат качественно отли­чался от оптимального - в таблице результатов не оказалось клеток с близ­кими к нулю величинами.
  7. Если оптимум достигается не в единственной точке, а на некото­ром множестве, то предложенный метод находит только единственную точку, и положение ее зависит от выбора интервалов изменения перемен­ных, порядка их вложения в циклы и шага их изменения.
  8. В задачах с отсутствием конечного оптимума таковое может быть обнаружено несколькими попытками вычислений с увеличением интерва­лов изменения переменных. При этом целевая функция неограниченно растет по абсолютной величине.
  9. Предложенный метод может применяться и к нелинейным зада­чам, но решение и анализ систем нелинейных уравнений сильно осложнит дело для случаев аналогов общей и канонической задач нелинейного про­граммирования. Между тем препятствий для решения рассмотренным ме­тодом аналогов стандартных задач в нелинейной постановке не видно.

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

СПИСОК ЛИТЕРАТУРЫ

  1. Александров В. В. Экологическая роль электромагнетизма. - СПб.: Изд-во Поли- техн. ун-та, 2015. - 736 с.
  2. Барабанов А. А., Косов А. А., Ярославцев Н. А. Влияние энергетических форм природы на жизнедеятельность человека // Академический вестник УралНИИпроект РААСН. - 2015. - № 1. - С. 91-96.
  3. Бугакова Т. Ю. Вовк И. Г. Математическое моделирование пространственно-временного состояния систем по геометрическим свойствам и оценка техногенного риска методом экспоненциального сглаживания // Вестник СГГА. - 2012. - Вып. 4 (20). - С. 47-58.
  4. Винер Н. Кибернетика, или управление и связь в животном и машине; или Кибернетика и общество. - 2-е издание. - М.: Наука; Главная редакция изданий для зарубежных стран, 2013. - 344 с.
  5. Галль Л. Н. В мире сверхслабых. Нелинейная квантовая биоэнергетика: Новый взгляд на природу жизни. - 2016. - 317 с.
  6. Гуревич И. М. Оценка основных информационных характеристик Вселенной // Приложение к журналу «Информационные технологии». - 2016. - № 12. - С. 2-17.
  7. Дубров А. П. Когнитивная психофизика: основы. - 2-е изд., исп. и доп. - Ростов н/Д.: Феникс, 2012. - 301 с.
  8. Егоров В. В. Физические поля и излучения организма (на примере человека). Проблемная лекция. - М.: ФГОУ ВПО МГАВМиБ, 2016. - 64 с.
  9. Информация // Большой энциклопедический словарь. - 2-е изд., перераб. и доп. - М.: Большая Российская энциклопедия, 2015. — 1434 с.
  10. Карпик А. П., Осипов А. Г., Мурзинцев П. П. Управление территорией в геоинформационном дискурсе. - Новосибирск: СГГА, 2016. - 279 с.
  11. Концепции целостности эволюции материального мира / Ю. С. Ларионов, Н. А. Ярославцев, С. М. Приходько, Е. В. Екимов // VI Международный конгресс «Слабые и сверхслабые поля и излучения в биологии и медицине». Санкт-Петербург, 2 июня 2012 г.: сб. научных трудов. - Спб., 2012. - С. 268-269.
  12. Ларионов Ю. С. Основы эволюционной теории (Концепции естествознания и аксиомы современной биологии в свете эволюции материи): учеб. пособие. - Омск, изд. ИП Скорнякова Е. В., 2012. - 233 с.
  13. Ларионов Ю. С., Ярославцев Н. А. Зависимость скорости роста растительных тест- объектов семян пшеницы от действия электромагнитных излучений низкой интенсивности естественного происхождения // Вестник СГГА. - 2012. - Вып. 4 (20). - С. 100-106.
  14. Моисеев Н. Н. Расставание с простотой. - М.: АГРАФ, 2012. - С. 98.
  15. Першин С. М. Слабое когерентное излучение ОН и орто-Н2О мазеров как несущая в биокоммуникации: орто-Н2О, как резонансный сенсор // Человек и электромагнитные поля: сб. докладов III Международной конференции. - Саров: РФЯЦ-ВНИИЭФ, 2016. - С. 4- 12.
  16. Петров Н. В. Живой Космос. - СПб.: ООО «Береста», 2015. - 420 с.
  17. Сборник научных трудов VI Международного конгресса «Слабые и сверхслабые поля и излучения в биологии и медицине». - СПб., 2012. - 309 с.
  18. Семенков О. И. Информация. Новейший философский словарь / Сост. и гл. науч. ред. А. А. Грицанов. 3-е изд., испр. - Минск: Книжный дом, 2013. - С. 431-434.
  19. Чернавский Д. С. Синергетика и информация (динамическая теория информации). Изд. 2-е. - М.: Едиториал УРСС, 2014. - 288 с.
  20. Электромагнитный информационный подход к целостной естественнонаучной картине материального мира / Ю. С. Ларионов, В. С. Ларионов, Н. А. Ярославцев, Н. М. При- ходько, Е. И. Баранова // Вестник СГГА. - 2014. - Вып. 4 (28). - С. 158-174.
  21. Энергоинформационные взаимодействия как основа понимания целостной картины мира / Н. А. Ярославцев, Ю. С. Ларионов, С. М. Приходько, Е. В. Екимов // VI Международный конгресс «Слабые и сверхслабые поля и излучения в биологии и медицине». Санкт- Петербург, 2-6 июля 2012 г.: сб. научных трудов. - СПб., 2012. - С. 280-281.
  22. Systems and software engineering - Vocabulary: Although information will necessarily have a representation form to make it communicable, it is the interpretation of this representation (the meaning) that is relevant in the first place [Электронный ресурс]. - Доступ из: https://www/ISO org/obp/ui/#ISO:std: ISO/IEC/IEEE 24765:2010.