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

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

Serving Software Downloads in 976 Categories, Downloaded 29.981.147 Times

AI::Menu 0.01

  Date Added: May 24, 2010  |  Visits: 631


Report Broken Link
Printer Friendly Version

Product Homepage
Download (72 downloads)

AI::Menu is a Perl object that generates Tree::Nary objects from directed graphs or a description of the function set. The algorithm is not very efficient (approximately O(F^6), F being the number of functions). It is also not quite as intelligent as it should be. You should cache the results instead of repeatedly calculating them. As the algorithm is optimized or more efficient algorithms are found, they will be incorporated. The interface for generating the trees should not change too much. The resulting object might become a Tree::Nary object encased in an AI::Menu object. SYNOPSIS use AI::Menu; my $factory = new AI::Menu::Factory; my $menu = $factory->generate($hash_of_functions); my $menu = $factory->generate($hash_of_functions, $hash_of_categories); my $menu = $factory->generate($graph); METHODS All of the following methods (except generate) are available in the new function when creating the AI::Menu::Factory object. generate This function does some housekeeping before calling a configurable module to generate the tree. If called with a single hash reference, the hash is assumed to be a list of functions mapping to array references containing a list of categories. It is further assumed that the sets of function names and category names are disjoint. A closure is created for the leaf_q function which returns true if its argument is a key in the hash reference. The complete graph is created from this single hash reference: if a category can reach another category through a function, then an edge is inserted between the two categories. This edge is bidirectional. If called with two hash references, the first hash is treated as before, but the second hash reference is considered a mapping of categories to categories. This second hash is used instead of automatically generating the information from the first hash. If called with a single object that is not a hash reference, then the argument is considered a graph object (usually of Graph::Directed). The leaf_q function will need to be defined. leaf_q This function returns true if the argument represents a function (leaf in the graph). It returns false if the argument represents a category. This may be set either when the AI::Menu::Factory object is created or through a method call. The method call with no argument returns the current function. maker This is the package used to create the menu from the graph. The following call is made: my $menu = $self -> {maker} -> new( width => $self->{width}, weight_f => $self -> {weight_f}, leaf_q => $leafq, ); return $menu -> generate_tree($g, $optscore); The $optscore value is the score for the optimum tree. Once a tree is found with this score, searching should stop. new Creates an AI::Menu::Factory object. Optional arguments are key/value pairs taken from this list of methods except for generate and new. weight_f This function is used to calculate the edge weights in the graph. It is called with four arguments: the object generating the tree, the graph object, the originating vertex, the destination vertex. The function should return undef for an infinite weight. width This is the desired number of children per node. The optimal number (and default) is three..

Requirements: No special requirements
Platforms: Linux
Keyword: Ai Aimenu Directed Graphs Function Generate Graph Hash Libraries Menu Object Programming
Users rating: 0/10

License: Freeware Size: 6.14 KB
Libraries  -  Graph::ModularDecomposition 0.13
Graph::ModularDecomposition is a Perl module for modular decomposition of directed graphs. SYNOPSIS use Graph::ModularDecomposition qw(pairstring_to_graph tree_to_string); my $g = new Graph::ModularDecomposition; my $h =...
13.31 KB  
Miscellaneous  -  Lazy Traversal of Directed Graphs 1.1
The os.path.walk routine that ships with the python standard library is limited to traversing the file system tree. This script allows you to realize a generic traversal for arbitrary (directed) graphs with support for recursion limits.
Programming  -  igraph for Linux 0.5.4
igraph is a free software package for creating and manipulating undirected and directed graphs. It includes implementations for classic graph theory problems like minimum spanning trees and network flow, and also implements algorithms for some...
1.08 MB  
Password Generators  -  Appnimi MD5 Hash Generator 1.0
Appnimi MD5 Hash Generator is designed to let you generate MD5 Hash for any files. It uses a simple user interface to select the files. It can be used to verify MD5 Hash of any files downloaded from the internet. Features of Appnimi MD5 Hash...
1.55 MB  
Education  -  GraphSight Junior 1.0
GraphSight Junior is an easy to use freeware handy 2D math-graphing program. It was originally designed to help students and teachers satisfy their day-after-day math plotting needs. It makes it easy to plot and explore common Y(X) = F(X)...
393 KB  
Libraries  -  Boost::Graph 1.4
Boost::Graph is a Perl interface to the Boost-Graph C++ libraries. SYNOPSIS use Boost::Graph; # Create an empty instance of a Graph my $graph = new Boost::Graph(directed=>0, net_name=>Graph Name, net_id=>1000); # add edges...
2.4 MB  
Graphics Viewers  -  AbuGraph 7.10.14
AbuGraph is a freely available Java application for the layout and visualization of directed graphs. Bound to a TCP port, it supports dynamic graph creation receiving commands from a telnet console or another third party application.
448.49 KB  
Science  -  MSTParser rc
MSTParser is a non-projective dependency parser that searches for maximum spanning trees over directed graphs. Models of dependency structure are based on large-margin discriminative training methods. Projective parsing is also supported.
1.45 MB  
Programming  -  JPeerGen 1.0
JPeerGen is a developer utility to generate C++ source for Java object peers that interact using JNI. These peers can then implement object-specific native code as well as be used as entry points for calling Java from C++ code.
141.03 KB  
Miscellaneous  -  Extensible object to XML converter 1.0
This function generates XML for any Python object through recursive functions. It is easy to add specific handlers for your own object types for more complex output options.
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by, it is used to describe information about an application such as the name and...
327.68 KB  
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  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB  
Libraries  -  wolfSSL 3.12.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...
2.73 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