Решение задачи повышения надежности резервирования с помощью эволюционного моделирования

Надежность резервирования компонентов стендовой информационно-управляющей системы. Экспоненциальное распределение времени до отказа. Алгоритм решения задачи выбора вариантов резервирования компонентов стендовой информационно-управляющей системы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 16.06.2012
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

for i := 0 to (L div 2) - 1 do

begin

t1 := random(L);

t2 := random(L);

if random(101)/100 <= Pcros then

begin

CrPt := random (N);

for j := 0 to CrPt-1 do

begin

TempPopCr.Individs[2*i][j]:=TempPop.Individs[t1][j];

TempPopCr.Individs[2*i+1][j]:=TempPop.Individs[t2][j];

end;

for j := CrPt to N-1 do

begin

TempPopCr.Individs[2*i][j]:=TempPop.Individs[t2][j];

TempPopCr.Individs[2*i+1][j]:=TempPop.Individs[t1][j];

end;

end

else

for j := 0 to N-1 do

begin

TempPopCr.Individs[2*i][j]:=TempPop.Individs[t1][j];

TempPopCr.Individs[2*i+1][j]:=TempPop.Individs[t2][j];

end;

end;

if L mod 2 <> 0 then

for j := 0 to N-1 do

TempPopCr.Individs[L-1][j]:=TempPop.Individs[t1][j];

end;

procedure MutantPopulation (var TempPop: TPopulation);

var i,j: integer;

num: integer;

begin

{for i := 0 to L-1 do

for j := 0 to N-1 do

if random(101)/100 <= Pmut then

TempPop.Individs[i][j] := random(3) + 1; }

for i := 1 to L-1 do

if random(101)/100 <= Pmut then

for j := 1 to N-1 do

if random(101)/100 <= Pmut then

TempPop.Individs[i][j] := random(3) + 1;

end;

function SumTxX (var Indiv: TIndivid): real;

var

j: integer;

begin

result := 0;

for j := 0 to N-1 do

case Indiv[j] of

1: result := result + 1/T[j];

2: result := result + 2/3/T[j];

3: result := result + 6/5/T[j];

end;

end;

procedure FixPopulation (var TempPop: TPopulation);

var i, index: integer;

begin

for i := 0 to L-1 do

while SumTxX(TempPop.Individs[i]) > 1/Tavg do

begin

index := random (N);

if TempPop.Individs[i][index] = 3 then dec(TempPop.Individs[i][index],random(2)+1)

else if TempPop.Individs[i][index] = 1 then inc(TempPop.Individs[i][index])

end;

end;

procedure InitTavg;

var j: integer;

temp: real;

begin

temp := 0;

for j := 0 to N-1 do

temp := temp + 1/T[j];

Tavg := 1/temp;

end;

procedure InitRecord;

var i: integer;

begin

for i := 1 to RecQuantity do

begin

Rec[i].S := -9999999;

Rec[i].P := -9999999;

Rec[i].Quantity := 0;

end;

end;

function VectorIsHere (var RecEl: TRecElement; var Indivs: TIndivid): boolean;

var i,j,k: integer;

raznitsa: boolean;

begin

result := false; /// вектора нет

for i := 0 to RecEl.Quantity -1 do

begin

raznitsa := false;

for j := 0 to N-1 do

if RecEl.Solutions[i][j] <> Indivs[j] then

begin

raznitsa := true;

break;

end;

result := result or not raznitsa;

if result then break;

end;

end;

procedure AddToRecord (var TempPop: TPopulation);

var i,j,k,q,g: integer;

begin

for i := 0 to L-1 do

for k := 1 to RecQuantity do

begin

g := 0;

if (TempPop.Rank[i] >=1) and (TempPop.Rank[i] < 2) then //в рекорд идут недоминируемые решения

Begin //если вектор доминирует

if ((TempPop.Fitness[i].S >= Rec[k].S) and (TempPop.Fitness[i].P > Rec[k].P))

or ((TempPop.Fitness[i].S > Rec[k].S) and (TempPop.Fitness[i].P >= Rec[k].P)) then

begin

rec[k].S := TempPop.Fitness[i].S;

rec[k].P := TempPop.Fitness[i].P;

SetLength (rec[k].Solutions, 1);

rec[k].Quantity := 1; //остальные подтереть

SetLength (rec[k].Solutions[0], N);

for j := 0 to N-1 do

rec[k].Solutions[0][j] := TempPop.Individs[i][j];

RefreshNum := 0;

//подтирание

for g := k+1 to RecQuantity do

if ((TempPop.Fitness[i].S >= Rec[g].S) and (TempPop.Fitness[i].P > Rec[g].P))

or ((TempPop.Fitness[g].S > Rec[k].S) and (TempPop.Fitness[i].P >= Rec[g].P)) then

