Реферат: Табличный симплекс-метод - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Табличный симплекс-метод

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 458 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

ИСПОЛЬЗОВАНИЕ ТАБЛИЧНОГО СИМПЛЕКС-МЕТОДА ДЛЯ РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГ О ПРОГРАММИРОВАНИЯ ДЛЯ ОПТИ МИЗАЦИИ ЭКОНОМИЧЕСКИХ ЗАДАЧ ВВЕДЕНИЕ Цель данного курсового прое кта - составить план производства требуемых из делий , обеспечивающий максимальную прибыль от их реализации , свести данную задачу к зад аче линейного программировани я , решить её симплекс - методом и составить программу для решения задачи этим методом на ЭВМ. 1. КРАТКИЙ ОБЗОР АЛГОРИТМОВ РЕШЕНИЯ ЗАДАЧ ДАННОГО ТИПА 1.1 Математическое программирование Математическое программирование занимается и зучение экстремальных задач и поиском м етодов их решения . Задачи математического про граммирования формулируются следующим образом : на йти экстремум некоторой функции многих переме нных f ( x 1 , x 2 , ... , x n ) при ограничениях g i ( x 1 , x 2 , ... , x n ) b i , где g i - функция , описывающая ограничения , - один из следующих знаков , , , а b i - действительное число , i = 1, ... , m. f н азывается функцией цели ( целевая функция ). Линейное программирование - это раздел мат ематического программирования , в котором рассматр иваются методы решения экстремальных задач с линейным функционалом и линейными ограничени ями , которым должны удовлетворя ть искомые переменные. Задачу линейного программирования можно с формулировать так . Найти max при условии : a 11 x 1 + a 12 x 2 + . . . + a 1n x n b 1 ; a 21 x 1 + a 22 x 2 + . . . + a 2n x n b 2 ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . a m1 x 1 + a m2 x 2 + . . . + a mn x n b m ; x 1 0, x 2 0, . . . , x n 0 . Эти ограничения называются усл овиями неотрицательности . Если все ограничения заданы в виде строгих равенств , то данн ая форма называется канонической . В матричной форме за дачу линейног о программирования записывают следующим образом . Найти max c T x при условии A x b ; x 0 , где А - матрица ограничений размером ( m n), b (m 1) - вектор-столбец свобо дных членов , x (n 1) - в ектор переменных , с Т = [c 1 , c 2 , ... , c n ] - вектор-строка коэффициенто в целевой функции. Решение х 0 на зывается оптимальным , если для него выполняет ся услов ие с Т х 0 с Т х , для всех х R(x). Поскольку min f(x) эквивалентен max [ - f(x) ] , то задачу л инейного программирования всегда можно свести к эквивалентной задаче максимизации . Для решения зад ач данного типа применяются методы : 1) графический ; 2) табличный ( прямой , простой ) симплекс - ме тод ; 3) метод искусственного базиса ; 4) модифицированный симплекс - метод ; 5) двойственный симплекс - метод . 1.2 Табличный симплекс - метод Для его приме нения необходимо , что бы знаки в ограничениях были вида “ м еньше либо равно ” , а компоненты вектора b - положительны . Алгоритм решения сводится к следующему : Приведение системы ограничений к канон ическому виду путём введения дополнительных п еременных для приведения неравенств к р авенствам. Если в исходной системе ограничений присутствовали знаки “ равно ” или “ больше либо равно ” , то в указанные ограничени я добавляются искусственные переменные , которые так же вводятся и в целевую функцию со знак ами , оп ределяемыми типом оптимума. Формируется симплекс-таблица. Рассчитываются симплекс-разности. Принимается решение об окончании либо продолжении счёта. При необходимости выполняются итерации. На каждой итерации определяется вектор , вводимый в базис , и ве ктор , вывод имый из базиса . Таблица пересчитывается по методу Жордана-Гаусса или каким-нибудь другим способом. 1.3 Метод искусственного базиса Данный метод решения применяется при наличии в ограничении знаков “ равно ” , “ больше либо равно ” , “ меньше либ о равно ” и является модификацией табличного метода . Решение системы производится путём ввода искусственных переменных со знаком , зависящим от типа оптимума , т.е . для исключения из базиса этих переменных пос ледние вводятся в целевую функцию с больш ими отр и цательными коэффициентами , а в задачи минимизации - с положительными . Таким образ ом из исходной получается новая - задача. Если в оптимальном решении - задачи нет ис кусственных переменных , это решение есть опти мальное решение исходной задачи . Если же в оптимальном решении - задачи хоть одна из иск усственных переменных будет отлична от нуля , то с истема ограничений исходной зада чи несовместна и исходная задача неразрешима. 1.4 Модифицированный симплекс - метод В основу данной разновидности симплекс-ме тода положены такие особенности линейной алге бры , которые позволяют в ходе решения зад ачи работат ь с частью матрицы огранич ений . Иногда метод называют методом обратной матрицы. В процессе работы алгоритма происходит спонтанное обращение матрицы ограничений по частям , соответствующим текущим базисным вектор ам . Указанная способность делает весьма привл е кательной машинную реализацию вычислений вследствие экономии памяти под промежуточные переменные и значительного сокращения времени счёта . Хорош для ситуаций , когда число переменных n значительно превышает число ограни чений m. В целом , метод отражает тради ционн ые черты общего подхода к решению задач линейного программирования , включающего в себя канонизацию условий задачи , расчёт симплекс-р азностей , проверку условий оптимальности , принятие решений о коррекции базиса и исключение Жордана-Гаусса. Особенности заключаются в наличии д вух таблиц - основной и вспомагательной , порядк е их заполнения и некоторой специфичности расчётных формул. 2. СОДЕРЖАТЕЛЬНАЯ ПОСТАНОВКА ЗАД АЧИ Для производства двух видов изделий А и В используется три типа технологического оборуд ования . На произв одство единицы изделия А идёт времени , час ов : оборудованием 1-го типа - а 1 , оборудованием 2-го типа - а 2 , оборудов анием 3-го типа - а 3 . На произ водство единицы изделия В идёт времени , ча сов : оборудованием 1-го типа - b 1 , оборудование м 2-го типа - b 2 , , оборудованием 3-го типа - b 3 . На изготовление всех изделий администрация предприятия может предоставить оборудование 1-го типа не более , чем на t 1 , оборудование 2-го типа не более , ч ем на t 2 , обо рудование 3-го типа не более , чем на t 3 часов. Прибыль от реализации единицы готового изделия А составляет рублей , а изделия В - рублей. Составить план производства изделий А и В , обеспечивающий максимальную прибыль от их реализаци и . Решить задачу простым симплекс-методом . Дать геометрическое истолковани е задачи , используя для этого её формулиро вку с ограничениями-неравенствами. а 1 = 1 b 1 = 5 t 1 = 10 = 2 а 2 = 3 b 2 = 2 t 2 = 12 = 3 а 3 = 2 b 3 = 4 t 3 = 10 3. РАЗРАБОТКА И ОПИСАНИЕ АЛГОРИТМА РЕШЕНИ Я ЗАДАЧИ 3.1 Построение ма тематической модели задачи На произв-во изделия А , часов На произв-во изделия B, часов Предпр-е предостав ит , часов Оборуд-е 1 го типа 1 5 10 Оборуд-е 2 г о типа 3 2 12 Оборуд-е 3 го типа 2 4 10 Прибыль от реали зации , за ед . изд-я 2 3 Построение мате матической модели осуществляется в три этапа : 1. Определение переменных , для которых бу дет составляться математическая модель. Так как требуется определить план производства изделий А и В , то переме нными модели будут : x 1 - объём производства изделия А , в единицах ; x 2 - объём производства изделия В , в единицах. 2. Формирование целевой функции. Так как прибыль от реализации един ицы готовых изделий А и В изве стн а , то общий доход от их реализации сос тавляет 2x 1 + 3x 2 ( рублей ). Обозначив общий доход через F, можно дать следующую математическую формулировку целевой функции : определить допустимые значения переменных x 1 и x 2 , максимизирующих целевую функцию F = 2x 1 + 3x 2 . 3. Формирование системы ограничений. При определении плана производства про дукции должны быть учтены ограничения на время , которое администрация предприятия сможет предоставить на изготовления всех изделий . Это приводит к следующим трём огран ич ениям : x 1 + 5x 2 10 ; 3x 1 + 2x 2 12 ; 2x 1 + 4x 2 10 . Так как объёмы производства продукции не могут принимать отрицательные значения , то появляются ограничен ия неотрицательност и : x 1 0 ; x 2 0 . Таким образом , математическая модель за дачи представлена в виде : определить план x 1 , x 2 , обеспечивающий максимально е значение функции : max F = max ( 2x 1 + 3x 2 ) при наличии ограничений : x 1 + 5x 2 10 ; 3x 1 + 2x 2 12 ; 2x 1 + 4x 2 10 . x 1 0 ; x 2 0 . 3.2 Решение задачи вручную Табличный метод ещё называется метод последовательного улучшения оценки . Ре шение задачи осуществляется поэтапно. 1. Приведение задачи к форме : x 1 + 5x 2 10 ; 3x 1 + 2x 2 12 ; 2x 1 + 4x 2 10 . x 1 0 ; x 2 0 . 2. Канонизируем систему ограничений : x 1 + 5x 2 + x 3 = 10 ; 3x 1 + 2x 2 + x 4 = 12 ; 2x 1 + 4x 2 + x 5 = 10 . x 1 0 ; x 2 0 . A 1 A 2 A 3 A 4 A 5 A 0 3. Заполняется исходная симплекс-т аблица и рассчитываются симплекс-разности по формулам : 0 = - текущее значение целевой функции i = - расчёт симплекс-разностей , где j = 1..6 . C 2 3 0 0 0 Б C б A 0 A 1 A 2 A 3 A 4 A 5 A 3 0 10 1 5 1 0 0 A 4 0 12 3 2 0 1 0 A 5 0 10 2 4 0 0 1 0 -2 -3 0 0 0 Так как при решении задачи на max не все симплекс-разнос ти положительные , то оптимальное решение можн о улучшит ь. 4. Определяем направляющий столбец j * . Для задачи на max он определяется минимальной отрицательной сим плекс-разностью . В данном случае это вектор А 2 5. Вектор i * , который нужно вывести из базиса , оп ределяется по отношению : min при а i j > 0 В данном случае сначала это А 3 . 5. Заполняется новая симплекс-таблица по исключеню Жордана - Гаусса : а ). направляющую строку i * делим на направляющий элемент : a i j = a i j / a i j , где j = 1..6 б ). преобразование всей оставшейся части матрицы : a ij = a ij - a i j a ij , где i i * , j j * В результате преобразований получаем нову ю симплекс-таблицу : C 2 3 0 0 0 Б C б A 0 A 1 A 2 A 3 A 4 A 5 A 2 3 2 1/5 1 1/5 0 0 A 4 0 8 13/5 0 -2/5 1 0 A 5 0 2 6/5 0 -4/5 0 1 6 -7/5 0 3/5 0 0 Повторяя пункты 3 - 5, получим следующие табли цы : C 2 3 0 0 0 Б C б A 0 A 1 A 2 A 3 A 4 A 5 A 2 3 5/3 0 1 1/3 0 -1/6 A 4 0 11/3 0 0 4/3 1 -13/6 A 1 2 5/3 1 0 -2/3 0 5/6 8 1/3 0 0 -1/3 0 7/6 C 2 3 0 0 0 Б C б A 0 A 1 A 2 A 3 A 4 A 5 A 2 3 3/4 0 1 0 -1/4 3/8 A 3 0 11/4 0 0 1 3/4 -13/8 A 1 2 7/2 1 0 0 1/2 -1/4 9 1/4 0 0 0 1/4 5/8 Так как все симплекс-разности положительны , то оптимальное решение найдено : X = ( 7/2 , 3/4 , 11/4 , 0 , 0 ) ( единиц ) max F = 9 1/4 ( рублей ) 4. АНАЛИЗ МОДЕЛИ НА ЧУВСТВИТЕЛЬНОСТЬ 4.1 Построение двойственной задачи и её численное решение Проведение анализа на чувствительность св язано с теорией двойственности , поэтому в курсовой работе необходимо построить двойственну ю задачу и найти её численное решение. Для рассматриваемой модели двой ственн ая задача имеет вид : min T( y ) = min ( 10y 1 + 12y 2 + 10y 3 ) при условиях y 1 + 3y 2 + 2y 3 2 А 1 5y 1 + 2y 2 + 4y 3 3 А 2 y 1 0 , y 2 0 , y 3 0. А 3 , А 4 , А 5 Оптимальное решение двойственной задачи получается при решении прямой зад ачи из последней симплекс-таблицы . В результат е получаем оптимальное решение двойственной з адачи : Y опт = ( 0, 1/4, 5/8, 0, 0 ), для которого Т (y опт ) = 9 1/4. Оптимальное значение целевой функции в двойственной задачи совпадает с оптимумом целевой функции прямой задачи , в чём не трудно убедиться. 4.2 Определение статуса ресурсов Ресурсы относятся к дефиц итным , ес ли оптимальный план предусматривает их полное использование , при частичном использовании р есурсов , они считаются не дефицитными . Статус ресурсов для любой модели линейного прог раммирования можно установить непосредственно из оптимальной симплекс- т аблицы исходно й по значению дополнительных переменных . Поло жительное значение дополнительной переменной ука зывает на неполное использование соответствующег о ресурса , т.е . на его недефицитность , нулев ое значение дополнительной переменной указывает на дефиц и тность ресурса. Для данного примера дополнительные переме нные х 4 и х 5 равны н улю , следовательно , оборудование второго и тре тьего типов являются “дефицитными” , а первого типа - “недефицитным” ( х 3 = 2,75 ). Такой же вывод можно сде лать из решения двойственн ой задачи. 4.3 Определение значимости ресурсов Значимость ресурса характеризуется величиной улучшения оптимального значения целе вой функции F, приходящейся на единицу прироста данного ресурса . Значимость ресурсов всегда можно определить по значению двой ств енных переменных в оптимальном решении двойст венной задачи . В данном случае Y опт = ( 0, 1/4, 5/8, 0, 0 ). Таким образом , из двух “дефицитных” ресурсов оборудование вт орого типа имеет большую значимость и уве личении интервала работы на этом оборудовании более выгодно с точки зрения влиян ия на значение целевой функции. 4.4 Определение допустимого интервала изменен ия запаса ресурсов Изменение отведённого администрацией предп риятия времени ( т.е . правых частей ограничений ) может привести к недопустимос ти тек ущего решения . Поэтому важно определить диапа зон изменений компонент вектора ограничений , в котором допустимость решений не нарушается. Оборудование второго типа , которое исполь зуется для изготовления изделий , является “де фицитным и имеет большую зна чимость . О пределим диапазон допустимых изменений интервала работы на этом оборудовании . Оптимальная симплекс-таблица задачи имеет вид : C 2 3 0 0 0 Б C б A 0 A 1 A 2 A 3 A 4 A 5 A 2 3 3/4 0 1 0 -1/4 3/8 A 3 0 11/4 0 0 1 3/4 -13/8 A 1 2 7/2 1 0 0 1/2 -1/4 9 1/4 0 0 0 1/4 5/8 Так как начальными базисными переменными являлись x 1 , x 2 , x 3 в оптимальной симплексн ой таблице в соответствующих столбцах располо жена матрица А -1 Изменим время работы на оборудование второго типа на вел ичину 2 , тогда время работы будет 12 + 2 . Найдём базисное решение , соответствующее изменённому времени работы на оборудовании вт орого типа : 0.75 - 2 / 4 0 , 2 = 3; 2.75 + 3 2 / 4 0 , 2 = -3.66; 3.5 + 2 / 2 0 , 2 = -7. Отсюда видно , что -3.66 2 3 , т.е . 8.34 b 2 15 . Таким образом первоначальный интервал раб оты на оборудовании второго типа может бы ть увеличен до 15 часов или уменьшен до 8.34 часа без нарушения допустимого решения . Умен ь шение времени влечёт за собой уменьш ение единиц вырабатываемой продукции , поэтому является не целесообразным. 4.5 Исследование зависимости оптимального реш ения от изменений запасов ресурсов Изменение свободного члена ограничения ис ходной задачи на велич ину 2 вызывает изменение целевой функции на F = i y j .Если приращение времени работы берется из интервала допуст имых изменений , знач ений двойственных оце нок остаются неизменными . Таким образом , измен ение целевой функции будет линейно зависеть от изменения времени работы. В данном примере F = i 12 = 12 i . Ищется зависимость значений целевой функции от изменения времени работы на оборудовании второго типа . Для этого изменя ется время работы начиная от 0 часов с шагом h = 0.5 до 3 часов . Результаты измерений приведены в таблице 1. Таблица 1 2 , часов 0 0.5 1 1.5 2 2.5 3 b 2 , часов 12 12.5 13 13.5 14 14.5 15 F, руб. 0 6.25 13 20.25 28 36.25 45 F, руб. 9.25 Т.к . зависимость F( b 2 ) - линейная , то достаточно подсчитать значение функции в двух крайних точках интерва ла. Cледовательно , с увеличением времени раб оты на оборудовании второго типа на 2 часа увеличивается и объём изделий на общей стоимостью 28 рублей. 5. ГРАФИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ ПОЛ УЧЕННЫХ РЕЗУЛЬТАТОВ Графический метод применим тол ько для двух и менее пер еменных х , что подходит к данному заданию . Линии , соответствующие ограничения , строятся на осях Ох . Заштрихованная область - область допустимы х стратегий. x 1 + 5x 2 10 ; 3x 1 + 2x 2 12 ; 2x 1 + 4 x 2 10 . x 1 0 ; x 2 0 . 1). x 1 + 5x 2 10 ; x 1 = 0, x 2 = 2 ; x 1 = 10, x 2 = 0 . 2). 3x 1 + 2x 2 12 ; x 1 = 0, x 2 = 6 ; x 1 = 4, x 2 = 0 . 3). 2x 1 + 4x 2 10 ; x 1 = 0, x 2 = 2.5 ; x 1 = 5, x 2 = 0 . 4). Найдём экстремум функции : F = 2x 1 + 3x 2 , 6. ВЫВОДЫ И РЕКОМЕНДАЦИИ ПО ПРАКТИЧЕСКОМУ ИСПОЛЬЗОВАНИЮ Составление математической модели и решен ие систем линейных неравенств часто имеет место в реальной жизни . Примеры таких з адач : Пример 1. Рассма тривается работа промышленного предприятия под у глом зрения его рентабельности , причём приводится ряд мер с целью повышения этой рентабельности . Показатель эффективности - прибыль ( или средняя прибыль ), приносимая пред приятием за хозяйственный год. Пример 2. Группа истребителей поднимается в воздух дл я перехвата одиночного самолёта противника . Ц ель операции - сбить самолёт . Показатель эффект ивности - вероятность поражения цели. Пример 3. Ремонт ная мастерская занимается обслуживанием машин ; её рентабельность определяется количеством маш ин , обслуженных в течение дня . Показатель эффективности - среднее число машин , обслуженн ых за день. Пример 4. Группа радиолокационных станций в определённом райо не ведёт наблюдение за воздушным пространство м . Задача группы - обнаружить любой самолёт , если он появится в рай оне . Показате ль эффективности - вероятность обнаружения любого самолёта , появившегося в районе. Пример 5. Предпр инемается ряд мер по повышения надёжности электронной цифровой вычислительной техники ( Э ЦВТ ). Цель операции - уменьшить частоту появлен ия неис правностей ( “сбоев” ) ЭЦВТ , или , что равносильно , увеличить средний промежуток времени между сдоями ( “наработку на отказ” ). Показатель эффективности - среднее время безотк азной работы ЭЦВТ. Пример 6. Провод ится борьба за экономию средств при произ водств е определённого вида товара . Показа тель эффективности - количество сыкономленных сред ств. С помощью анализа модели на чувствите льность определить параметр , от которого резу льтат зависит больше и решить , каким спосо бом возможно увеличение эффективности и на сколько , а так же многое другое. В данной части пояснительной записки к курсовой работе представлена и описана программа , реализующая решение систем линейных неравенств табличным методом. 1. НАЗНАЧЕНИЕ ПРОГРАММЫ Программа предусмотрена для ре шения сист ем линейных неравенств табличны м методом , а так же для попытки оптими зации различных экономических , социальных и т . д . проблем. Метод , описанный в программе , может пр именяться на государственных и частных предпр иятиях для улучшения эффективности производст ва. 2. УСЛОВИЯ ПРИМЕНЕНИЯ 1.1 Ограничения и область применения Из программных средств требуется операцио нная система MS DOS версии 5.0, программная Среда NORTON COMMANDER, язык программирования Borland Pascal 7.0 . Кроме того НГМД должен содержать файл ы в директории KURSOVIK: 1. Файл входных данных - KURS97.DAT 2. Программный файл - KURS97.EXE 1.2 Требования к техническим средствам IBM PC или IBM PC - совместимый компьютер с дисков одом 3.25” ёмкостью 1.2 Мб. 3. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ Входные и выходные данны е заносятся в файлы KURS97.DAT и KURS97.RES соответственно . Входные данные записываются в определённом порядке . Выходные данные записываются в вид е симплекс-таблиц. 4. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ Входные данные вносятся в файл KURS 97.DAT в сл едующей очерёдности : сначача вводятся коэффициенты при неизвес тных в целевой функции , затем вводятся эле менты вектора ограничений , а потом - элементы матрицы ограничений по столбцам. Результаты вычислений вы найдёте в фа йле KURS 97.REZ. 5. ТЕКСТ ИСХОДНОГ О МОДУЛЯ Полный текст программы KURS97.PAS выгл ядит следующим образом : . program Kurs97; uses crt; const n = 2; m = 3; Epsilon = 0.000001; var VectorA : array [1..m, 0..m+n] of real; TargetVector : array [1..m+n] of real; SimplexVector : array [0..m+n] of real; DigitOfBasisVector : array [1..m] of real; BasisVector : array [1..m] of integer; IndexOfEnterVector : integer; IndexOfOutputString : integer; MinimumBuffer : real; key : char; FileOfOutput : text; Описа ние процедур procedure ReadDates; считывание данных из файла var DateFile : text; procedure ReadDatesTargetVector; считывание данных целевого вектор а var i : integer; begin for i:=1 to n do Readln(DateFile, TargetVector[i]); end; procedure ReadDatesVectorA; считывание вектора А и заполне ние единицами диагонали var i,j : integer; begin for j:=0 to n do for i:=1 to m do Readln(DateFile, VectorA[i, j]); i:=1; for j:=n+1 to n+m do begin VectorA[i, j]:=1; inc(i) end; en d; procedure ReadDatesBasisVector; var i : integer; begin for i:=1 to m do BasisVector[i]:=n+i; end; begin Assign(DateFile, 'kurs97.dat'); Reset(DateFile); ReadDatesTargetVector; ReadDatesVectorA; ReadDatesBasisVector; Close(DateFile); end; procedure CountSimplexVector; расчет симплек-вектора var i,j : integer; Summa : real; Simplex : real; begin SimplexVector[0]:=0; for i:=1 to m do SimplexVector[0]:=SimplexVector[0] + DigitOfBasisVector[i]*VectorA[i, 0]; for j:=1 to m+n do begin Summa:=0; for i:=1 to m do Summa:=Summa + DigitOfBasisVector[i]*VectorA[i, j]; SimplexVector[j]:=Summa - TargetVector[j]; if abs(SimplexVector[j]) <= Epsilon then SimplexVector[j]:=0; end; end; function GetEnterVector : integer; поиск вводимого ве ктора var i : integer; Min : real; begin GetEnterVector:=1; Min:=SimplexVector[1]; for i:=2 to m+n do if Min > SimplexVector[i] then begin GetEnterVector:=i; Min:=SimplexVector[i]; end; end; function GetOutputString : integer; поиск выводи мой строки var i : integer; Temp : real; begin GetOutputString:=1; if VectorA[1, IndexOfEnterVector] > 0 then MinimumBuffer:=VectorA[1, 0] / VectorA[1, IndexOfEnterVector]; for i:=2 to m do begin Temp:=VectorA[i, 0] / VectorA[i, IndexOfEnterVector ]; if Temp > 0 then if MinimumBuffer >= Temp then begin MinimumBuffer:=Temp; GetOutputString:=i; end; end; end; procedure ReCountOutputString; пересчет коэффициентов выводимой с троки var i,j : integer; Buffer : real; procedure ReCountDigitOfBasisVector; begin DigitOfBasisVector[IndexOfOutputString]:=TargetVector[IndexOfEnterVector]; end; procedure ReCountBasisVector; begin BasisVector[IndexOfOutputString]:=IndexOfEnterVector; end; begin ReCountDigitOfBasisVe ctor; ReCountBasisVector; Buffer:=VectorA[IndexOfOutputString, IndexOfEnterVector]; for i:=0 to m+n do begin VectorA[IndexOfOutputString, i]:=VectorA[IndexOfOutputString, i] / Buffer; end; end; procedure ReCountVectorA; var i,j : integer; begin for j:=0 to m+n do begin for i:=1 to m do begin if i <> IndexOfOutputString then if j <> IndexOfEnterVector then VectorA[i, j]:=VectorA[i, j] - VectorA[i ,IndexOfEnterVector]*VectorA[IndexOfOutputString,j]; end; end; for i:=1 to m do if i <> Ind exOfOutputString then VectorA[i, IndexOfEnterVector]:=0; end; function AllIsPositiv : boolean; var i : integer; begin AllIsPositiv:=True; for i:=1 to m+n do if SimplexVector[i] < 0 then AllIsPositiv:=False; end; function ToStr(const D : real) : string ; var S : string; begin str(D:6:2, S); ToStr:=' ' + S + ' '; end; procedure WriteMatrixs; procedure WriteTargetMatrix; var i : integer; begin writeln(' +-----------------------------------------------------+'); write (' ¦ Target ¦ '); for i:=1 to n+m do write(ToStr(TargetVector[i]),'¦ '); writeln; end; procedure WriteMatrixA; var i,j : integer; begin writeln(' +-----------------+--------+--------+--------+--------+--------+--------¦ '); writeln(' ¦ Basis ¦ D.Basis¦ A 0 ¦ A 1 ¦ A 2 ¦ A 3 ¦ A 4 ¦ A 5 ¦ '); writeln(' +--------+--------+--------+--------+--------+--------+--------+--------¦ '); for i:=1 to m do begin write(' ¦ A ',BasisVector[i],' ¦ ',ToStr(DigitOfBasisVector[i]),'¦ '); for j:=0 to m+n do write(ToStr(VectorA[i, j]),'¦ '); writeln; if i = m then writeln(' +--------+--------+--------+--------+--------+--------+--------+--------¦ ') else writeln(' +--------+--------+--------+--------+--------+--------+--------+--------¦ '); end; end; procedure WriteMatrixSimplex; var i : integer; begin write(' ¦ Simplex¦ '); for i:=0 to m+n do write(ToStr(SimplexVector[i]),'¦ '); writeln; writeln(' +--------------------------------------------------------------+'); end; begin clrscr; WriteTargetMatrix; WriteMatrixA; WriteM atrixSimplex; end; procedure WriteMatrixsInFile; procedure WriteTargetMatrix; var i : integer; begin writeln(FileOfOutput, ' +-----------------------------------------------------+'); write (FileOfOutput, ' ¦ Target ¦ '); for i:=1 to n+m do write(Fi leOfOutput, ToStr(TargetVector[i]),'¦ '); writeln(FileOfOutput); end; procedure WriteMatrixA; var i,j : integer; begin writeln(FileOfOutput, ' +-----------------+--------+--------+--------+--------+--------+--------¦ '); writeln(FileOfOutput, ' ¦ Basis ¦ D.Basis¦ A 0 ¦ A 1 ¦ A 2 ¦ A 3 ¦ A 4 ¦ A 5 ¦ '); writeln(FileOfOutput, ' +--------+--------+--------+--------+--------+--------+--------+--------¦ '); for i:=1 to m do begin write(FileOfOutput, ' ¦ A ',BasisVector[i],' ¦ ',ToStr(DigitOfBasisVecto r[i]),'¦ '); for j:=0 to m+n do write(FileOfOutput, ToStr(VectorA[i, j]),'¦ '); writeln(FileOfOutput); if i = m then writeln(FileOfOutput, ' +--------+--------+--------+--------+--------+--------+--------+--------¦ ') else writeln(FileOfOutput, ' +-------- +--------+--------+--------+--------+--------+--------+--------¦ '); end; end; procedure WriteMatrixSimplex; var i : integer; begin write(FileOfOutput, ' ¦ Simplex¦ '); for i:=0 to m+n do write(FileOfOutput, ToStr(SimplexVector[i]),'¦ '); writeln(FileOf Output); writeln(FileOfOutput, ' +--------------------------------------------------------------+'); end; begin clrscr; WriteTargetMatrix; WriteMatrixA; WriteMatrixSimplex; end; Головная программа BEGIN ClrScr; ReadDates; Assign(FileOfOutput, 'kurs97.res'); Rewrite(FileOfOutput); CountSimplexVector; WriteMatrixs; while not AllIsPositiv do begin IndexOfEnterVector:=GetEnterVector; IndexOfOutputString:=GetOutputString; ReCountOutputString; ReCountVectorA; CountSimp lexVector; WriteMatrixsInFile; WriteMatrixs; if key=#0 then key:=readkey; key:=#0; end; Close(FileOfOutput); END. 6. ОПИСАНИЕ ЛОГИКИ СТРУКТУРНОЙ СХЕМЫ В программе реализованны следу ющие процедуры : 1. Процедура ReadDates - считывает данные из файла . 2. Процедура ReadDatesTargetVector - считывает коэффициенты пр и неизвестных в целевой функции из файла. 3. Процедура ReadDatesVector - считывание их входного файла матрицы А и заполнение диагональной матрицы. 4. Процедура CountSimplexVector - рассчёт симп лекс-разнос тей. 5. Процедура GetEnterVector - поиск вводимого в базис столбца. 6. Процедура GetOutputString - поиск выводимой из бази са строки. 7. Процедура ReCountOutputString- пересчёе выводимой строки. 8. Процедура ReCountVectorA - пересчёт остальной ма трицы ограничений. 9. Процедуры WriteMatrixA, WriteTargetMatrix, WriteMatrixSimplex - печать результирующих таблиц на экран и в файл.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
1 февраля – это такая дата в русском календаре, когда во всех отечественных городах на площадях ещё стоят новогодние ёлки, а реклама в магазинах призывает «Поздравь любимую с 8 Марта!»
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Табличный симплекс-метод", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru