ОПТИМИЗАЦИЯ ИСПОЛЬЗОВАНИЯ ВАЖНЕЙШИХ ПРИРОДНЫХ РЕСУРСОВ. Основы оптимизации ресурсов


ГлаваIi. Математические модели оптимизации ресурсов и принятия решений.

2.1. Общий случай математической постановки задачи оптимизации.

Задача оптимизации в общем случае, включающая три компоненты ( целевую функцию F, ограничение gi

и граничные условия), имеет следующую математическую постановку.

F=f(x1,x2,...,xn)→max (min)

g1(x1,x2,...,xn) {≤ , =, ≥}d1 ;

........................................ или F=f(xj ) →max (min)

g1(x1,x2,...,xn) {≤ , =, ≥}di ; gi (xj) {≤,= , ≥}di

aj ≤ xj ≤ bj ; i = 1,m, j=1,n

........................................

gm(x1,x2,...,xn) {≤ , =, ≥}dm ;

aj ≤ xj ≤ bj ; i= 1,m, j = 1,n,

где aj и bj – нижнее и верхнее предельно допустимые значения xj

Граничные условия показывают предельно допустимые значения искомых переменных, и в общем случае они могут быть двухсторонними типа aj ≤ xj ≤ bj .

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

Значения переменных, удовлетворяющие заданным граничным условиям и ограничениям, называют допустимым решением задачи.

Если в задачу включаются противоречивые по смыслу требования, выполнить которые невозможно то задачу считают несовместной. Правильно же составленная задача имеет набор допустимых решений. Чтобы из данного набора допустимых решений ЛПР могло выбрать одно оптимальное (от латинского optimus – наилучший ), необходимо договориться как и по какому признаку его найти. ЛПР должно абсолютно точно представлять, в чем заключается оптимальность принимаемого решения , т.е по какому критерию принимаемое решение должно быть оптимально.

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

2.2. Методы оптимизации и распределения ресурсов на основе задач линейного программирования.

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

Задача о назначениях и распределении работ является частным случаем транспортной задачи,

В которой приняты следующие допущения : число поставщиков m равно числу потребителей n; запасы каждого поставщика aj= 1 ; заявки каждого потребителя bj= 1 ; каждый поставщик может поставлять грузы только одному потребителю; каждый потребитель может получать груз только от одного поставщика.

Если сумма запасов A у поставщика равняется сумме всех заявок B потребителей, то такую транспортную задачу называют сбалансированной ; если A ≠ B , то задача является несбалансированной, и ее математическая модель может иметь вид:

mn

F= ∑ ∑ cijxij→ min

i=1 j=1

n ____

∑ xij ≤ aj ; j = 1,m;

i=1

m ____

∑ xij ≥ bj ; ; i= 1,n

j=1

xij≥0;

Знак равенства в ограничениях для запасов ajозначает, что объем груза, вывозимый от любого

i-го поставщика по заявкам всех потребителей, не может превышать имеющегося у него запаса, при этом часть запаса груза может оставаться не вывезенной . Аналогично знак неравенства в ограничениях для заявок bj означает, что груз, получаемый j– м поставщиком, должен быть не меньше заявки, но превышение заявки при этом допускается.

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

studfiles.net

ОПТИМИЗАЦИЯ ИСПОЛЬЗОВАНИЯ ВАЖНЕЙШИХ ПРИРОДНЫХ РЕСУРСОВ

Введение в специальность

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

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

