public final class DefaultEvidence extends Object implements Evidence
query
.
Evidence is always associated with a particular network, however if necessary can be detached or attached to an instance of an inference engine. This has the follwing advantages: - Evidence can be set before an inference engine is created, or retained when an inference engine is destroyed. - Evidence can be switched between inference engines. - An inference engine can switch between different evidence instances.Constructor and Description |
---|
DefaultEvidence(DefaultEvidence evidence)
Initializes a new instance of the
DefaultEvidence class, copying data from an existing DefaultEvidence object. |
DefaultEvidence(Evidence evidence)
Initializes a new instance of the
DefaultEvidence class, and copies the evidence from another instance. |
DefaultEvidence(Network network)
Initializes a new instance of the
DefaultEvidence class, with the target Bayesian network. |
Modifier and Type | Method and Description |
---|---|
void |
beginUpdate()
Disables change notifications (if present), until
Evidence.endUpdate() is called. |
void |
clear()
Clears any evidence on all variables.
|
void |
clear(Node node)
Clears evidence on a node's variables.
|
void |
clear(Node node,
Integer time)
Clears evidence on a node's single variable.
|
void |
clear(Variable variable)
Clears any evidence on a variable.
|
void |
clear(Variable variable,
Integer time)
Clears evidence on a variable at the specified time.
|
void |
copy(Evidence evidence)
Replaces the current evidence, with that from another
Evidence instance. |
void |
copy(Evidence evidence,
Variable variable)
Replaces the current evidence for an individual variable, with that from another
Evidence instance. |
void |
copy(Evidence evidence,
Variable variable,
Integer time)
Replaces the current evidence for an individual variable at a specific time, with that from another
Evidence instance. |
void |
endUpdate()
Enables change notifications (if available).
|
Double |
get(Node node)
Gets the hard evidence value for a particular node's variable, or returns null if the
EvidenceType equals EvidenceType.NONE or EvidenceType.SOFT . |
void |
get(Node node,
Double[] destination,
int destinationStart,
int startTime,
int count)
Gets the evidence for a node's single temporal variable.
|
Double |
get(Node node,
Integer time)
Gets the evidence for a node with a single variable at the specified time.
|
Double |
get(Variable variable)
Gets the hard evidence for a discrete variable or continuous variable, or returns null if the
EvidenceType equals EvidenceType.NONE or EvidenceType.SOFT . |
void |
get(Variable variable,
Double[] destination,
int destinationStart,
int startTime,
int count)
Gets the evidence for a temporal variable.
|
Double |
get(Variable variable,
Integer time)
Gets the evidence for a discrete variable at the specified time.
|
EvidenceType |
getEvidenceType(Node node)
Returns the type of evidence currently set for a node with a single variable.
|
EvidenceType |
getEvidenceType(Node node,
Integer time)
Returns the type of evidence currently set for a node with a single variable at a given time.
|
EvidenceType |
getEvidenceType(Variable variable)
Returns the type of evidence currently set for a variable (if any).
|
EvidenceType |
getEvidenceType(Variable variable,
Integer time)
Returns the type of evidence currently set for a variable at a given time.
|
EvidenceTypes |
getEvidenceTypes(Node node)
Gets the type of evidence (if any) and whether or not it is an intervention (do-operator).
|
EvidenceTypes |
getEvidenceTypes(Node node,
Integer time)
Gets the type of evidence (if any) and whether or not it is an intervention (do-operator).
|
EvidenceTypes |
getEvidenceTypes(Variable variable)
Gets the type of evidence (if any) and whether or not it is an intervention (do-operator).
|
EvidenceTypes |
getEvidenceTypes(Variable variable,
Integer time)
Gets the type of evidence (if any) and whether or not it is an intervention (do-operator).
|
double |
getLogWeight()
Gets the natural logarithm of
Evidence.getWeight() . |
Integer |
getMaxTime()
Gets the maximum time containing evidence.
|
Integer |
getMaxTime(Variable variable)
Gets the maximum time containing evidence for a variable.
|
Network |
getNetwork()
Gets the Bayesian network that is the the target of the evidence.
|
Integer |
getState(Node node)
Gets the hard evidence state for node with a single variable, or returns null if the
EvidenceType equals EvidenceType.NONE or EvidenceType.SOFT . |
Integer |
getState(Node node,
Integer time)
Gets the hard evidence state for node with a single variable, or returns null if the
EvidenceType equals EvidenceType.NONE or EvidenceType.SOFT . |
Integer |
getState(Variable variable)
Gets the hard evidence state for a particular variable, or returns null if the
EvidenceType equals EvidenceType.NONE or EvidenceType.SOFT . |
Integer |
getState(Variable variable,
Integer time)
Gets the hard evidence state for a particular variable, or returns null if the
EvidenceType equals EvidenceType.NONE or EvidenceType.SOFT . |
void |
getStates(Node node,
double[] buffer)
Fills out a buffer containing the soft evidence for a node with a single variable.
|
void |
getStates(Node node,
double[] buffer,
Integer time)
Fills out a buffer containing the soft evidence for a node with a single variable at a specified time.
|
void |
getStates(Table table)
Fills out a table containing the soft evidence for a particular variable.
|
void |
getStates(Variable variable,
double[] buffer)
Fills out a buffer containing the soft evidence for a particular variable.
|
void |
getStates(Variable variable,
double[] buffer,
Integer time)
Fills out a buffer containing the soft evidence for a particular variable at a specified time.
|
void |
getVariables(Variable[] buffer)
Fills out a buffer with all variables that have either hard or soft evidence.
|
double |
getWeight()
Gets a weight that can be applied to the evidence.
|
void |
load(InputStream input)
Loads evidence from the specified stream.
|
void |
load(String fileName)
Loads evidence from the specified file.
|
void |
loadFromString(String value)
Loads evidence from a string using UTF-8 encoding.
|
void |
loadFromString(String value,
String charSetName)
Loads evidence from a string using the specified encoding.
|
void |
save(OutputStream output)
Saves the evidence to the specified stream.
|
void |
save(String fileName)
Saves the specified to the specified file.
|
String |
saveToString()
Saves evidence to a string, with UTF-8 encoding.
|
String |
saveToString(String charSetName)
Saves evidence to a string, with the specified encoding.
|
void |
set(Node node,
Double value)
Sets a node's variable to a particular value (hard evidence).
|
void |
set(Node node,
Double[] source,
int sourceStart,
int startTime,
int count)
Sets temporal evidence on a node with a single variable.
|
void |
set(Node node,
Double value,
Integer time)
Sets evidence on a node's single variable at a specified time.
|
void |
set(Variable variable,
Double value)
Sets a variable to a particular value (hard evidence).
|
void |
set(Variable variable,
Double[] source,
int sourceStart,
int startTime,
int count)
Sets temporal evidence on a variable.
|
void |
set(Variable variable,
Double value,
Integer time)
Sets evidence on a variable at a specified time.
|
void |
set(Variable variable,
Double value,
Integer time,
InterventionType interventionType)
Sets evidence on the variable, in the form of an intervention (do-operator).
|
void |
setLogWeight(double value)
Sets the natural logarithm of
Evidence.getWeight() . |
void |
setState(Node node,
Integer state)
Sets evidence on a node with a single discrete variable to a particular state (hard evidence).
|
void |
setState(Node node,
Integer state,
Integer time)
Sets evidence on a node with a single discrete variable to a particular state (hard evidence) specifiying a time if the node is temporal.
|
void |
setState(State state)
Sets evidence on a discrete state (hard evidence).
|
void |
setState(State state,
Integer time)
Sets evidence on a discrete state (hard evidence) at a particular time (zero based).
|
void |
setState(State state,
Integer time,
InterventionType interventionType)
Sets evidence on a discrete state (hard evidence), in the form of an intervention (do-operator).
|
void |
setState(Variable variable,
Integer state)
Sets a discrete variable to a particular state (hard evidence).
|
void |
setState(Variable variable,
Integer state,
Integer time)
Sets a discrete variable to a particular state (hard evidence), specifiying a time if the state belongs to a variable whose node is temporal.
|
void |
setStates(Node node,
double[] values)
Sets soft evidence for a discrete node with a single variable.
|
void |
setStates(Node node,
double[] values,
Integer time)
Sets soft evidence for a discrete node with a single variable, at a specified time.
|
void |
setStates(Variable variable,
double[] values)
Sets soft evidence for a particular discrete variable.
|
void |
setStates(Variable variable,
double[] values,
Integer time)
Sets soft evidence for a particular discrete variable at a specified time.
|
void |
setWeight(double value)
Sets a weight that can be applied to the evidence.
|
int |
size()
Gets the count of variables with either hard, soft or temporal evidence set.
|
public DefaultEvidence(Network network)
DefaultEvidence
class, with the target Bayesian network.network
- The target Network
.public DefaultEvidence(Evidence evidence)
DefaultEvidence
class, and copies the evidence from another instance.evidence
- The evidence to copy.public DefaultEvidence(DefaultEvidence evidence)
DefaultEvidence
class, copying data from an existing DefaultEvidence
object.evidence
- The evidence.public int size()
public Network getNetwork()
getNetwork
in interface Evidence
Network
.public double getWeight()
Note that setting the weight to anything but 1, will effect the QueryOutput.getLogLikelihood()
statistic.
public void setWeight(double value)
Note that setting the weight to anything but 1, will effect the QueryOutput.getLogLikelihood()
statistic.
public double getLogWeight()
Evidence.getWeight()
.getLogWeight
in interface Evidence
public void setLogWeight(double value)
Evidence.getWeight()
.setLogWeight
in interface Evidence
public void beginUpdate()
Evidence.endUpdate()
is called.
Calls to Evidence.beginUpdate()
can be nested, in which case notifications only continue after the final call to Evidence.endUpdate()
.beginUpdate
in interface Evidence
public void clear(Variable variable, Integer time)
public void clear(Variable variable)
public void clear(Node node)
clear
in interface Evidence
node
- The node whose variables you want to clear evidence on.NullPointerException
- [node] is null.public void clear()
public void copy(Evidence evidence)
Evidence
instance.public void copy(Evidence evidence, Variable variable)
Evidence
instance.
For temporal variables, evidence is copied from the source at all times.public void copy(Evidence evidence, Variable variable, Integer time)
Evidence
instance.public void endUpdate()
Evidence.beginUpdate()
to disable notifications.public Double get(Variable variable)
EvidenceType
equals EvidenceType.NONE
or EvidenceType.SOFT
.get
in interface Evidence
variable
- The discrete or continuous variable.EvidenceType
does not equal EvidenceType.HARD
.public Double get(Variable variable, Integer time)
public Double get(Node node, Integer time)
public void get(Variable variable, Double[] destination, int destinationStart, int startTime, int count)
get
in interface Evidence
variable
- The temporal variable.destination
- The destination buffer which will be filled with the evidence values.destinationStart
- The position in the buffer to start copying.startTime
- The time to start copying from.count
- The number of evidence values to copy.public void get(Node node, Double[] destination, int destinationStart, int startTime, int count)
get
in interface Evidence
node
- A node with a single temporal variable.destination
- The destination buffer which will be filled with the evidence values.destinationStart
- The position in the buffer to start copying.startTime
- The time to start copying from.count
- The number of evidence values to copy.public Double get(Node node)
EvidenceType
equals EvidenceType.NONE
or EvidenceType.SOFT
.get
in interface Evidence
node
- A node with a single variable in question.EvidenceType
does not equal EvidenceType.HARD
.public EvidenceType getEvidenceType(Variable variable)
getEvidenceType
in interface Evidence
variable
- The variable in question.EvidenceType
.public EvidenceType getEvidenceType(Node node)
getEvidenceType
in interface Evidence
node
- The node in question.EvidenceType
.public EvidenceType getEvidenceType(Node node, Integer time)
getEvidenceType
in interface Evidence
node
- The node in question.time
- The time at which evidence is set. Can be null.EvidenceType
.public EvidenceType getEvidenceType(Variable variable, Integer time)
getEvidenceType
in interface Evidence
variable
- The variable in question.time
- The time at which evidence is set. Can be null.EvidenceType
.public EvidenceTypes getEvidenceTypes(Variable variable)
getEvidenceTypes
in interface Evidence
variable
- The variable in question.EvidenceTypes
.public EvidenceTypes getEvidenceTypes(Node node)
getEvidenceTypes
in interface Evidence
node
- The node in question.EvidenceTypes
.public EvidenceTypes getEvidenceTypes(Node node, Integer time)
getEvidenceTypes
in interface Evidence
node
- The node in question.time
- The time at which evidence is set. Can be null.EvidenceTypes
.public EvidenceTypes getEvidenceTypes(Variable variable, Integer time)
getEvidenceTypes
in interface Evidence
variable
- The variable in question.time
- The time at which evidence is set. Can be null.EvidenceTypes
.public Integer getMaxTime(Variable variable)
getMaxTime
in interface Evidence
variable
- The variable to check.public Integer getMaxTime()
getMaxTime
in interface Evidence
public Integer getState(Variable variable)
EvidenceType
equals EvidenceType.NONE
or EvidenceType.SOFT
.getState
in interface Evidence
variable
- The variable.State
with hard evidence set, or null if the EvidenceType
does not equal EvidenceType.HARD
..public Integer getState(Variable variable, Integer time)
EvidenceType
equals EvidenceType.NONE
or EvidenceType.SOFT
.getState
in interface Evidence
variable
- The variable.time
- Time at which to retrieve evidence, if the variable belongs to a temporal node, otherwise null.State
with hard evidence set, or null if the EvidenceType
does not equal EvidenceType.HARD
..public Integer getState(Node node)
EvidenceType
equals EvidenceType.NONE
or EvidenceType.SOFT
.getState
in interface Evidence
node
- The node with a single discrete variable.State
with hard evidence set, or null if the EvidenceType
does not equal EvidenceType.HARD
..public Integer getState(Node node, Integer time)
EvidenceType
equals EvidenceType.NONE
or EvidenceType.SOFT
.getState
in interface Evidence
node
- The node with a single discrete variable.time
- Time at which to retrieve evidence, if the node is temporal, otherwise null.State
with hard evidence set, or null if the EvidenceType
does not equal EvidenceType.HARD
..public void getStates(Variable variable, double[] buffer)
Get
.
The resulting values will depend on the current EvidenceType
for the variable:EvidenceType.NONE
- All values will equal 1.EvidenceType.HARD
- All values will equal 0, except at the hard evidence state, where the value will equal 1.EvidenceType.NONE
- The soft evidence values will be used.public void getStates(Node node, double[] buffer)
Get
.
The resulting values will depend on the current EvidenceType
for the variable:EvidenceType.NONE
- All values will equal 1.EvidenceType.HARD
- All values will equal 0, except at the hard evidence state, where the value will equal 1.EvidenceType.NONE
- The soft evidence values will be used.public void getStates(Table table)
Get
.
The resulting values will depend on the current EvidenceType
for the variable:EvidenceType.NONE
- All values will equal 1.EvidenceType.HARD
- All values will equal 0, except at the hard evidence state, where the value will equal 1.EvidenceType.NONE
- The soft evidence values will be used.public void getStates(Node node, double[] buffer, Integer time)
Get
.
The resulting values will depend on the current EvidenceType
for the variable:EvidenceType.NONE
- All values will equal 1.EvidenceType.HARD
- All values will equal 0, except at the hard evidence state, where the value will equal 1.EvidenceType.NONE
- The soft evidence values will be used.public void getStates(Variable variable, double[] buffer, Integer time)
Get
.
The resulting values will depend on the current EvidenceType
for the variable:EvidenceType.NONE
- All values will equal 1.EvidenceType.HARD
- All values will equal 0, except at the hard evidence state, where the value will equal 1.EvidenceType.NONE
- The soft evidence values will be used.public void getVariables(Variable[] buffer)
Evidence.size()
.getVariables
in interface Evidence
buffer
- A container for any variables with evidence. It must have length equal to or greater than the current Evidence.size()
.public void load(InputStream input) throws XMLStreamException
load
in interface Evidence
input
- The input stream.XMLStreamException
public void load(String fileName) throws IOException, XMLStreamException
load
in interface Evidence
fileName
- Name of the file.IOException
XMLStreamException
public void save(OutputStream output) throws XMLStreamException
save
in interface Evidence
output
- The output stream.XMLStreamException
public void save(String fileName) throws IOException, XMLStreamException
save
in interface Evidence
fileName
- Name of the file.IOException
XMLStreamException
public String saveToString(String charSetName) throws XMLStreamException
saveToString
in interface Evidence
charSetName
- The encoding to use.XMLStreamException
public String saveToString() throws XMLStreamException
saveToString
in interface Evidence
XMLStreamException
public void loadFromString(String value, String charSetName) throws UnsupportedEncodingException, XMLStreamException
loadFromString
in interface Evidence
value
- The persisted string value of the evidence.charSetName
- The encoding the evidence was originally saved in.UnsupportedEncodingException
XMLStreamException
public void loadFromString(String value) throws UnsupportedEncodingException, XMLStreamException
loadFromString
in interface Evidence
value
- The persisted string value of the evidemce.UnsupportedEncodingException
XMLStreamException
public void set(Variable variable, Double[] source, int sourceStart, int startTime, int count)
public void set(Node node, Double[] source, int sourceStart, int startTime, int count)
public void set(Variable variable, Double value)
public void set(Node node, Double value, Integer time)
public void set(Variable variable, Double value, Integer time)
public void set(Variable variable, Double value, Integer time, InterventionType interventionType)
set
in interface Evidence
variable
- The variable to set evidence on.value
- The value to set, or null to clear the evidence.time
- The time at which to set evidence, if the node is temporal, otherwise null.interventionType
- Whether or not the evidence is an intervention.public void set(Node node, Double value)
public void setState(Variable variable, Integer state)
public void setState(Variable variable, Integer state, Integer time)
setState
in interface Evidence
variable
- The discrete variable to set evidence on.state
- The zero based index of the state to set, or null to clear the evidence.time
- The time at which to set evidence, if the state belongs to a variable whose node is temporal, otherwise null.public void setState(State state)
public void setState(State state, Integer time, InterventionType interventionType)
public void setState(State state, Integer time)
public void setState(Node node, Integer state)
public void setState(Node node, Integer state, Integer time)
public void setStates(Variable variable, double[] values)
EvidenceType
will not be EvidenceType.SOFT
.public void setStates(Node node, double[] values)
EvidenceType
will not be EvidenceType.SOFT
.public void setStates(Node node, double[] values, Integer time)
EvidenceType
will not be EvidenceType.SOFT
.public void setStates(Variable variable, double[] values, Integer time)
EvidenceType
will not be EvidenceType.SOFT
.Copyright © 2021. All rights reserved.