Monday, May 21, 2018

Simplex Method and task 18 advanced development for limited number of x1,x2, ,x(n)


Изложенная техника будет работать в пространсве R(n) n=3,4,5,....
Таким образом таким образом Задача 18 может легко поставлена для (x1,x2,x3)
Методу изложенному ниже не менее 50 лет, а скорее более

Решим прямую задачу линейного программирования симплексным методом
с использованием симплексной таблицы.
Определим максимальное значение целевой функции F(X) = 5x1+4x2
при следующих условиях-ограничений.
6x1+4x2≤24
x1+2x2≤6
-x1+x2≤1
x2≤2
Для построения первого опорного плана систему неравенств приведем 
к системе уравнений путем введения дополнительных переменных 
(переход к канонической форме).
В 1-м неравенстве смысла (≤) вводим базисную переменную x3.
В 2-м неравенстве смысла (≤) вводим базисную переменную x4.
В 3-м неравенстве смысла (≤) вводим базисную переменную x5.
В 4-м неравенстве смысла (≤) вводим базисную переменную x6.
6x1+4x2+x3 = 24
x1+2x2+x4 = 6
-x1+x2+x5 = 1
x2+x6 = 2
Матрица коэффициентов A = a(ij) этой системы уравнений имеет вид:
A = 6 4 1 0 0 0
    1 2 0 1 0 0
   -1 1 0 0 1 0
    0 1 0 0 0 1
Базисные переменные это переменные, которые входят только в одно уравнение
системы ограничений и притом с единичным коэффициентом.
Решим систему уравнений относительно базисных переменных: x3, x4, x5, x6
Полагая, что свободные переменные равны 0, получим первый опорный план:
X0 = (0,0,24,6,1,2)
Базисное решение называется допустимым, если оно неотрицательно.
Базис B x1 x2 x3 x4 x5 x6
x3 24 6 4 1 0 0 0
x4 6  1 2 0 1 0 0
x5 1 -1 1 0 0 1 0
x6 2  0 1 0 0 0 1
F(X0) 0 -5 -4 0 0 0 0
Переходим к основному алгоритму симплекс-метода.
Итерация №0.
1. Проверка критерия оптимальности.
Текущий опорный план неоптимален, так как в индексной строке
находятся отрицательные коэффициенты.
2. Определение новой базисной переменной.
В качестве ведущего выберем столбец, соответствующий переменной x1,
так как это наибольший коэффициент по модулю.
3. Определение новой свободной переменной.
Вычислим значения Di по строкам как частное от деления: bi / ai1
и из них выберем наименьшее:
min (24 : 6 , 6 : 1 , - , - ) = 4
Следовательно, 1-ая строка является ведущей.
Разрешающий элемент равен (6) и находится на пересечении
ведущего столбца и ведущей строки.
Базис B x1 x2 x3 x4 x5 x6 min
x3 24 6 4 1 0 0 0 4
x4 6  1 2 0 1 0 0 6
x5 1 -1 1 0 0 1 0 -
x6 2  0 1 0 0 0 1 -
F(X1) 0 -5 -4 0 0 0 0 

4. Пересчет симплекс-таблицы.
Формируем следующую часть симплексной таблицы. Вместо переменной x3 в план 1
войдет переменная x1.
Строка, соответствующая переменной x1 в плане 1, получена в результате
деления всех элементов строки x3 плана 0 на разрешающий элемент РЭ=6.
На месте разрешающего элемента получаем 1. В остальных клетках столбца x1
записываем нули.
Таким образом, в новом плане 1 заполнены строка x1 и столбец x1.
Все остальные элементы нового плана 1, включая элементы индексной строки,
определяются по правилу прямоугольника.
Для этого выбираем из старого плана четыре числа, которые
расположены в вершинах прямоугольника и всегда включают разрешающий элемент РЭ.
НЭ = СЭ - (А*В)/РЭ
СТЭ - элемент старого плана, РЭ - разрешающий элемент (6),
А и В - элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ.
Представим расчет каждого элемента в виде таблицы:




Получаем новую симплекс-таблицу:
Базис B x1 x2 x3 x4 x5 x6
x1    4 1 2/3 1/6 0 0 0
x4    2 0 4/3 -1/6 1 0 0
x5    5 0 5/3 1/6 0 1 0
x6    2 0 1 0 0 0 1
F(X1) 20 0 -2/3 5/6 0 0 0