Водные ресурсы. Как природный ресурс вода исчерпаема в качественном отношении, поскольку для бытовых нужд населения необходима вода с положительными органолептическими свой­ствами (цвет, привкус, запах) и без токсичных примесей, а для промышленности — определенного физико-химического состава (в частности, обессоленная, в ряде случаев — умягченная). Ре­гиональное размещение воды на Земле крайне неравномерно. Из общего годового стока СССР (4340 км ) 60 % воды уходит в бассейн Северного Ледовитого океана, 22 % — в бассейн Тихого океана, 8 % — в Атлантику и лишь 10 % обводняет более теплые районы, поступая в Арало-Каспийский бассейн. На долю наи­более крупных рек, расположенных в малообжитых северных и восточных районах, приходится 86 % стока. Если в лесной зоне страны на 1 км2 территории приходится 200—300 пог. м рек, то в Средней Азии — до 10 пог. м. В результате республики Средней Азии, где сосредоточено всего 2 % воды, испытывают в ней особо острую нужду.

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

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

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

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

Главным водопотребителем является сельское хозяйство. Для выращивания высоких урожаев и повышения продуктивности экосистем необходима, однако, не только вода, но и определен­ная сумма положительных температур. Наиболее развитые сель­скохозяйственные районы СССР — житницы нашей страны — расположены в средней и южной частях, а распределение годо­вого стока и водообеспеченность имеют противоположную тенден­цию. Так, около 65 % всей возделываемой территории приходится на зону с недостаточным количеством осадков.

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

Орошение и обводнение земель связано с большими безвоз­вратными потерями воды. Например, в 1975 г. на орошение было израсходовано 168 км3 воды, из которых 144 км3 считаются безвозвратно потерянными.

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

Крупным водопользователем является гидроэнергетика. По­лучение электроэнергии так или иначе связано с зарегулирова­нием рек и строительством водохранилищ, каналов, шлюзо­вых систем. Большинство крупных водохранилищ европейской части СССР не только обеспечивает хозяйства энергией, но слу­

Жат для ирригации (орошения) судоходства, лесосплава, удов­летворения бытовых нужд, для защиты от наводнений.

Накопленные в водохранилищах запасы энергии оценива­ются в 775 млрд. кВт-ч. В нашей стране создано более 1000 водо­хранилищ, из которых 20 имеют площадь водного зеркала свыше 1000 км2. Наиболее крупное — Куйбышевское (6,5 тыс. км2), наиболее водоемкое — Братское (179 км3). Через турбины Вол­гоградской ГЭС проходит 14 тыс. м3/с воды.

Мощным водопотребителем является промышленность. Изве­стно, например, что для выплавки 1 т чугуна требуется 300 м3 воды, для производства 1 т целлюлозы — 250 м3.

Воды, возвращаемые предприятиями после использования, качественно изменены. Они содержат множество химических веществ (кислоты, фенолы, щелочи и т. д.), а также механиче­ских примесей. Исторически сложилось так, что промышленность использует естественные водоемы и водотоки для разбавления отходов. Нередко между местом (створом) их сброса и местом, где концентрация в воде снизится до безопасных пределов (ПДК), лежат десятки километров.

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

Значительные количества воды использует бытовое хозяйство. Города, снабженные системами водопровода и канализации, забирают миллионы кубических метров воды ежесуточно. С 1965 по 1975 гг. потребление воды на эти нужды в СССР удвоилось и составило свыше 16 км3/год, а к 2000 году ожидается дальней­шее удвоение. Житель крупного города СССР расходует в сутки на личные нужды 300—500 л воды, а средний расход по стране составляет 170 л на человека.

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

Таким образом, охрана качества и рациональное использова­ние водных ресурсов требуют решения комплекса инженерно - технических и организационных задач, в числе которых можно назвать следующие:

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

Этот путь заключается в техническом совершенствовании про­изводства, а следовательно, связан с научно-техническим про­грессом. В первую очередь на сокращенный режим следует пере­водить наиболее водоемкие отрасли. Так, на добычу 1 т нефти затрачивается при разных условиях от 0,4 до 24 м3 воды. Понятно, что здесь имеется большой резерв для экономии данного ресурса.

Разрабатываются безводные способы формования бумаги и получения других продуктов целлюлозно-бумажного производ­ства.

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

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

