������ "��������-����� ��������� ����������������" (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