������ "��������-����� ��������� ����������������" (original) (raw)
��������� ����������: 17 ������ 2007 23:46 ������� � ����������
��������-����� ��������� ����������������
������: 1.02
������: XXXX Pro (admin@xxxxpro.ru), Lion-Simba.
��� ������� ��������� �� ������: http://openproj.ru/index.php?f=11
��� ������������� ������ ���������� ����� Delphi 6 ��� ����� ������� ������.
������ ������ ��������� ������� � ������������� ��������-������ ��� ������� ������ ����:
`
L=L[1]*x1+L[2]*x2+ .... +L[n]*xn----> min (max)
��� ������������:
A1[1]*x1+A1[2]*x2+....+A1[n]*xn <=> B1
.....................
Am[1]*x1+Am[2]*x2+....+Am[n]*xn <=> Bm
`
��� <=> - ���� �� ������: >= , = , <=
**��������**: ����������� ���� x[j]>=0 ��������� �� ��������� - �� ������� ������ �������������� ����� ��������-�������. ����� ���������� ���� ����������� ����� �������� � ������������
��������� ��� ���� ���������� ��������.
������ ���������������� �� �������� ��� ����, ����� �� ����� ������� ��������������� �� ��������� ����������� ������������� ������� ������.
��� ������������� �������������� ������ ������ ��������� ��� ����������,
����������� ������� ����� ���������� ��������� �� ������ ������ �� �������������.
��� ������������� ������ ���������� ����� Delphi � ���������� ������������ �������� (Delphi 6 ��� 7).
�������� ������ � ����:
TSimplex - ������� ������� ��������-�������
TIntSimplex (��������� TSimplex) - ������� ������������� �������
TExtArray - ������������ ������ ����� ���� extended
�������� ��������� � ������� Tsimplex:
Constructor Create(const L:TExtArray,maximize:boolean=false); - ������������� �������.
����� ��� ���������:
L - ������ ������������� �������������� �������
maximize - ����������� �����������: false - ���� �������, true - ��������
Procedure AddCons(B:extended; A:TExtArray, Sign:TOperation); - ���������� ����������� ���� Ai[1]*x1+Ai[2]*x2+....+Ai[n]*xn <=> Bi
����� ��� ���������:
B - �������� ������������ Bi,
A - ������ �������� ������������� Ai
Sign - ����, ������������� ���, ���������� ���� �� ����. ��������: (Equal, Less, Greater)
����������: ���� ������ A ����� ������� �����, ��� ������ ������������� ��� �������������� ������� ���
����������� ����� �����������, �� ��� ������������� ����������� ������ �� ������ �����
������� ����� ���������� ������� ���, ������� ����������� ����� �������� ��� ������
Function Solve:integer; - ����� ������� ��� �������� ������� � ������ �����������
������������ ��������:
SIMPLEX_DONE - ������� ������� �������
SIMPLEX_NO_SOLUTION - ������� ���, ��� ���������� ����� ������� �����
SIMPLEX_NO_BOTTOM - ������� ��� � ���� ��������������� �������� �������� �����
Function GetMin:extended; - ��������� �������� (��� extended) ������� � ����� �������� (���������)
Function GetSolution:TExtArray; - ��������� ��������� (��� TExtArray) ��������� ����� �������� (���������)
Destructor Free; - ����������� �������
�������� ��������� � ������� TintSimplex:
� ������ TIntSimplex �������� ��� ������� TSimplex, � ����� ���������:
Function IntSolve:integer; - ������� ������������� �������, ������������ �������� ��������� ���������� Solve
Function GetIntMin:extended; - ��������� �������� ������� � ��������, ��������� ������������� �������
Function GetIntSolution:TExtArray; - ��������� ��������� ����� ��������, ��������� ������������� �������
������ �������������:
`
Uses Simplex;
var
Simplex : TSimplex;
Begin
Simplex:=TSimplex.Create(L,false); // L - ������ ������������� �������������� �������,
// false - ����������� ������ (false - �������, true - ��������)
Simplex.AddCons(B1,A1,equal); // A1 - ������ ������������� ������� �����������, equal,less, grater - ��������� ����� ��� �����������
...
Simplex.AddCons(B1,A1,equal); // A1 - ������ ������������� n-���� �����������
if (Simplex.Solve=SIMPLEX_DONE) then begin // �-��� Solve ���������� ������� ������. ���� ������������ �������� SIMPLEX_DONE, ������� �������
writeln('���������:',Simplex.GetMin); // ��������� �������� �������� �������
Res:=Simplex.GetSolution; // ��������� ������� - ��������� ����� ��������
end
else writeln('������� �� ����������!');
Simplex.Free; // ����������� �������;
End;
`
��� �������������� ������� ���������� �������� TSimplex �� TIntSimplex,
Solve - �� IntSolve, GetMin - �� GetIntMin, GetSolution - �� GetIntSolution.
����� �����, ������� ����������� ������� ����������� �������� (�� �� ���������� ������������ �������� ������ �������� ������������� Lion-Simba) ��� ������� ����� � �������������� ����� ������.
����� �� ������ ������ Simplex ���� ������� ���������� ��� 1�, ������� ������� �������� ����� ������ aka gr. ������� �� ����� �����: http://www.openproj.ru/simplex/vk_simplex.zip
����� ����������: 9869