Exemplo n.º 1
0
 def load_network(network_file, external = False):
     print('\nCargando red...')
     if external:
         network = XMLBIF.read(network_file)
     else:
         network = XMLBIF.load_preset_network(network_file)
     CLI.algorithm = None
     print('Red bayesiana \"' + network.name + '\"' + ' cargada.')
     CLI.network_operations(network)
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.

import utils.XMLBIF as XMLBIF

from inference.Query import Query
from inference.EvidenceVariable import EvidenceVariable
from inference.algorithms.variable_elimination.VariableElimination import VariableElimination

network = XMLBIF.load_preset_network('win95pts')

ve = VariableElimination(network)
ve.heuristic = 'min-fill'
ve.mode = 'brief'

# Consultas predefinidas

# Queremos ver la probabilidad de que sea la velocidad de la red la que este haciendo
# que las impresiones sean demasiado lentas sabiendo que la red esta correctamente configurada.

evidence_variable_1 = EvidenceVariable(network.get_node_by_name('Too Slow'), 'Too Long')
evidence_variable_2 = EvidenceVariable(network.get_node_by_name('Network Configuration'), 'Correct')

query = Query(network.get_node_by_name('Net Speed'), [evidence_variable_1, evidence_variable_2])
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.

import utils.XMLBIF as XMLBIF

from inference.Query import Query
from inference.EvidenceVariable import EvidenceVariable
from inference.algorithms.variable_elimination.VariableElimination import VariableElimination

network = XMLBIF.load_preset_network("fire_alarm")

"""
# Consulta predefinida

evidence_variable_1 = EvidenceVariable(network.get_node_by_name('report'), 'T')
evidence_variable_2 = EvidenceVariable(network.get_node_by_name('tampering'), 'T')

query = Query(network.get_node_by_name('fire'), [evidence_variable_1, evidence_variable_2])
"""

# Consulta aleatoria
query = Query.random(network, 2)

ve = VariableElimination(network)
ve.heuristic = "random"
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.

import utils.XMLBIF as XMLBIF

from inference.Query import Query
from inference.EvidenceVariable import EvidenceVariable
from inference.algorithms.variable_elimination.VariableElimination import VariableElimination

network = XMLBIF.load_preset_network('simple_diagnosis')

"""
# Consulta predefinida

evidence_variable_1 = EvidenceVariable(network.get_node_by_name('Influenza'), 'T')
evidence_variable_2 = EvidenceVariable(network.get_node_by_name('Fever'), 'F')
evidence_variable_3 = EvidenceVariable(network.get_node_by_name('Wheezing'), 'T')

query = Query(network.get_node_by_name('Smokes'), [evidence_variable_1, evidence_variable_2, evidence_variable_3])
"""

# Consulta aleatoria
query = Query.random(network, 3)

ve = VariableElimination(network)
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.

import utils.XMLBIF as XMLBIF

from inference.Query import Query
from inference.EvidenceVariable import EvidenceVariable
from inference.algorithms.variable_elimination.VariableElimination import VariableElimination

network = XMLBIF.load_preset_network('electrical_diagnosis')

"""
# Consulta predefinida

evidence_variable_1 = EvidenceVariable(network.get_node_by_name('w2'), 'live')
evidence_variable_2 = EvidenceVariable(network.get_node_by_name('p1'), 'T')

query = Query(network.get_node_by_name('w0'), [evidence_variable_1, evidence_variable_2])
"""

# Consulta aleatoria
query = Query.random(network, 2)

ve = VariableElimination(network)
ve.heuristic = 'min-degree'