Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовой проект групп 3341 и 3382 / DMAssociations / RuleItem
.pas unit RuleItem;
interface
uses
ItemSet,
dmmTypes,
uContainers,
Instances,
DoubleObject,
DmmConstants,
math,
Classes,
SysUtils;
type
TDMRuleItem = class (TObject)
public
//левая часть правила
m_premise : TDMItemSet;
//правая часть правила
m_consequence : TDMItemSet;
//ожидаемая точность предсказания
m_accuracy : double ;
m_genTime : integer;
m_OwnValues : boolean;
m_OwnValuesCons : boolean;
public
constructor Create(premise : TDMItemSet; consequence : TDMItemSet;
OwnValuesItems : boolean = false); overload;
constructor Create(premise : TDMItemSet; consequence : TDMItemSet;
genTime : integer; ruleSupport : integer;
OwnValuesItems : boolean = false); overload;
property OwnValues: Boolean read m_OwnValues write m_OwnValues;
property OwnValuesCons: Boolean read m_OwnValuesCons write m_OwnValuesCons;
function premise() : TDMItemSet;
function consequence() : TDMItemSet;
function equals(o : TObject) : boolean;
function accuracy() : double;
function compareTo(o : TObject ) : integer;
destructor Destroy;override;
end;
implementation
constructor TDMRuleItem.Create( premise : TDMItemSet; consequence : TDMItemSet;
OwnValuesItems : boolean = false);
begin
m_premise := premise;
m_premise.OwnValues := OwnValuesItems;
m_consequence := consequence;
m_OwnValues := false;
m_OwnValuesCons := true;
end;
constructor TDMRuleItem.Create(premise : TDMItemSet; consequence : TDMItemSet;
genTime : integer; ruleSupport : integer;
OwnValuesItems : boolean );
begin
m_premise := premise;
m_premise.OwnValues := OwnValuesItems;
m_consequence := consequence;
m_OwnValues := false;
m_OwnValuesCons := true;
m_consequence.setCounter(ruleSupport);
m_genTime := genTime;
end;
function TDMRuleItem.premise() : TDMItemSet;
begin
result := m_premise;
end;
function TDMRuleItem.consequence() : TDMItemSet;
begin
result := m_consequence;
end;
function TDMRuleItem.accuracy() : double;
begin
result := m_accuracy;
end;
function TDMRuleItem.equals(o : TObject) : boolean;
begin
if(o = nil) then
begin
result := false;
exit;
end;
if( (m_premise.equals( (o as TDMRuleItem).m_premise ) ) and (m_consequence.equals( (o as TDMRuleItem).m_consequence)) ) then
begin
result := true;
exit;
end;
result := false;
end;
function TDMRuleItem.compareTo(o : TObject ) : integer;
begin
if(m_accuracy = (o as TDMRuleItem).m_accuracy) then
begin
if((m_genTime = (o as TDMRuleItem).m_genTime)) then
begin
result := 0;
exit;
end;
if(m_genTime > (o as TDMRuleItem).m_genTime) then
begin
result := -1;
exit;
end;
if(m_genTime < (o as TDMRuleItem).m_genTime) then
begin
result := 1;
exit;
end;
end;
if(m_accuracy < (o as TDMRuleItem).m_accuracy) then
begin
result := -1;
exit;
end;
result := 1;
end;
destructor TDMRuleItem.Destroy;
begin
if(OwnValues)then
FreeAndNil(m_premise);
if(OwnValuesCons)then
begin
m_consequence.OwnValues := true;
FreeAndNil(m_consequence);
end;
end;
end.
interface
uses
ItemSet,
dmmTypes,
uContainers,
Instances,
DoubleObject,
DmmConstants,
math,
Classes,
SysUtils;
type
TDMRuleItem = class (TObject)
public
//левая часть правила
m_premise : TDMItemSet;
//правая часть правила
m_consequence : TDMItemSet;
//ожидаемая точность предсказания
m_accuracy : double ;
m_genTime : integer;
m_OwnValues : boolean;
m_OwnValuesCons : boolean;
public
constructor Create(premise : TDMItemSet; consequence : TDMItemSet;
OwnValuesItems : boolean = false); overload;
constructor Create(premise : TDMItemSet; consequence : TDMItemSet;
genTime : integer; ruleSupport : integer;
OwnValuesItems : boolean = false); overload;
property OwnValues: Boolean read m_OwnValues write m_OwnValues;
property OwnValuesCons: Boolean read m_OwnValuesCons write m_OwnValuesCons;
function premise() : TDMItemSet;
function consequence() : TDMItemSet;
function equals(o : TObject) : boolean;
function accuracy() : double;
function compareTo(o : TObject ) : integer;
destructor Destroy;override;
end;
implementation
constructor TDMRuleItem.Create( premise : TDMItemSet; consequence : TDMItemSet;
OwnValuesItems : boolean = false);
begin
m_premise := premise;
m_premise.OwnValues := OwnValuesItems;
m_consequence := consequence;
m_OwnValues := false;
m_OwnValuesCons := true;
end;
constructor TDMRuleItem.Create(premise : TDMItemSet; consequence : TDMItemSet;
genTime : integer; ruleSupport : integer;
OwnValuesItems : boolean );
begin
m_premise := premise;
m_premise.OwnValues := OwnValuesItems;
m_consequence := consequence;
m_OwnValues := false;
m_OwnValuesCons := true;
m_consequence.setCounter(ruleSupport);
m_genTime := genTime;
end;
function TDMRuleItem.premise() : TDMItemSet;
begin
result := m_premise;
end;
function TDMRuleItem.consequence() : TDMItemSet;
begin
result := m_consequence;
end;
function TDMRuleItem.accuracy() : double;
begin
result := m_accuracy;
end;
function TDMRuleItem.equals(o : TObject) : boolean;
begin
if(o = nil) then
begin
result := false;
exit;
end;
if( (m_premise.equals( (o as TDMRuleItem).m_premise ) ) and (m_consequence.equals( (o as TDMRuleItem).m_consequence)) ) then
begin
result := true;
exit;
end;
result := false;
end;
function TDMRuleItem.compareTo(o : TObject ) : integer;
begin
if(m_accuracy = (o as TDMRuleItem).m_accuracy) then
begin
if((m_genTime = (o as TDMRuleItem).m_genTime)) then
begin
result := 0;
exit;
end;
if(m_genTime > (o as TDMRuleItem).m_genTime) then
begin
result := -1;
exit;
end;
if(m_genTime < (o as TDMRuleItem).m_genTime) then
begin
result := 1;
exit;
end;
end;
if(m_accuracy < (o as TDMRuleItem).m_accuracy) then
begin
result := -1;
exit;
end;
result := 1;
end;
destructor TDMRuleItem.Destroy;
begin
if(OwnValues)then
FreeAndNil(m_premise);
if(OwnValuesCons)then
begin
m_consequence.OwnValues := true;
FreeAndNil(m_consequence);
end;
end;
end.
Соседние файлы в папке DMAssociations