The assessment of bidirectional heuristic search has been incorrect since it was rst published more than a quarter of a century ago. For quite a long time, this search strategy did not achieve the expected results, and there was a major misunderstanding about the reasons behind it. Although there is still wide-spread belief that bidirectional heuristic search is a icted by the problem of search frontiers passing each other, we demonstrate that this conjecture is wrong. Based on this nding, we present both a new generic approach to bidirectional heuristic search and a new approach to dynamically improving heuristic values that is feasible in bidirectional search only. These approaches are put into perspective with both the traditional and more recently proposed approaches in order to facilitate a better overall understanding. Empirical results of experiments with our new approaches show that bidirectional heuristic search can be performed very e ciently and also with limited memory. These results suggest that bidirectional heuristic search appears to be better for solving certain di cult problems than corresponding unidirectional search. This provides some evidence for the usefulness of a search strategy that was long neglected. In summary, w e show that bidirectional heuristic search is viable and consequently propose that it be reconsidered. Background and IntroductionWhen a problem is represented as a state space graph, solutions to such a problem are paths from a given start node s to some goal target node t. Finding such a solution can be attempted by searching this graph. If the search is guided by heuristic information, it is called a heuristic search. Most of the work on heuristic search for problem solving deals with unidirectional approaches, that start from s heading towards some node t see, e.g., Pearl, 1984. When there is one goal node t explicitly given and the search operators are reversible, bidirectional search is possible, which proceeds both in the forward direction from s to t and in the backward direction from t to s see, e.g., Nilsson, 1980. Strictly speaking, it is not even required that operators have i n verses. It is just necessary that for a given node n the set of parent nodes p i can be determined for which there exist operators that lead from p i to n. Searching backwards means generating parent nodes successively from the goal node t see, e.g., Russell & Norvig, 1995. In other words, backward search implements reasoning about the operators in the backward direction.As an illustrating example of a class of problems where bidirectional search can be usefully applied, consider nding nd a shortest path between two given places s and t using a given map of some city. In case of one-way streets, bidirectional search implements
Especially the early phase of requirements engineering is one of the most important and least supported parts of the software life cycle. Since pure natural language has its disadvantages, and directly arriving at a formal representation is very difficult, a link through a mediating representation is missing. We use hypertext for this purpose, providing also links among requirements statements and the representation of objects in a domain model. This possibility of explicit representation of links allows the users and analysts to make relationships and dependencies explicit and helps to be aware of them. Actually, our approach and the tool supporting it use a combination of various technologies, including also object-oriented approaches and a grain of artificial intelligence (in particular frames). Therefore, inheritance is provided by our tool already in the early phase of requirements engineering. In particular, we found it very useful to view requirements as objects. A key idea is to support the ordering of ideas especially through classification already in the early stages. While our approach is not intended to substitute useful existing techniques emphasizing more formal representations, it can be combined with them.
Software systems and in particular also knowledge-based systems (KBS) become increasingly large and complex. In response to this challenge, software engineering has a long tradition of advocating modularity. This has also heavily influenced object-oriented development. For measuring certain important aspects of modularity, coupling and cohesion metrics have been developed. Metrics have also attracted considerable attention for object-oriented development. For KBS development, however, no such metrics are available yet.This article presents the core of the first metrics suite for KBS development, its coupling and cohesion metrics. These metrics measure modularity in terms of the relations induced between slots of frames through their common references in rules. We show the soundness of these metrics according to theory and report on their usefulness in practice. As a consequence, we propose using our metrics in order to improve KBS development, and developing other important metrics and assessing their theoretical soundness along these lines.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.