Для устранения потерь воды при орошении и вторичного засоления земель при обводнении открытые каналы заменяют сетыо металлических и полиэтиленовых труб, применяют бетонно­полиэтиленовое покрытие дна оросительных каналов, широко ис­пользуют дождевальные установки. Согласно имеющимся расче­там эти меры в недалеком будущем позволят экономить еже­годно не менее 1,3 млрд. м3 воды.

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

3. Управление естественным стоком. Растущие потребности в воде, сопровождающиеся истощением водных ресурсов в отдель­ных регионах (например, из-за сведения лесов, водоразбора), вынуждают перераспределять естественный речной сток с целью подачи воды из водообеспеченных районов в малообеспеченные. Например, часть волжской воды передается Дону, Днепр час­тично подпитывается водой из северных рек.

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

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

На первый взгляд, самое простое — это поставить между технологией и природной средой «барьер» из очистных соору­жений. Специальными постановлениями ЦК КПСС и Совета Ми­нистров СССР большие средства выделялись на строительство очистных сооружений для защиты, например, Байкала, Каспия, Волги, Урала, Черного и Азовского морей, для сохранения чисто­ты атмосферы во многих городах и промышленных центрах стра­ны. Это неизбежное пока направление будет развиваться и далее. Но процесс очистки — не самый прогрессивный путь из-за доро­говизны и энергоемкости очистных сооружений. Они требуют больших площадей, сложных технологических приемов. Кроме того, возникает проблема «избавления» от выделенных при очи­стке отходов — шламов, скопов, осадков. С увеличением степе­ни очистки возрастают затраты. Например, для того, чтобы при достигнутой степени удаления примесей из сточных вод 92 % повысить степень очистки до 94 %, необходимо затратить при­близительно столько же средств, сколько на то, что уже достиг­нуто. Этот пример отчасти условен, но объективно иллюстрирует сложность проблем очистки.

5. Использование попутных и сточных вод в хозяйстве. Необ­ходимость их использования специально подчеркнута в разделе XI «Основных направлений...», принятых XXVII съездом КПСС.

Интенсивное коммунальное строительство может привести к тому, что к 2000 году будет ежегодно образовываться до 40 км3 бытовых и 6 км3 сельскохозяйственных стоков. В то же время потребности в воде для орошения могут составить в пределах только европейской части СССР 300—400 км3/год.

Считается, что путем создания самотечных или насосных систем и сооружений указанным количеством стока можно оро­сить (при средней годовой норме 5 тыс. м3/га) около 10 млн. га сельскохозяйственных земель с одновременным получением ими 8 млн. т общего и 6 млн. т аммиачного азота, 1,6 млн. т фосфора, 10 млн. т калия. Подобные поля уже имеются в Украине, в Казах­стане, Московской области. Затраты на технические сооруже­ния, как показывает прутика, окупают себя прибавкой урожая в течение 3—4 лет.

Значительное количество воды теряется при свободном из­лиянии из артезианских скважин или при добыче, например, нефти. На последнее обратил внимание еще В. И. Ленин [11], писав­ший Л. П. Серебровскому: «Качаем воду (с нефтью) и не употреб­ляем эту воду на орошение, которое дало бы гигантские урожаи сена, риса, хлопка».

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

Известно, что для успешного ведения сельского хозяйства необходимо определенное соотношение энергетического баланса и влагообеспеченности. В противном случае наблюдается либо избыточное увлажнение, либо повышенная засушливость. Так, для районов с притоком солнечной энергии 200—250 кДж/см2 в год норма осадков не должна быть ниже 1000—1100 мм/год.

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

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

Атмосферный воздух является также важнейшим природным ресурсом и одновременно — неотъемлемым элементом среды оби­тания (экосферы). Циркуляция воздушных масс, имеющих раз­личную температуру и влажность, определяет режим погодных условий, проявляясь в ряде случаев в форме разрушительных явлений типа смерчей, ураганов. Воздух непосредственно вос­принимает и трансформирует солнечное излучение, через атмо­сферу жизнь на Земле воспринимает многолетние циклы солнеч­ной активности, с которыми связаны многие периодические явле­ния в органическом мире.

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

