Автоматизированное средство поиска оптимальной расстановки игроков футбольной команды реализовано на основе вышеизложенной математической модели. Поиск опорного плана реализован способом минимальной стоимости по строке. В качестве метода последовательного улучшения опорного плана использован метод потенциалов. Блок-схема алгоритма автоматизированного средства (см. рис. 2) приведена в приложении В. Программный код основных процедур и функций расчета, и интерфейс (см. рис. 3,4) приведены в приложении С.
ЗАКЛЮЧЕНИЕ
В курсовой работе выполнена разработка математической модели оптимальной расстановки игроков футбольной команды на поле. На основе этой модели разработано автоматизированное средство в помощь тренеру.
Использование данного автоматизированного средства тренером позволяет ему принимать обоснованные решения о распределении игровых обязанностей между членами футбольной команды, с целью достижения максимальной эффективности игры всей команды в предстоящем матче.
Приложение А
Рис.1 “Блок-схема алгоритма метода потенциалов для задачи транспортного типа”
Приложение В
Рис.2 “Блок-схема алгоритма автоматизированного средства поиска оптимальной расстановки игроков футбольной команды на поле”
Приложение С
Основные функции и процедуры автоматизированного средства поиска оптимальной расстановки игроков футбольной команды на поле
procedure Nul (var a:footb); //обнуление массиваi : integer;i:=1 to N do a[i]:=0;;a_b : boolean; //Расчет потенциалов alfa и bettak,i,j : integer;_a,Z_b : footb;: boolean;(Z_a); Nul(Z_b);[1]:=0; Z_a[1]:=1;:=1;:= true;i:=1 to Na doZ_a[i]=1 thenj:=1 to Nb do(p[i,j]>-1) and (Z_b[j]=0) then begin_b[j]:=1;[j]:=c[i,j]-alfa[i];:=k+1;:=false;;i:=1 to Nb doZ_b[i]=1 thenj:=1 to Na do(p[j,i]>-1) and (Z_a[j]=0) then begin_a[j]:=1;[j]:=c[j,i]-betta[i];:=k+1;:=false;;(k=Na+Nb) or dd;dd then begin:=1;Z_a[i]=1 do i:=i+1;:=1;Z_b[j]=0 do j:=j+1;[i,j]:=0;;_b:=dd;;kkk(var ki,kj:integer):integer; // Расчет коэффициента k в свободных клеткахi,j,k,k_min : integer;: boolean;:=true;i:=1 to Na doj:=1 to Nb dop[i,j]=-1 then begin:=c[i,j]-alfa[i]-betta[j];b then begin:=false;:=i; kj:=j; k_min:=k;elsek<k_min then begin_min:=k;:=i; kj:=j;;;:=k_min;;div_mod(c:integer; var a,b:integer); //Перевод одномерного массива в двумерный:=c mod Nb; a:=c div Nb +1;b=0 then begin:=Nb; dec(a);;;Rek(Xi,Yi:integer; var z:boolean; var c:integer); i,j:integer;
Begin //Рекурсивная процедура, определяет контур перемещения
z:=false;c of
: for i:=1 to Na doi<>Xi thenp[i,Yi]>-1 then beginu[(i-1)*Nb+Yi]=0 then begin[(Xi-1)*Nb+Yi]:=(i-1)*Nb+Yi;:=2;(i,Yi,z,c);z then exit;;if (i=ki) and (Yi=kj) then begin[(Xi-1)*Nb+Yi]:=(ki-1)*Nb+kj;z=true then z:=false;z=false then z:=true;;;
: for i:=1 to Nb doi<>Yi thenp[Xi,i]>-1 then beginu[(Xi-1)*Nb+i]=0 then begin[(Xi-1)*Nb+Yi]:=(Xi-1)*Nb+i;:=1;(Xi,i,z,c);z then exit;;if (Xi=ki) and (i=kj) then begin[(Xi-1)*Nb+Yi]:=(ki-1)*Nb+kj;z=true then z:=false;z=false then z:=true;;;;[(Xi-1)*Nb+Yi]:=0;
c:=c mod 2 +1;;kontur; // процедура определения контура перемещения
var i,j,k,mi,mj,l:integer;:boolean;_m:longint;i:=1 to N*N do u[i]:=0;:=1;(ki,kj,z,l);:=ki; j:=kj;:=u[(i-1)*Nb+j];_mod(k,i,j);:=i; mj:=j; l:=1;:=l+1;:=u[(i-1)*Nb+j];_mod(k,i,j);l mod 2=1 thenp[i,j]<p[mi,mj] then begin:=i; mj:=j;;(i=ki) and (j=kj);:=ki; j:=kj; l:=0;_m:=p[mi,mj];l mod 2=0 then begin(p[i,j],p_m);else begin(p[i,j],p_m);;l=0 then inc(p[i,j]);:=u[(i-1)*Nb+j];_mod(k,i,j);(l);(i=ki) and (j=kj);[mi,mj]:=-1;;
//---------------------- решение ---------------------------------TForm1.N2Click(Sender: TObject);i,j,l,k : Integer;: real;: string;: integer;(alfa); Nul(betta);(A);Nul(B);Nul(B_d);Nul(x);
Na:= 22; Nb:= 8;
// заполняем массив В с учетом вида расстановки
case rg1.ItemIndex of
: begin[1]:= 2; B[2]:= 1; B[3]:= 1; B[4]:= 2;[5]:= 1; B[6]:= 1; B[7]:= 2; B[8]:= 12;;
: begin[1]:= 3; B[2]:= 1; B[3]:= 1; B[4]:= 2;[5]:= 1; B[6]:= 1; B[7]:= 1; B[8]:= 12;;
: begin[1]:= 1; B[2]:= 1; B[3]:= 1; B[4]:= 2;[5]:= 1; B[6]:= 1; B[7]:= 3; B[8]:= 12;;
: begin[1]:= 2; B[2]:= 1; B[3]:= 1; B[4]:= 3;[5]:= 0; B[6]:= 0; B[7]:= 3; B[8]:= 12;;
: begin[1]:= 3; B[2]:= 0; B[3]:= 0; B[4]:=3;[5]:= 1; B[6]:= 1; B[7]:= 2; B[8]:= 12;;
end;
// заполняем массив А - назначение игрока только на 1 место
for i:= 1 to Na do A[i]:= 1;
// заполняем массив стоимостей - оценки игроковi:= 1 to Na do
for j:= 1 to Nb doC[i,j]:= 0;;Form2.SGrid do begini:= 1 to RowCount - 2 do beginj:= 1 to (Nb-1) do C[i,j]:= 10 - StrToInt(Cells[j,i]);;;
// составление опорного планаi:=1 to Nb do B_d[i]:=B[i];i:=1 to Na do beginj:=1 to Nb do x[j]:=j;j:=1 to Nb-1 do begin_min:=c[i,x[j]];_min:=j;r:= j+1 to Nb do(x_min>c[i,x[r]]) or
((x_min=c[i,x[r]]) and (B[x[r]]>b[x[r_min]])) then_min :=c[i,x[r]];_min:=r;;_p:=x[r_min];[r_min]:=x[j];[j]:=x_p;;:=0;j:=1 to Nb do begin[i,x[j]]:=B_d[x[j]];p[i,x[j]]>A[i]-Sp then p[i,x[j]]:=A[i]-Sp;(Sp,p[i,x[j]]);(B_d[x[j]],p[i,x[j]]);;;i:=1 to Na doj:=1 to Nb do if p[i,j]=0 then p[i,j]:=-1;
Управление персоналом предприятия делится на три главных направления: стратегическое, оперативное и обеспечение.
Наиболее ранним подходом к оценке стиля управления был взгляд, основанный на оценке личных качеств.