Итерация №1.
1. Проверка критерия оптимальности.
Текущий опорный план неоптимален, так как в индексной строке находятся
отрицательные коэффициенты.
2. Определение новой базисной переменной.
В качестве ведущего выберем столбец, соответствующий переменной x2,
так как это наибольший коэффициент по модулю.
3. Определение новой свободной переменной.
Вычислим значения Di по строкам как частное от деления: bi / ai2
и из них выберем наименьшее:
min (4 : 2/3 , 2 : 4/3 , 5 : 5/3 , 2 : 1 ) = 3/2
Следовательно, 2-ая строка является ведущей.
Разрешающий элемент равен (4/3) и находится на пересечении ведущего
столбца и ведущей строки.
Базис B x1 x2 x3 x4 x5 x6 min
x1    4 1 2/3 1/6 0 0 0 6
x4    2 0 4/3 -1/6 1 0 0 3/2
x5    5 0 5/3 1/6 0 1 0 3
x6    2 0 1 0 0 0 1 2
F(X2) 20 0 -2/3 5/6 0 0 0 

4. Пересчет симплекс-таблицы.
Формируем следующую часть симплексной таблицы. Вместо переменной x4 в план 2
войдет переменная x2.
Строка, соответствующая переменной x2 в плане 2, получена в результате&nbsp
деления всех элементов строки x4 плана 1 на разрешающий элемент РЭ=11/3.
На месте разрешающего элемента получаем 1. В остальных клетках столбца x2
записываем нули.
Таким образом, в новом плане 2 заполнены строка x2 и столбец x2.
Все остальные элементы нового плана 2, включая элементы индексной строки,
определяются по правилу прямоугольника.
Представим расчет каждого элемента в виде таблицы:
B x1 x2 x3 x4 x5 x6
 
Получаем новую симплекс-таблицу:
Базис B x1 x2 x3 x4 x5 x6
x1 3 1 0 1/4 -1/2 0 0
x2 3/2 0 1 -1/8 3/4 0 0
x5 5/2 0 0 3/8 -5/4 1 0
x6 1/2 0 0 1/8 -3/4 0 1
F(X2) 21 0 0 3/4 1/2 0 0
1. Проверка критерия оптимальности. Среди значений индексной строки нет отрицательных. Поэтому эта таблица определяет оптимальный план задачи. Окончательный вариант симплекс-таблицы:
Базис B x1 x2 x3 x4 x5 x6
x1 3 1 0 1/4 -1/2 0 0
x2 3/2 0 1 -1/8 3/4 0 0
x5 5/2 0 0 3/8 -5/4 1 0
x6 1/2 0 0 1/8 -3/4 0 1
F(X3) 21 0 0 3/4 1/2 0 0
Оптимальный план можно записать так: x1 = 3, x2 = 3/2 F(X) = 5•3 + 4•3/2 = 21

Wednesday, May 16, 2018

Simplex Method and task 18 advanced development

***************************************************************************
Обновление от 01.12.2019
***************************************************************************
Сейчас этот пост имеет 1573 чтений. Примерно 
в 10 раз больше, чем другие посты (реально интересные)
говорит это только об одном
Из басни Крылова
Беда, коль пироги начнет печи сапожник,
А сапоги тачать пирожник,
И дело не пойдет на лад.
Да и примечено стократ,
Что кто за ремесло чужое браться любит.
Тот завсегда других упрямей и вздорней:
Он лучше дело все погубит,
. . . . . . . . .

*************************************************************************

Линейная форма на плоскости достигает обоих экстремумов на любом
выпуклом оганиченном N-угольнике,иными словами справа от А (Досрочный ЕГЭ Информатика 2016 задача 18) может быть добавлено  разумное количество дизъюнкций, каждое из которых будет добавлять
полуплоскость. Отрицание к каждой из скобок будет определять полуплоскость дополняющую указанную в скобке полуплоскость до всей плоскости,а пересечение полуплоскостей (полученных отрицанием ) выпуклый N-угольник. Скобка, содержащая А определяет линейную форму максимум которой нужно определить. Он и будет совпадать с А.

Видео  https://www.youtube.com/watch?v=HEoCopBfU1k



Например : При x >=0 ; y>=0 найти A(min)
(5x+4y<A)v(6x+4y>24)v(x+2y>6)v(y>2)v(y-x>1) = 1
для всех (x,y) на плоскости