Антропогенное воздействие на атмосферу проявляется преж­де всего в ее локальном и глобальном загрязнении твердыми, жидкими и газообразными ксенобиотиками промышленно-энерге - тического и хозяйственно-бытового происхождения (до 200 мли. т вещества в год). Известно, что при сжигании 1 т каменного угля выделяется примерно 20 кг диоксида серы. ТЭС, сжигающая уголь с содержанием 1 % серы, образует ежегодно выброс 33 т.-диокси­да серы, способного в определенных условиях образовать до 50 т серной кислоты. Автомобиль образца 1970 г. выбрасывает в год до 297 кг СО, 39 кг углеводородов, 10 кг оксидов азота, до

0, 5 кг свинца. В районах нефтедобычи с горящим факелом попут­ного газа загрязнение воздуха углеводородами наблюдается в радиусе 3—5 км, в районе первичной переработки газа — до 10 км, в зоне предприятий глубокой переработки нефти — до 15—20 км. Ряд выбрасываемых веществ, например соединения серы, хлора, фтора, тяжелых металлов, токсичны для растений и вызывают непосредственный гербицидный эффект. Есть данные, что защит* ный озоновый экран атмосферы разрушается при полетах сверх­звуковых лайнеров.

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

По прогнозам чл.-корр. АН СССР М. И. Будыко увеличение производства энергии на 4—10 % в год может привести к тому, что в течение ближайших 100—200 лет количество высвобож­даемой теплоты будет соизмеримо с величиной радиационного баланса всей суши. Предполагается увеличение среднегодовой температуры воздуха в 2050 году на 1°, а к 2100 году— на 3°, что может вызвать катастрофические последствия, связанные, например, с таянием «вечных» льдов. Повышение содержания ди­оксида углерода на 15—20 % к 2000 г. (по сравнению с 1970 г.) чревато аналогичными последствиями: за счет этого эффекта температура у поверхности суши возрастает примерно на 0,5° в средних широтах и на 1° — в высоких, и потепление климата усугубится («парниковый эффект»). В качестве возможного следствия называют отступление к северу границы морских по­лярных льдов примерно на 2° широты.

Увеличение концентрации антропогенного аэрозоля, масса которого уже сейчас оценивается в 10 млн. т, может изменить оптические свойства атмосферы (прежде всего снизить прозрач­ность), что уменьшит приход общей солнечной радиации при­мерно на 15 %, а ультрафиолетовой — на 30 %, а это приведет к снижению температуры. Конечно, реальные процессы значи­тельно более сложны и взаимосвязаны, однако изложенные при­меры убедительно показывают, что воздействие человека на

msd.com.ua

Реферат Оптимизация ресурсов

скачать

Реферат на тему:

План:

Введение

Эта статья об оптимизации программ и данных вообще;об оптимизациях, применяемых компиляторами см.: Оптимизация компилятора.

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

Хотя целью оптимизации является получение оптимальной системы, истинно оптимальная система в процессе оптимизации достигается далеко не всегда. Оптимизированная система обычно является оптимальной только для одной задачи или группы пользователей: где-то может быть важнее уменьшение времени, требуемого программе для выполнения работы, даже ценой потребления большего объёма памяти; в приложениях, где важнее память, могут выбираться более медленные алгоритмы с меньшими запросами к памяти.

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

Оптимизация должна проводиться с осторожностью. Тони Хоар впервые произнёс, а Дональд Кнут впоследствии часто повторял известное высказывание: «Преждевременная оптимизация — это корень всех бед». Очень важно иметь для начала озвученный алгоритм и работающий прототип.

1. Основы

Некоторые задачи часто могут быть выполнены более эффективно. Например, программа на языке Си, которая суммирует все целые числа от 1 до N:

int i, sum = 0; for (i = 1; i <= N; i++) sum += i;

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

int sum = (N * (N+1)) / 2;

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

