The N-Queens problem is a commonly used example in computer science. There are numerous approaches proposed to solve the problem. We introduce several definitions of the problem, and review some of the algorithms. We classify the algorithms for the N-Queens problem into 3 categories. The fmt category cnmpriaca the algorithms generating all the solutions for a given N. The algorithms in the second category are designed to generate otdy the fundamental solutions [34]. The algorithms in the last category generate only one or several solutions but not necessarily all of them. O. INTRODUCTIONThe N-queens problem, which was germinated from the 8-Queensproblem, has been studied for more than a century [14,15,17]. The problem introduced by a chess player Max Bazzel in 1848, and 2 years later, in 1850, it was suggested in Illustrirte Zeitung [15,17]. Ever since 1850, the problem attracted the attention of several famous mathematicians including Gauss [14,15], Polya [22], and Lucaa [19]. During the last three decades, the problem is discussed in the context of computer science and used as an example of backtracking algorithms [5,16,30], permutation generation [5,25,26,27], divide and conquer paradigm [1], program development methodology [21,35], constraint satisfaction problems [20,24], integer programming [13], specification [28], and neural networks [31]. Some practical applications of the N-Queens problem such as parallel memory storage scheme's [9], VLSI testing, traffic control [29], and deadlock prevention [32], are also mentioned in the literature,Permission to copy without fee all or part of this material ia granted provided that tha copias are not mada or diatributad for direct commercial advantage, the ACM copyright notice and the title of tha publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinary. To copy otharwise, or to rapublish, requires a fee and/or specific permission. 01992ACM 089791 -472-4/92/0002/0099 $1.50In this paper, we introduce several definitions of the problem, and review some of the algorithms related to the N-Queens problem. We classify the algorithms for the NQueena problem into 3 categories. The first category comprises the algorithms generating all the solutions for a given N. The algorithms m the second category are designed to generate only the fimdamtmtal solutions. The algorithms in the last category generate ordy one or several solutions but not necessarily all of them.
Due to the wicked nature of software development, it is imperative to take into consideration bounded rationality and opportunism of the agents involved in, when managing software development projects. These two concepts, which are at the foundations of transaction cost economics, have not yet been studied in relation to software engineering. In this paper, we develop transaction cost economics approach to software engineering, specifically as it relates to governance.This approach enables us better understand the strengths and weaknesses of top-down and bottom-up processes, and outlines a method to be used in choosing amongst alternative governance structures given relevant project characteristics.
This article leverages the findings of the transaction cost economics field, and proposes a simple theory and associated vocabulary to serve as a foundation for a unified theory of software engineering. It characterizes software engineering as a set of transactions organized under three governance structures. The theory explains the strengths and weaknesses of these governance structures in relation to asset specificity. It takes into account the recursive nature of the notions in software engineering, and applies uniformly to various contexts at different levels of granularity. The theory not only provides an explanatory framework for some of the propositions given in the software engineering literature, but also reveals the boundaries of their applicability.
This article leverages the findings of the transaction cost economics field, and proposes a simple theory and associated vocabulary to serve as a foundation for a unified theory of software engineering. The theory characterizes software engineering as a set of transactions organized under a spectrum of three governance structures (top-down, bottom-up and reuse), and explains the strengths and weaknesses of these governance structures in relation to asset specificity and uncertainty. It takes into account the recursive nature of the notions in software engineering, and applies uniformly to various contexts at different levels of granularity. It sheds light both on the technical and on the human aspects of software engineering through a unified explanatory framework, without requiring a need to assemble different approaches to address each. The theory not only explains some of the propositions given in the software engineering literature but also reveals the boundaries of their applicability.
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.