Explore chapters and articles related to this topic
Solving Partially Observable Environments with Universal Search Using Dataflow Graph-Based Programming Model
Published in IETE Journal of Research, 2021
Swarna Kamal Paul, Parama Bhaumik
Programs are evaluated in lazy style. The execution starts from the terminal node of a program and all the parent nodes are called recursively until the initial node is reached. Memoization is applied on each node and the output value is cached during the course of the execution. The output value is copied on respective edges on each subsequent call. As illustrated in Figure 2(a), execution starts from node h and corresponding parent nodes are called recursively. After execution of each node, output data is copied over outgoing edges. Atomic primitive functions are directly evaluated by applying the functions on the arguments whereas higher-order functions are evaluated by substitution and reduction. Higher-order functions receive another function as argument and apply some form of computation on the function received as input data. Nodes having stored function as a program subgraph are also evaluated by substitution and reduction strategy. Figure 2(b) illustrates execution by substitution and reduction where node f is substituted with its function definition – and reduced by evaluation.