p align="left">Алгоритм решения 1. Решить первую транспортную задачу, найдя цену перевозки и план перевозки. 2. Решить вторую транспортную задачу (с другими ценами), найдя цену перевозки и план перевозки. 3. Составляем матрицу M=, где f1x - это план перевозки первой задачи, поставленный в функцию цели первой задачи; f2x - это план перевозки первой задачи поставленный, в функцию цели второй задачи; f1y - это план перевозки второй задачи, поставленный в функцию цели первой задачи; f2y - это план перевозки второй задачи, поставленный в функцию цели второй задачи. 4. Матрицу M транспонируем. Полученную матрицу обозначаем A. 5. Находим собственные значения и собственные векторы матрицы А. 6. Берем один из столбцов матрицы собственных векторов, в зависимости конечно от собственных значений (если собственное значение равное единице стоит первым, то берем первый столбец, иначе второй ) и нормируем этот столбец. 7. Первую координату нормированного вектора умножаем на первую матрицу цен и складываем с второй матрицей цен умноженное на вторую координату полученного нормированного вектора. Получили новую матрицу цен. 8. Решаем новую транспортную задачу с таким же объемом поставок и потребностей, но с новыми ценами, полученными в пункте 7. 9. Новый план перевозок ставим в функцию цели первой и второй транспортной задачи и таким образом получаем УПРАВЛЕНИЯ. На содержательном уровне нашли оптимальное управление, что одновременно минимизирует стоимость и время перевозки. Блок-схема §5. Транспортная задача в векторных координатах (Для трёх матриц) Постановка задачи Пусть имеется несколько поставщиков однородной продукции (каждый с определенным запасом) и несколько потребителей этой продукции (с известными потребностями у каждого). Задана коммуникационная сеть (дороги, реки, воздушные линий и т.д.) связывающая каждого поставщика с каждым потребителем. Но в данном случае на каждом пути определена стоимость перевозки единицы продукции, время и функция обратная функции качества перевозки. Это означает, что заданы три матрицы одинокого формата, т.е. число строк и число столбцов у матриц совпадает. На содержательном уровне требуется найти оптимальное управление, что одновременно минимизирует стоимость, время и обратная функция качества перевозки. Алгоритм решения 1. Решить первую транспортную задачу, найдя цену перевозки и план перевозки. 2. Решить вторую транспортную задачу (с другими ценами), найдя цену перевозки и план перевозки. 3. Решить третью транспортную задачу (с другими ценами), найдя цену перевозки и план перевозки. 4. Составляем матрицу M=, 5. где f1x - это план перевозки первой задачи, поставленный в функцию цели первой задачи; f2x - это план перевозки первой задачи поставленный, в функцию цели второй задачи; f3x - это план перевозки первой задачи поставленный, в функцию цели третьей задачи; f1y - это план перевозки второй задачи, поставленный в функцию цели первой задачи; f2y - это план перевозки второй задачи, поставленный в функцию цели второй задачи; f3y - это план перевозки второй задачи, поставленный в функцию цели третьей задачи; f1v - это план перевозки третьей задачи, поставленный в функцию цели первой задачи; f2v - это план перевозки третьей задачи, поставленный в функцию цели второй задачи; f3v - это план перевозки третьей задачи, поставленный в функцию цели третьей задачи. 6. Матрицу M транспонируем. Полученную матрицу обозначаем A. 7. Находим собственные значения и собственные векторы матрицы А. 8. Берем один из столбцов матрицы собственных векторов, в зависимости конечно от собственных значений (если собственное значение равное единице стоит первым, то берем первый столбец, иначе второй, а если и не второй, то третий) и нормируем этот столбец. 9. Первую координату нормированного вектора умножаем на первую матрицу цен и складываем с второй матрицей цен умноженное на вторую координату полученного нормированного вектора и ко всему этому прибавляем третью матрицу цен умноженное на третью координату нормированного вектора. Получили новую матрицу цен. 10. Решаем новую транспортную задачу с таким же объемом поставок и потребностей, но с новыми ценами, полученными в пункте 8. 11. Новый план перевозок ставим в функцию цели первой, второй и третьей транспортной задачи и таким образом получаем УПРАВЛЕНИЯ. На содержательном уровне требуется найти оптимальное управление, что одновременно минимизирует стоимость, время и обратная функция качества перевозки. Блок-схема Список литературы 1. Акулич И.Л. Математическое программирование в примерах и задачах. М.: Высшая школа, 1993. 2. Аладьев В.З., Богдявичюс М.А. MAPLE 6: Решение математических, статистических и физико-технических задач - М.: Лаборатория Базовых Знаний, 2001. 3. Бережная Е.В., Бережной В.И. математические методы моделирования экономических систем. М.: Мир, 1977. 4. Воробьёв Н.Н. Основы теории игр. Бескоалиционные игры. М.: Наука, 1984. 5. Канторович Л.В. Математические методы в организации и планировании производства. Ленинград: Изд. - во ЛГУ, 1939. 6. Карлин С. Математические методы в теории игр программировании и экономике. М: Мир, 1964. 7. Матвеев В.А. Уточнённое по конусу решение многокритериальной задачи. // Вестник НовГУ. Серия : Технические науки. 2006. № 39. C .23 - 27. 8. Петросян Л.А., Зенкевич Н.А., Семина Е.А. Теория игр. М.:ВШ, Книжный дом Университет, 1998. Приложение 1 Листинг программы решения транспортной задачи > restart: > a1:=[1,2,3,4,5,6,7,8,9,10]; a2:=[11,12,13,14,15,16,17,18,19,20]; a3:=[21,22,23,24,25,26,27,28,29,30]; a4:=[31,32,33,34,35,36,37,38,39,40]; a5:=[41,42,43,44,45,46,47,48,49,50]; a6:=[51,52,53,54,55,56,57,58,59,60]; a7:=[61,62,63,64,65,66,67,68,69,70]; a8:=[71,72,73,74,75,76,77,78,79,80]; a9:=[81,82,83,84,85,86,87,88,89,90]; a10:=[91,92,93,94,95,96,97,98,99,100]; b:=[25,30,35,40,45,50,55,60,65,70]; c:=[50,45,40,35,30,25,55,60,65,70]; (вводим первоначальные данные задачи) a1 := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] a2 := [11, 12, 13, 14, 15, 16, 17, 18, 19, 20] a3 := [21, 22, 23, 24, 25, 26, 27, 28, 29, 30] a4 := [31, 32, 33, 34, 35, 36, 37, 38, 39, 40] a5 := [41, 42, 43, 44, 45, 46, 47, 48, 49, 50] a6 := [51, 52, 53, 54, 55, 56, 57, 58, 59, 60] a7 := [61, 62, 63, 64, 65, 66, 67, 68, 69, 70] a8 := [71, 72, 73, 74, 75, 76, 77, 78, 79, 80] a9 := [81, 82, 83, 84, 85, 86, 87, 88, 89, 90] a10 := [91, 92, 93, 94, 95, 96, 97, 98, 99, 100] b := [25, 30, 35, 40, 45, 50, 55, 60, 65, 70] c := [50, 45, 40, 35, 30, 25, 55, 60, 65, 70] > proc(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,b,c) (означает начало процедуры) >f,x11,x12,x13,x14,x15,x16,x17,x18,x19,x110,x21,x22,x23,x24,x25,x26,x27,x28,x29,x210,x31,x32,x33,x34,x35,x36,x37,x38,x39,x310,x41,x42,x43,x44,x45,x46,x47,x48,x49,x410,x51,x52,x53,x54,x55,x56,x57,x58,x59,x510, x61,x62,x63,x64,x65,x66,x67,x68,x69,x610, x71,x72,x73,x74,x75,x76,x77,x78,x79,x710, x81,x82,x83,x84,x85,x86,x87,x88,x89,x810, x91,x92,x93,x94,x95,x96,x97,x98,x99,x910, x101,x102,x103,x104,x105,x106,x107,x108,x109,x1010; (описываем все переменные) Warning, premature end of input > with(simplex): (подключение библиотеки simplex) Warning, the protected names maximize and minimize have been redefined and unprotected >minimize(a1[1]*x11+a1[2]*x12+a1[3]*x13+a1[4]*x14+a1[5]*x15+a1[6]*x16+a1[7]*x17+a1[8]*x18+a1[9]*x19+a1[10]*x110+ a2[1]*x21+a2[2]*x22+a2[3]*x23+a2[4]*x24+a2[5]*x25+a2[6]*x26+a2[7]*x27+a2[8]*x28+a2[9]*x29+a2[10]*x210+ a3[1]*x31+a3[2]*x32+a3[3]*x33+a3[4]*x34+a3[5]*x35+a3[6]*x36+a3[7]*x37+a3[8]*x38+a3[9]*x39+a3[10]*x310+ a4[1]*x41+a4[2]*x42+a4[3]*x43+a4[4]*x44+a4[5]*x45+a4[6]*x46+a4[7]*x47+a4[8]*x48+a4[9]*x49+a4[10]*x410+ a5[1]*x51+a5[2]*x52+a5[3]*x53+a5[4]*x54+a5[5]*x55+a5[6]*x56+a5[7]*x57+a5[8]*x58+a5[9]*x59+a5[10]*x510+ a6[1]*x61+a6[2]*x62+a6[3]*x63+a6[4]*x64+a6[5]*x65+a6[6]*x66+a6[7]*x67+a6[8]*x68+a6[9]*x69+a6[10]*x610+ a7[1]*x71+a7[2]*x72+a7[3]*x73+a7[4]*x74+a7[5]*x75+a7[6]*x76+a7[7]*x77+a7[8]*x78+a7[9]*x79+a7[10]*x710+ a8[1]*x81+a8[2]*x82+a8[3]*x83+a8[4]*x84+a8[5]*x85+a8[6]*x86+a8[7]*x87+a8[8]*x88+a8[9]*x89+a8[10]*x810+ a9[1]*x91+a9[2]*x92+a9[3]*x93+a9[4]*x94+a9[5]*x95+a9[6]*x96+a9[7]*x97+a9[8]*x98+a9[9]*x99+a9[10]*x910+ a10[1]*x101+a10[2]*x102+a10[3]*x103+a10[4]*x104+a10[5]*x105+a10[6]*x106+a10[7]*x107+a10[8]*x108+a10[9]*x109+a10[10]*x1010,{x11+x12+x13+x14+x15+x16+x17+x18+x19+x110=b[1], x21+x22+x23+x24+x25+x26+x27+x28+x29+x210=b[2], x31+x32+x33+x34+x35+x36+x37+x38+x39+x310=b[3], x41+x42+x43+x44+x45+x46+x47+x48+x49+x410=b[4], x51+x52+x53+x54+x55+x56+x57+x58+x59+x510=b[5], x61+x62+x6+x64+x65+x66+x67+x68+x69+x610=b[6], x71+x72+x73+x74+x75+x76+x77+x78+x79+x710=b[7], x81+x82+x83+x84+x85+x86+x87+x88+x89+x810=b[8], x91+x92+x93+x94+x95+x96+x97+x98+x99+x910=b[9], x101+x102+x103+x104+x105+x106+x107+x108+x109+x1010=b[10], x11+x21+x31+x41+x51+x61+x71+x81+x91+x101=c[1], x12+x22+x32+x42+x52+x62+x72+x82+x92+x102=c[2], x13+x23+x33+x43+x53+x63+x73+x83+x93+x103=c[3], x14+x24+x34+x44+x54+x64+x74+x84+x94+x104=c[4], x15+x25+x35+x45+x55+x65+x75+x85+x95+x105=c[5], x16+x26+x36+x46+x56+x66+x76+x86+x96+x106=c[6], x17+x27+x37+x47+x57+x67+x77+x87+x97+x107=c[7], x18+x28+x38+x48+x58+x68+x78+x88+x98+x108=c[8], x19+x29+x39+x49+x59+x69+x79+x89+x99+x109=c[9], x110+x210+x310+x410+x510+x610+x710+x810+x910+x1010=c[10]}, NONNEGATIVE); (находим оптимальный план перевозок) {x52 = 0, x53 = 0, x54 = 0, x55 = 0, x56 = 0, x57 = 0, x58 = 0, x59 = 0, x61 = 0, x62 = 0, x64 = 0, x65 = 0, x51 = 0, x41 = 0, x42 = 0, x43 = 0, x44 = 0, x45 = 0, x46 = 0, x47 = 0, x49 = 0, x36 = 0, x96 = 0, x97 = 0, x98 = 0, x99 = 0, x410 = 0, x34 = 0, x35 = 0, x37 = 0, x38 = 0, x39 = 0, x95 = 0, x78 = 0, x79 = 0, x81 = 0, x82 = 0, x83 = 0, x87 = 0, x88 = 0, x89 = 0, x91 = 0, x31 = 0, x11 = 0, x66 = 0, x71 = 0, x72 = 0, x73 = 0, x74 = 0, x75 = 0, x18 = 0, x21 = 0, x22 = 0, x23 = 0, x24 = 0, x25 = 0, x26 = 0, x27 = 0, x28 = 0, x12 = 0, x13 = 0, x14 = 0, x15 = 0, x16 = 0, x17 = 0, x92 = 15, x102 = 20, x48 = 40, x101 = 50, x69 = 10, x94 = 10, x84 = 25, x76 = 20, x77 = 35, x67 = 20, x85 = 30, x93 = 40, x29 = 30, x310 = 25, x32 = 10, x68 = 20, x105 = 0, x106 = 0, x107 = 0, x108 = 0, x109 = 0, x1010 = 0, x6 = 0, x33 = 0, x110 = 0, x210 = 0, x710 = 0, x810 = 0, x910 = 0, x610 = 0, x103 = 0, x104 = 0, x63 = 0, x510 = 45, x19 = 25, x86 = 5} > assign(%); (присваивает переменные к функции) >f:=a1[1]*x11+a1[2]*x12+a1[3]*x13+a1[4]*x14+a1[5]*x15+a1[6]*x16+a1[7]*x17+a1[8]*x18+a1[9]*x19+a1[10]*x110+ a2[1]*x21+a2[2]*x22+a2[3]*x23+a2[4]*x24+a2[5]*x25+a2[6]*x26+a2[7]*x27+a2[8]*x28+a2[9]*x29+a2[10]*x210+ a3[1]*x31+a3[2]*x32+a3[3]*x33+a3[4]*x34+a3[5]*x35+a3[6]*x36+a3[7]*x37+a3[8]*x38+a3[9]*x39+a3[10]*x310+ a4[1]*x41+a4[2]*x42+a4[3]*x43+a4[4]*x44+a4[5]*x45+a4[6]*x46+a4[7]*x47+a4[8]*x48+a4[9]*x49+a4[10]*x410+ a5[1]*x51+a5[2]*x52+a5[3]*x53+a5[4]*x54+a5[5]*x55+a5[6]*x56+a5[7]*x57+a5[8]*x58+a5[9]*x59+a5[10]*x510+ a6[1]*x61+a6[2]*x62+a6[3]*x63+a6[4]*x64+a6[5]*x65+a6[6]*x66+a6[7]*x67+a6[8]*x68+a6[9]*x69+a6[10]*x610+ a7[1]*x71+a7[2]*x72+a7[3]*x73+a7[4]*x74+a7[5]*x75+a7[6]*x76+a7[7]*x77+a7[8]*x78+a7[9]*x79+a7[10]*x710+ a8[1]*x81+a8[2]*x82+a8[3]*x83+a8[4]*x84+a8[5]*x85+a8[6]*x86+a8[7]*x87+a8[8]*x88+a8[9]*x89+a8[10]*x810+ a9[1]*x91+a9[2]*x92+a9[3]*x93+a9[4]*x94+a9[5]*x95+a9[6]*x96+a9[7]*x97+a9[8]*x98+a9[9]*x99+a9[10]*x910+ a10[1]*x101+a10[2]*x102+a10[3]*x103+a10[4]*x104+a10[5]*x105+a10[6]*x106+a10[7]*x107+a10[8]*x108+a10[9]*x109+a10[10]*x1010;
Страницы: 1, 2, 3, 4, 5, 6, 7
|