Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 956 Categories, Downloaded 50.336.504 Times

2DPathfinder 0.2

  Date Added: June 14, 2010  |  Visits: 596

2DPathfinder

Report Broken Link
Printer Friendly Version


Product Homepage
Download (92 downloads)



2DPathfinder is a C library for performing fast pathfinding on 2D maps. Its highly portable and easy to use, and well documented. The source code is released under the Lesser General Public License. Theory: Finding paths between locations is one interesting problem that can be solved with the “informed search” theory. A “general search” consists in expanding the start node, placing its successors in a queue, and then examining the next node in the queue. function general_search(start_state, target_state, push_function()) start_node <- make_node(start_state) queue <- start_node loop if empty(queue) then return no_solution current_node <- pop(queue) mark_closed(current_node) if state(current_node) = target_state then return solution for each node in successors(current_node) do if not closed(node) then queue <- push_function(node) end Many different algorithms can be obtained by defining the push_function(). The successors() function depends on the structure that represents the space of the states (a graph, a 2D map, etc). The “ramification factor” (b) is the number of states that can succeed to each state; d is the total number of expansion levels. The complexity of the search is, in the worst case, O(bd). The mark_closed() function is used to avoid to re-consider a node that has already been analyzed. While there are different ways to implement every single search strategy, one of them is always derived from a general search. So the different strategies are determined by how the nodes data structures and algorithms are implemented. For example, a “best-first search” is obtained by maintaining the open nodes sorted by a function that evaluates their states. To estimate the “goodness” of a node, a heuristic function can be used (h()). This is a “greedy” strategy. function best_first_search(start_state, target_state, eval_function()) push_function() <- a function that sorts the nodes using eval_function() return general_search(start_state, target_state, push_function()) A greedy search is generally very efficient, but minimizes only the estimated cost. Another strategy is the “uniform-cost search”, which minimizes the current path cost: it is optimal but very little efficient on large data. The function that returns the current (and effective) path cost is usually called g(). function greedy_search(start_state, target_state) return best_first_search(start_state, target_state, h()) Such a search can also be implemented with “dynamic programming” or with “memoization” (see Dijkstras algorithm). The A* (pronounced “A-star”) search combines the advantages of the greedy and uniform-cost searches: it minimizes the total search cost by using the sum of the two functions as the evaluation function (f()): f = g + h In other words, the f cost of a node is the sum of the path generated to get there from the start node and the path estimated to reach the target. function A_star_search(start_state, target_state) return best_first_search(start_state, target_state, f()) In a 2D map, typical heuristics can be the Euclidean distance, the “Manhattan” distance or the Diagonal distance. After a few benchmarks, I realized that the Diagonal distance performs very well. Whats New in This Release: - A more precise "diagonal" heuristic was adopted..

Requirements: No special requirements
Platforms: Linux
Keyword: Libraries Library Pathfinding Programming
Users rating: 0/10

License: Freeware Size: 19.46 KB
USER REVIEWS
More Reviews or Write Review


2DPATHFINDER RELATED
Libraries  -  Gaia 2011.2
Gaia is free-of-charge library for programming Java Swing client or client / server applications with advanced components (like JTreeTable) and building forms from XML description files. It contains powerful and easy-to-use XML support and also...
1.29 MB  
Programming  -  devkitPro 1.5.7
This project is for homebrew console development tools based on the gnu compiler collection with additional tools and libraries to aid programming each supported console. The windows variants are built with MinGW.
444.26 KB  
Programming  -  Sax for PHP (Sax4PHP) 14
A little PHP library for programming with Sax XML API like in Java.
133.19 KB  
Libraries  -  GODI 20060118
GODI library provides an advanced programming environment for the Objective Caml (OCaml) language. From INRIA (who created OCaml) you can get the OCaml compiler and runtime system, but this is usually not enough to develop applications. You also...
1.5 MB  
Libraries  -  RubyMail 0.17
RubyMail is an email handling library for the Ruby programming language. RubyMail library supports the parsing, modification, and generation of simple and MIME email messages.. Home page of RubyMail, an email library for the Ruby programming...
112.64 KB  
Libraries  -  Math Objects 0.1.3
Math Objects is a math template library written in C++ using generic programming techniques. In order to use the "Math Objects" library, the user only has to include the header files he needs (e.g. Matrix.h, Polynomial.h etc.). In order to...
286.72 KB  
Libraries  -  Simple Sound for Small Devices 089m_20050905
Simple Sound for Small Devices (libsssd) is a simple cross-platform audio library. Simple Sound for Small Devices is designed primarily for games on portable devices such as smart phones, PDAs, and hand-helds. Simple Sound for Small Devices is...
942.08 KB  
Libraries  -  Styx Framework 5.3.1993.76
Styx Framework is a rich collection of classes, libraries, interfaces and tools designed to solve problems with serialization, logging, network communication, configuration, asynchronous programming and so on. There are a lot of routines that...
 
Libraries  -  GLGraphics 20110116 Unstab
GLGraphics is a handy library specially designed for the processing programming language that integrates OpenGL textures and GPU-accelerated effects into the Processing API. This library offers two main classes, GLTexture and GLTextureFilter, and...
 
Programming  -  NetStumbler::Speech 0.01
This module handles interaction with Microsoft speech libraries as I find a speech library for use on linux/mac I will add support for those. EXPORT These functions avaibale for export hasLibrary initializeSpeech speak...
10.24 KB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 4.0.0
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB