delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2013/10/30/19:44:02

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
Message-ID: <1383176547.2244.49.camel@AMD64X2.fritz.box>
Subject: Re: [geda-user] Ugly tiny bugs
From: Stefan Salewski <mail AT ssalewski DOT de>
To: geda-user AT delorie DOT com
Date: Thu, 31 Oct 2013 00:42:27 +0100
In-Reply-To: <52716E92.2020605@ecosensory.com>
References: <1380306419 DOT 2601 DOT 5 DOT camel AT AMD64X2 DOT fritz DOT box>
<20130927191436 DOT GA10913 AT localhost DOT localdomain>
<1380310315 DOT 2601 DOT 21 DOT camel AT AMD64X2 DOT fritz DOT box>
<524754D7 DOT 4030105 AT ecosensory DOT com>
<1382747277 DOT 3734 DOT 15 DOT camel AT AMD64X2 DOT fritz DOT box>
<526DAD58 DOT 5010309 AT ecosensory DOT com>
<1383163764 DOT 2072 DOT 4 DOT camel AT AMD64X2 DOT fritz DOT box>
<52716E92 DOT 2020605 AT ecosensory DOT com>
X-Mailer: Evolution 3.8.5
Mime-Version: 1.0
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id r9UNhMtH000686
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Wed, 2013-10-30 at 15:39 -0500, John Griessen wrote:
> On 10/30/2013 03:09 PM, Stefan Salewski wrote:
> > http://ssalewski.de/tmp/routerfun-tut1.png
> >
> > Unfortunately many shortcuts in the center of the picture, so there is
> > still some work to do.
> 
> That looks like some rapid progress.

Yes, sometimes progress is fast, but I had two cases where I searched 30
hours for a bug -- one was the "Dijkstra shortest path search" (a non
trivial variant) and one was ordering of the attached nets. And maybe
one more the convex hull of a set of disc in 2d -- I wrote 3 variants
and finally replaced it with CGAL's Apollonius graph, which works really
great. Debugging is of course the greatest problem for such kind of
software.

> How steep is the learning curve to help with it?

Currently it is not a good point for help -- as I already said, I have
to clean up the code now. That is not much fun, but I am the best man to
do it, because I created all that garbage...
 
> Ruby, and what else is needed?

Generally I tried hard to make the code easy and it is easy. So when I
have done the cleanup, it should be possible for other people to
continue the work. Ruby is a fine easy language, very similar but
currently not so popular (in western countries) as Python.

> Does your code use the CGAL library like openSCAD does?

From CGAL I use only the initial constrained Delaunay triangulation and
the Apollonius Graph for the convex Hull of a set of disks in 2d. In
this way I follow the thesis of Tal Dayan, while Anthony B. used the GTS
library very much in his code. So I think his strategy is different. 

One topic for the far future is using steiner trees -- I have not
investigated this yet. The first step for the layer assignment process
is splitting all the multi-terminal nets into single two terminal nets.
Currently I am using a minimum spanning tree based on the euclidean
distance of the terminals. This is very easy, but can be a bad idea for
dense populated boards: There can exists rows of pins on the board,
which block paths on all layers. So we should not use the euclidean
geometrical distance as a measure, but maybe employ a Dijkstra router to
determine all the point to point distances, and maybe we should combine
this with the possibility to insert steiner points. This task has not
high priority for me now, but it is necessary to get a really good
router. For Steiner Trees there exist not many supporting libraries, I
just asked at CGAL mailing list, with no result. There exist
Geo-Steiner, an exact solver, which is a large collection of tools
written in C. And there exists many theoretical papers -- some 30 pages
long and really complicated. My current favorite is

"L. Kou, G. Markowsky, and L. Berman, A fast algorithm for Steiner
trees, Acta Informatica 15 (1981), 141–145."

which is a not too long and complicated description for a heuristic.
But that is no stuff for the next months.

> I'm wanting to understand CGAL so I can add some features to OpenSCAD...
> and then I might be able to help you find bugs...

If someone is interested in this topic, then it may be a good start to
read Tal Dayan's thesis to get a feeling for the problems, maybe
skipping the theoretical proves. You can find that thesis if you do a
google search for "tal dayan ferguson".

Best regards

Stefan Salewski



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019