1.1. Компромиссы (tradeoff)

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

1.2. Различные области

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

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

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

1.3. Узкие места

Для оптимизации требуется найти узкое место (англ. hotspot), иногда называемое бутылочным горлышком (англ. bottleneck): критическую часть кода, которая является основным потребителем необходимого ресурса. Улучшение примерно 20 % кода иногда влечёт за собой изменение 80 % результатов). Для поиска узких мест используются специальные программы — профайлеры. Утечка ресурсов (памяти, дескрипторов и т.д.) также может привести к падению скорости выполнения программы, для их нахождения также применяются специальные программы (например, BoundsChecker).

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

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

2. Простейшие приёмы оптимизации программ по затратам процессорного времени

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

2.1. Инициализация объектов данных

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

2.2. Программирование арифметических операций

В том случае, когда значительная часть времени работы программы отводится арифметическим вычислениям, немалые резервы повышения скорости работы программы таятся в правильном программировании арифметических (и логических) выражений. Важно, что различные арифметические операции значительно различаются по быстродействию. В большинстве архитектур, самыми быстрыми являются операции сложения и вычитания. Более медленным является умножение, затем идёт деление. Например, вычисление значения выражения , где a — константа, для аргументов с плавающей точкой производится быстрее в виде , где — константа, вычисляемая на этапе компиляции программы (фактически медленная операция деления заменяется быстрой операцией умножения). Для целочисленного аргумента x вычисление выражения 2x быстрее произвести в виде x + x (операция умножения заменяется операцией сложения) или с использованием операции сдвига влево (что обеспечивает выигрыш не на всех процессорах). Подобные оптимизации называются понижением силы операций. Умножение целочисленных аргументов на константу на процессорах семейства x86 может быть эффективно выполнено с использованием ассемблерных команд LEA, SHL и ADD вместо использования команд MUL/IMUL:

; Исходный операнд в регистре EAX ADD EAX, EAX ; умножение на 2 LEA EAX, [EAX + 2*EAX] ; умножение на 3 SHL EAX, 2 ; умножение на 4 LEA EAX, [4*EAX] ; другой вариант реализации умножения на 4 LEA EAX, [EAX + 4*EAX] ; умножение на 5 LEA EAX, [EAX + 2*EAX] ; умножение на 6 ADD EAX, EAX ; и т.д.

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

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

Быстродействие также зависит и от типа операндов. Например, в языке Turbo Pascal, ввиду особенностей реализации целочисленной арифметики, операция сложения оказывается наиболее медленной для операндов типа Byte и ShortInt: несмотря на то, что переменные занимают один байт, арифметические операции для них двухбайтовые и при выполнении операций над этими типами производится обнуление старшего байта регистров и операнд копируется из памяти в младший байт регистра. Это и приводит к дополнительным затратам времени.

Программируя арифметические выражения, следует выбирать такую форму их записи, чтобы количество «медленных» операций было сведено к минимуму. Рассмотрим такой пример. Пусть необходимо вычислить многочлен 4-й степени:

ax4 + bx3 + cx2 + dx + e

При условии, что вычисление степени производится перемножением основания определенное число раз, нетрудно найти, что в этом выражении содержится 10 умножений («медленных» операций) и 4 сложения («быстрых» операций). Это же самое выражение можно записать в виде:

(((ax + b)x + c)x + d)x + e

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

2.3. Циклы

Различается и время выполнения циклов разного типа. Время выполнения цикла со счетчиком и цикла с постусловием при всех прочих равных условиях совпадает, цикл с предусловием выполняется несколько дольше (примерно на 20-30 %).

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

for j := 1 to 100000 do for k := 1 to 1000 do a := 1; for j := 1 to 1000 do for k := 1 to 100000 do a := 1;

Цикл в левой колонке выполняется примерно на 10 % дольше, чем в правой.