begin

Rec[g].S := -9999999;

Rec[g].P := -9999999;

Rec[g].Quantity := 0;

end;

break;

end

else //если вектор равен. то добавляем еще одно возможное решение

if (TempPop.Fitness[i].S = Rec[k].S) and (TempPop.Fitness[i].P = Rec[k].P) then

begin

if not VectorIsHere (Rec[k], TempPop.Individs[i]) then

begin

inc(rec[k].Quantity);

SetLength(rec[k].Solutions, rec[k].Quantity);

SetLength (rec[k].Solutions[rec[k].Quantity-1], N);

for j := 0 to N-1 do

rec[k].Solutions[rec[k].Quantity-1][j] := TempPop.Individs[i][j];

RefreshNum := 0;

end ;

break;

end

else if (TempPop.Fitness[i].S <= Rec[k].S) and (TempPop.Fitness[i].P <= Rec[k].P) then

break

End;

end;

end;

procedure CopyPopulation (var PopFrom: TPopulation; var PopInto: TPopulation);

var i,j: integer;

begin

for i := 0 to L-1 do

begin

PopInto.Rank[i] := PopFrom.Rank[i];

PopInto.Fitness[i].S := PopFrom.Fitness[i].S;

PopInto.Fitness[i].P := PopFrom.Fitness[i].P;

for j := 0 to N-1 do

begin

PopInto.Individs[i][j] := PopFrom.Individs[i][j];

end;

end;

end;

procedure InitRec;

begin

SetLength (Rec, RecQuantity + 1);

end;

procedure EraseRec;

begin

Rec := nil;

end;

procedure InitInputArrays;

begin

SetLength(P,N);

SetLength(T,N);

SetLength(S,N);

SetLength(G,N);

end;

procedure EraseInputArrays;

begin

P := nil;

T := nil;

S := nil;

G := nil;

end;

END.

Размещено на Allbest.ru


Подобные документы

  • Методы решения задачи оптимального резервирования технической системы. Решение задачи методами неопределенных множителей Лагранжа и динамического программирования. Построение оптимальной схемы системы при нагруженном резервировании ее элементов.

    лабораторная работа [31,5 K], добавлен 10.06.2009

  • Логическая организация информационной системы специального назначения, её состав и задачи. Назначение комплекса программ "Эксплуатационное обслуживание" и его компонентов. Архитектура подсистемы автоматического резервирования данных пользователей.

    дипломная работа [1,5 M], добавлен 13.04.2014

  • Построение графика изменения вероятности безотказной работы системы согласно структурной схемы. Порядок определения процентной наработки технической системы, обеспечение ее увеличения за счет повышения надежности элементов, структурного резервирования.

    контрольная работа [482,9 K], добавлен 12.05.2009

  • Увеличение надежности информационных систем с помощью резервирования и повышения вероятности безотказной работы элементов. Применение кластеризации как альтернативы симметричным мультипроцессорным системам по производительности и коэффициенту готовности.

    курсовая работа [401,9 K], добавлен 18.06.2015

  • Характеристики и оценка значения, а также роль и значение компьютерных систем бронирования и резервирования на современном рынке. Зарубежные и российские системы, используемые в данной сфере, их сравнительное описание, анализ преимуществ и недостатков.

    презентация [2,0 M], добавлен 17.11.2015

  • Классификация автомобильных мехатронных модулей по функциональному назначению. Анализ особенностей архитектуры сетевого интерфейса бортовой информационно–управляющей системы. Исследование основных топологических схем мультиплексных систем автомобиля.

    дипломная работа [1,6 M], добавлен 26.07.2017

  • Влияние на надежность системы числа резервных блоков, интенсивности восстановления, интенсивности отказов, интенсивности отказов при облегченном режиме работы. Показатели надежности при нагруженном резервировании. Вероятность безотказной работы системы.

    курсовая работа [1,4 M], добавлен 06.08.2013

  • Функциональная схема узла информационной управляющей системы, параметры ее функциональных элементов. Выбор стандартной схемы в качестве нелинейного преобразователя. Определение погрешностей каналов ввода сигналов. Погрешность и коэффициент передачи.

    реферат [331,1 K], добавлен 25.12.2014

  • Методы построения графика изменения вероятности безотказной работы системы от времени наработки в диапазоне снижения вероятности до нужного уровня. Определение процентного числа наработки технической системы. Анализ структурного резервирования элементов.

    контрольная работа [831,3 K], добавлен 26.04.2010

  • Обоснование выбора метода проектирования и инструментальных средств для разработки программного средства и базы данных. Требования к эргономике и технической эстетике. Разработка алгоритмов приложения. Руководство пользователя. Безопасность труда.

    дипломная работа [2,9 M], добавлен 17.10.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.