-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnode.py
More file actions
39 lines (29 loc) · 984 Bytes
/
node.py
File metadata and controls
39 lines (29 loc) · 984 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# -*- coding: utf-8 -*-
from heuristic import Heuristic
from estimatees import get_time, get_estimation, h_parameters
class Node:
__estimate = Heuristic(estimation_function = get_estimation,
parameters = h_parameters).estimate
def __init__(self, name, task, parent):
self.__name = name
self.__task = task
self.__parent = parent
self.__g_value = get_time(node = name, task = task) + \
parent.__g_value if parent else 0
self.__h_value = Node.__estimate(name, task) if name else 0
self.__f_value = self.__h_value + self.__g_value
self.__depth = self.__parent.depth + 1 if parent else 0
@property
def name(self): return self.__name
@property
def task(self): return self.__task
@property
def parent(self): return self.__parent
@property
def g_value(self): return self.__g_value
@property
def h_value(self): return self.__h_value
@property
def f_value(self): return self.__f_value
@property
def depth(self): return self.__depth