Git Product home page Git Product logo

graph-theory-algorithms-book's Introduction

Algorithmic Graph Theory
http://code.google.com/p/graph-theory-algorithms-book/

Copyright (C) 2010 David Joyner <[email protected]>
Copyright (C) 2009--2011 Minh Van Nguyen <[email protected]>
Copyright (C) 2010 Nathann Cohen <[email protected]>

A GNU-FDL [1] book on algorithmic graph theory by David Joyner [2],
Minh Van Nguyen [3], and Nathann Cohen [4]. This is an introductory
book on algorithmic graph theory. Theory and algorithms are
illustrated using the Sage [5] open source mathematics software. See
the file LICENSE for the licensing terms of the book.

The book is written using LaTeX [6] and TikZ/PGF [7]. It uses
Mercurial [8] as its version control system. To clone the latest
revision of the book, ensure you have Mercurial installed on your
system. Then issue any of the following commands from your command
line:

$ hg clone https://graph-theory-algorithms-book.googlecode.com/hg/ graph-theory
$ hg clone http://graph-theory-algorithms-book.googlecode.com/hg/ graph-theory

To compile a PDF version of the book, run the command

$ make

To delete junk files resulting from the compilation process, run

$ make clean

In fact, a successful compilation should automatically delete any junk
files resulting from the compilation process. The file util.sh is a script
that interfaces with utilities under the directory bin/.


FAQ
===

(1) Question: I'm getting error messages to the following effect when
    compiling the book:

    ! TeX capacity exceeded, sorry [main memory size=3000000].

    What's going on?

    Answer: This might mean that you need to increase TeX's main memory
    because the book uses pgfplots for generating plots of large datasets. To
    increase TeX's main memory, you need to locate the active texmf.cnf file
    for your TeX/LaTeX distribution. For example, on Ubuntu you can do so via
    the command

    $ kpsewhich texmf.cnf

    Then open the file as root with the command

    $ sudo emacs /usr/share/texmf/web2c/texmf.cnf

    which will most likely prompt you for an administrator password. Enter the
    password and search for the line that begins with something such as

    main_memory = 3000000 % words of inimemory available; also applies to inimf&mp

    Change the value "3000000" to "10000000", i.e. change from 3 million to
    10 million. Save your edit and quit your editor. Then issue the command

    $ sudo fmtutil-sys --all

    and compile the book again.


[1] http://www.gnu.org/copyleft/fdl.html
[2] http://www.wdjoyner.org
[3] http://sage.math.washington.edu/home/mvngu/
[4] http://www-sop.inria.fr/members/Nathann.Cohen
[5] http://www.sagemath.org
[6] http://www.latex-project.org
[7] http://sourceforge.net/projects/pgf
[8] http://mercurial.selenic.com

graph-theory-algorithms-book's People

Contributors

wdjoyner avatar nathanncohen avatar

Watchers

James Cloos avatar  avatar

graph-theory-algorithms-book's Issues

Add the A* algo to path finding

you might want to add the A* algo to the book on least cost path finding, 
especially i geo-scenarios, http://en.wikipedia.org/wiki/A*.

Dijkstra is a special case of A* so it should fit well ...

/peter

Original issue reported on code.google.com by [email protected] on 19 Mar 2010 at 1:17

Grammer/Sentence formation

Affects: Revision 620, Page 5

I think the sentence -

"A directed graph or digraph G is a graph such that each of whose edges is 
directed."

should be re-written as

"A directed graph or digraph G is a graph such that each of its edges is 
directed."

OR

"A directed graph or digraph G is a graph each of whose edges is directed."

Original issue reported on code.google.com by pravinp on 26 Nov 2010 at 11:58

Grammatical error in Dijkstra's Algorithm

Version: latest-r130
Chapter 2, page 30, Algorithm 2.3: Dijkstra's Algorithm

The output line says:
Output: A shortest path from v0 to an vertex in V .

It should say:
Output: A shortest path from v0 to a vertex in V .

Original issue reported on code.google.com by [email protected] on 28 Mar 2010 at 12:02

Terse Definition 1.1: Reword the definition of a graph

The definition of a graph read:  

"A graph G=(V,E) is an ordered pair of finite sets. Elements of V are called 
vertices or nodes, and elements of E\subseteq V^{(2)}are called edges or arcs." 

The reference  E\subseteq V^{(2)} was not immediately obvious to me.  Maybe 
rewriting

E\subseteq V^{(2)} 

to 

E\subseteq V\times V (where V\times V is the cross product).

As a non-mathematician, I had a hard time following what was meant by 
E\subseteq V^{(2)}.

BTW: Thank you for putting this book out under the GPL, I have wanted to learn 
more graph theory for years.  I am going through your book now.

Original issue reported on code.google.com by [email protected] on 2 Apr 2011 at 7:42

algorithm2e 4.01

If you 'make' the PDF usign LiveTeX 2010, that include the 4.01 version of 
algorithm2e, you will get an 'Undefined control sequence' error. That is 
because some comands change to camel case notation (\incmargin becomes 
\IncMargin, etc)

To compile the book using that version, we need to change in 
'style/mystyle.sty' this line:

\usepackage[algochapter,linesnumbered,noend,ruled]{algorithm2e}

to:

\usepackage[algochapter,linesnumbered,noend,ruled,oldcommands]{algorithm2e}

Original issue reported on code.google.com by [email protected] on 18 Nov 2010 at 5:15

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.