На первый взгляд, и в первом, и во втором случае 10 000 000 раз выполняется оператор присваивания, и затраты времени на это должны быть одинаковы в обоих случаях. Но это не так. Объясняется наше наблюдение тем, что инициализации цикла, то есть обработка процессором его заголовка с целью определения начального и конечного значений счётчика, а также шага приращения счётчика требует времени. В первом случае 1 раз инициализируется внешний цикл и 100 000 раз — внутренний, то есть всего выполняется 100 001 инициализация. Во втором случае, как нетрудно подсчитать, таких инициализаций оказывается всего лишь 1001.

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

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

for(int y=0; y<height; y++) for(int x=0; x<width; x++) put_puxel(x,y,0x00FF00); for(int i=0,n=width*height; i<n; i++) VRAMptr_dd[i] = 0x00FF00;

Улучшение за счёт снижения кол-ва цикловых команд, и чем уже width тем эффективней.

Если в циклах содержатся обращения к памяти (обычно при обработке массивов), порядок обхода адресов памяти должен быть по возможности последовательным, что позволяет максимально эффективно использовать кэш и механизм аппаратной предвыборки данных из памяти (англ. Hardware Prefetch). Классическим примером подобной оптимизации является смена порядка следования вложенных циклов при выполнении умножения матриц.

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

sum := 0; for i := 1 to 1000 do sum := sum + a * x[i]; sum := 0; for i := 1 to 1000 do sum := sum + x[i]; sum := a * sum;

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

2.4. Инвариантные фрагменты кода

Оптимизация инвариантных фрагментов кода тесно связана с проблемой оптимального программирования циклов. Внутри цикла могут встречаться выражения, фрагменты которых никак не зависят от управляющей переменной цикла. Их называют инвариантными фрагментами кода. Современные компиляторы часто определяют наличие таких фрагментов и выполняют их автоматическую оптимизацию. Такое возможно не всегда, и иногда производительность программы зависит целиком от того, как запрограммирован цикл. В качестве примера рассмотрим следующий фрагмент программы (язык Turbo Pascal):

for i := 1 to n do begin ... for k := 1 to p do for m := 1 to q do begin a[k, m] := Sqrt(x * k * m - i) + Abs(u * i - x * m + k); b[k, m] := Sin(x * k * i) + Abs(u * i * m + k); end; ... am := 0; bm := 0; for k := 1 to p do for m := 1 to q do begin am := am + a[k, m] / c[k]; bm := bm + b[k, m] / c[k]; end; end;

Здесь инвариантными фрагментами кода являются слагаемое Sin(x * k * i) в первом цикле по переменной m и операция деления на элемент массива c[k] во втором цикле по m. Значения синуса и элемента массива не изменяются в цикле по переменной m, следовательно, в первом случае можно вычислить значение синуса и присвоить его вспомогательной переменной, которая будет использоваться в выражении, находящемся внутри цикла. Во втором случае можно выполнить деление после завершения цикла по m. Таким образом, можно существенно сократить количество трудоёмких арифметических операций.

3. Приоритеты оптимизации

Этот пункт можно можно разделить на:

...

PS: но, должен всегда быть вариант кода - без их наличия, в т.ч.для возм.портирования в будущем [возможно другими людьми] и просто для Safe версии исполнимого файла, т.к.некоторые PC-совместимые ПК, тем более лаптопы и прч. - не совсем совместимые и тем более безглючные...

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

Литература

wreferat.baza-referat.ru

Оптимизация загрузки ресурсов - Энциклопедия по экономике

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

Оптимизация загрузки ресурсов  [c.256]

Так организованы алгоритмы оптимизации загрузки ресурсов, реализованные во многих системах управления проектами. Они отличаются друг от друга, в основном, принципами разбивки календарного периода выполнения проекта на интервалы и правилами формирования системы приоритетов, определяющих последовательность и величину сдвига работ на более поздние сроки.  [c.260]

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