Рассмотрим решение приведенного примера симплекс методом
Остается обозначить направляющий вектор целевой формы и провести прямые, перпендикулярные к нему от -infinity to +infinity.




 
Симплекс метод для пространства любой размерности R(n) применен в той
же ситуации. Нетрудно видет, что руками это сделать не просто даже
для модельной задачи
Simplex Method and task 18 for limited number of x1,x2, ,x(n)

Tuesday, May 15, 2018

Solution for system from BU's Stream Queue as of 15/05/2018 via Mapping Method

((x1^y1) = (x2^y2))  => (x3^y3) = 0
((x2^y2) v ¬(x3^y3)) => (x4^y4) = 0
((x3^y3) = (x4^y4))  => (x5^y5) = 0
((x4^y4) v ¬(x5^y5)) => (x6^y6) = 0

zj=xj^yJ

(z1 = z2) => z3   =0
(z2 v ¬z3) => z4 =0
(z3 = z4) => z5   =0
(z4 v ¬Z5) => z6 =0

  

Friday, May 11, 2018

Solution System №129 & 116 & 156 from ege23.pdf via Mapping Method as of 11/05 2018


   (x1 => y1)^((x2 v y2) => (x1=y1)) =1
   (x2 => y2)^((x3 v y3) => (x2=y2)) =1
   (x3 => y3)^((x4 v y4) => (x3=y3)) =1
   (x4 => y4)^((x5 v y5) => (x4=y4)) =1
   (x5 => y5)^((x6 v y6) => (x5=y5)) =1
   (x6 => y6)^((x7 v y7) => (x6=y6)) =1
   x7=y7

 

  

  


(x1 v y1)^((x1^y1) v (!x2 v !y2)) =1
(x2 v y2)^((x2^y2) v (!x3 v !y3)) =1
(x3 v y3)^((x3^y3) v (!x4 v !y4)) =1
(x4 v y4)^((x4^y4) v (!x5 v !y5)) =1
(x5 v y5)^((x5^y5) v (!x6 v !y6)) =1
x6 v y6=1

  



Equations (1) && (4) set values "01" and "10" of column 1 to zeros

((x1=x2)v(x3=x4))^(¬((x1=x2) => (x3=x4))) =1
((x5=x6)v(x3=x4))^(¬((x5=x6) => (x3=x4))) =1
((x5=x6)v(x7=x8))^(¬((x5=x6) => (x7=x8))) =1
((x1=x2)v(x7=x8))^(¬((x1=x2) => (x7=x8))) =1
(x9=x10)
  
   


Monday, May 7, 2018

Solution for system from BU's Stream Queue as of 07/05/2018 via Mapping Method

    

(x1vy1)^(x2^y2) => (x1^y1) =1
(x2vy2)^(x3^y3) => (x2^y2) =1
(x3vy3)^(x4^y4) => (x3^y3) =1
(x4vy4)^(x5^y5) => (x4^y4) =1
(x5vy5)^(x6^y6) => (x5^y5) =1
(x6vy6)^(x7^y7) => (x6^y6) =1
x7vy7=1
 




  

Thursday, May 3, 2018

Conversion decimal to binary in Pascal (fpc Fedora 27) or how much power provides recursion in Pascal



[boris@fedora27workstation PASCAL]$ cat ConvDecBin.pas
program ConvDecBin;

procedure Dec2Bin(var sbin : string; NUMBER : integer);
begin
    if NUMBER > 0 then begin
        Dec2Bin(sbin, NUMBER div 2);
        if NUMBER mod 2 = 0 then
            sbin := sbin + '0'
        else
            sbin := sbin + '1';
    end;
end;

var
  j : integer;
  s : string;

begin
  read(j);
  Dec2Bin(s,j);
  writeln(s);
end.
[boris@fedora27workstation PASCAL]$ fpc -oConvDecBin.exe ConvDecBin.pas
Free Pascal Compiler version 3.0.2 [2018/03/14] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling ConvDecBin.pas
Linking ConvDecBin.exe
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
22 lines compiled, 0.1 sec
[boris@fedora27workstation PASCAL]$ ./ConvDecBin.exe
285
100011101


Tuesday, May 1, 2018

Switching fork diagrams and Mapping Metod for system per request 01/05/2018 (BU's Queue picked up)



System :-

(x1 => x2) v (x2 =>x1)^x3 =1
x2 v x3 v (x2^x3 => x4 ) =1
(x3 => x4) v (x4 =>x3)^x5 =1
x4 v x5 v (x4^x5 => x6) =1
(x5 => x6) v (x6 =>x5)^x7 =1
x6 v x7 v (x6^x7 => x8) =1