Производительность СУБД определяется несколькими факторами, характеризующими разнообразные применения и рабочие нагрузки. Однако всегда целью является оптимизация имеющихся ресурсов и разделение их между приложениями и пользователями. В первую очередь это относится к дисковому вводу/выводу, сетевому графику, загрузке центрального процессора, параллельному доступу к базе данных одновременно большого числа пользователей.  [c.349]

Целью логистики является организация в пространстве и во времени материальных потоков с минимальной затратой ресурсов, которая обеспечит максимальное удовлетворение запросов потребителей. Основными задачами логистики являются организация материальных потоков предприятия оптимизация загрузки производственных мощностей оптимизация затрат на производство и реализацию изготовленной продукции экономия материальных ресурсов на всех стадиях материальных потоков. Чтобы выполнить цели и задачи логистики в рамках предприятия, строят логистические системы.  [c.592]

Специальные инструменты по управлению трудовыми ресурсами в центрах поддержки клиентов предлагают возможности планирования персонала и оптимизации загрузки в соответствии со спецификой бизнеса. Некоторые из систем специализируются именно на управлении персоналом в контакт-центрах. Оптимизация происходит вокруг пиков обращений, различных каналов взаимодействия, типов клиентов, что гарантирует достойный уровень сервиса наиболее ценным из них. Системы могут комбинировать задачи операционного управления, такие как распределение звонков в соответствии с приоритетами, функциями планирования, включая  [c.175]

Наиболее распространенным методом решения важных практических задач планирования и управления является линейное программирование. С помощью симплекс-метода решаются задачи планирования производственной программы предприятия, объединения, способствующие получению максимального эффекта при ограниченных материальных и трудовых ресурсах. Распределительный метод линейного программирования позволяет выбрать оптимальные варианты планов транспортных перевозок решать задачи по оптимизации планов загрузки оборудования и др.  [c.78]

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

Сетевой график следует проанализировать с целью сокращения критического пути, затрат ресурсов, уменьшения ненужных резервов. Этот процесс предшествует оптимизации сетевого графика. Анализ позволяет оценить целесообразность структуры графика, определить степень сложности выполнения каждой работы, вероятность наступления событий в заданный (директивный) срок, загрузку исполнителей работ на всех этапах выполнения проекта.  [c.42]

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

Реально группы представляют собой огромные хозяйственные комплексы, собирающие под одну крышу предприятия и учреждения сфер производственной, финансовой и коммерческой. Интеграция в ФПГ различных удачно подобранных хозяйствующих субъектов повышает возможности для оптимизации состава и использования объединяемого капитала. Это, в свою очередь, приводит к экономии капитальных вложений, более полной загрузке производственных мощностей, росту отдачи вовлеченных ресурсов. Финансово-промышленные группы способствуют экономии оборотных средств, в частности, благодаря развитию взаимного зачета платежей структурных подразделений внутри групп, что уменьшает платежный оборот и массу финансовых ресурсов, необходимых для нормального обеспечения производства и обращения.  [c.371]

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

Сетевой график и график загрузки людских ресурсов после оптимизации представлены на рис.7.8. Приоритет передвижения работ по оси времени отдавался работам с наибольшими резервами времени.  [c.101]

Предполагается, что стратегический ресурс госпиталя, его операционный блок, будет редко простаивать без работы. Поэтому в госпитале должно быть достаточное число хирургов, хирургических сестер и анестезиологов, обеспечивающее полную загрузку операционных. В некоторых госпиталях это условие не выполняется, и в них легко заметить признаки плохо организованного потока пациентов, заключающиеся в том, что пациенты с одинаковыми заболеваниям в таких госпиталях пребывают в среднем дольше, чем по стране в целом. Иногда в госпиталях даже отсутствует понимание того, что операционные представляют собой их стратегические ресурсы, и вся их деятельность не подчинена задаче обеспечения наиболее полного использования их пропускной способности. Зачастую политика госпиталя нацелена на оптимизацию режимов работы врачей, а не сроков лечения больных. При этом упускается из виду, что содержанием госпитальных проектов является лечение больных, а не работа медицинского персонала сама по себе.  [c.356]

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

Возможности Proje t позволяют применять для управления загрузкой ресурсов комбинированные экранные формы, позволяющие за счет высокоэффективного интерфейса Proje t планировать расписание задач проекта одновременно с оптимизацией загрузки ресурсов. Комбинированные экранные формы помогают широко привлекать квалифицированных экспертов для управления ресурсами и существенно расширяют их способность влиять на выполнение проекта.  [c.252]

В ряде случаев может оказаться целесообразным использование возможностей Proje t для того, чтобы попытаться оптимизировать загрузку ресурсов. Эта система управления проектами имеет встроенный алгоритм, позволяющий автоматически решать задачу оптимизации загрузки ресурсов. С точки  [c.256]

Познакомившись с принципом работы реализованного разработчиками Proje t алгоритма оптимизации загрузки ресурсов, рассмотрим алгоритм 4.9, при помощи которого можно средствами Proje t выравнивать загрузку ресурсов.  [c.261]

Resour eView — специализированная система для планирования и контроля использования ресурсов. Поддерживаются средства выравнивания о оптимизации загрузки ресурсов.  [c.651]

Анализ показанной на рис. 3.23 линейной диаграммы показывает, что сам по себе ввод временного ограничения задачи еще не обеспечивает автоматического изменения всего расписания задач графика. Хотя Proje t имеет определенные возможности выравнивания загрузки ресурсов и пересчета временных показателей задач (они будут рассмотрены далее), основным средством оптимизации расписания проекта должны служить принимаемые руководителем проекта и другими членами команды проекта решения — это принцип управления проектами.  [c.159]

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

Следует иметь в виду, что I час простоя рабочего места (рабочего и оборудования) в условиях непоточного производства наносит убытки, Во много раз большие, чем убытки производства от I часа пролеживания предметов труда одного наименования. Поэтому общий критерий оптимизации — минимум затрат производственных ресурсов — в условиях непоточного производства может быть обеспечен за счет организации непрерывной загрузки рабочих мест, тогда как в поточном производстве — выбором варианта с минимальным временем межоперационного пролеживания деталей.  [c.147]

Совершенствование экономич. управления на базе массового создания АСУ ведёт к росту эффективности общественного произ-ва. Экономич. эффективность АСУ исчисляется как разность полученной дополнит, прибыли и стоимости системы. Последняя складывается из затрат на проектирование, произ-во и монтаж оборудования, затрат на внедрение и отладку системы, а также эксплуатац. затрат. Экономич. эффект от внедрения АСУ достигается за счёт а) роста объёма произ-ва в результате лучшего планирования и управления б) более полной загрузки производств, мощностей, более рационального использования ресурсов в) ускорения циклов произ-ва, транспортировки и потребления в результате оптимизации производств, и транспортных программ г) уменьшения уровня производств, запасов н повышения оборачиваемости оборотных средств снижения непроизводит. затрат за счёт возрастания гибкости системы управления д) снижения относит, численности управленч. персонала.  [c.18]

Метод определения трансфертных цен на основе управляемых (переменных) затрат обладает рядом существенных преимуществ по сравнению с методом полных затрат, поскольку прежде всего способствует лучшему распределению ресурсов в краткосрочном плане и позволяет определить нижнюю границу цены. Подобная методика соответствует методике нормативных цен в случае полной загрузки производственных мощностей подразделения поставщика. Постоянные издержки при этом могут переноситься единым блоком на потребителя продукции, что позволяет избежать проблемы пересчетов. Применение переменных издержек также способствует оптимизации производственной программы для компании в целом. Однако при действующей системе налогообложения трансфертные цены не могут быть ниже себестоимости и выше рыночной цены продукции, что во многом ограничивает возможности использования метбди-ки трансфертного ценообразования на базе регулируемых (переменных) издержек.  [c.94]

economy-ru.info


Prostoy-Site | Все права защищены © 2018 | Карта сайта