[Jprogramming] graphs
'Michael Day' via Programming
programming at jsoftware.com
Tue Jun 23 19:03:59 UTC 2020
In case of interest - some improved timings, incorporating some tests
inspired by
Erdos & Gallai conditions, and Barnes & Savage, 1997, "Efficient
generation of graphical partitions":
(".;1&ts) '#graphsmdg 7'
+---+----------------+
|342|0.0077907 137088|
+---+----------------+
(".;1&ts) '#graphsmdg 7'
+---+----------------+
|342|0.0078118 141184|
+---+----------------+
(".;1&ts) '#graphsmdg 8'
+----+--------------+
|1213|0.02722 852864|
+----+--------------+
(".;1&ts) '#graphsmdg 10'
+-----+------------------+
|16016|0.356398 1.25327e7|
+-----+------------------+
(".;1&ts) '#graphsmdg 11'
+-----+-----------------+
|59348|1.39803 4.68659e7|
+-----+-----------------+
(".;1&ts) '#graphsmdg 12'
+------+----------------+
|222117|8.14412 3.1122e8|
+------+----------------+
Mike
On 21/06/2020 20:03, 'Michael Day' via Programming wrote:
> OK, Raul - I've spent some time on this - but still managed a covid-19
> walk with Liz, so could be worse.
> I'd already spotted that it would somehow be useful to generate the
> partitions that you're siftinf.
> Luckily, I've got a script for partitions that I've built up over the
> years, including k-partitions of n
> with maximum element <: m. I've modified what I'd called, none too
> helpfully, mmaxmpartz; it
> looks for partitions of size k or less of n, max <: m. The new
> function is m Gpart n
> which produces degree sequences, or Graphic partitions, ie partitions
> which satisfy the Erdos Gallai
> requirement, as stated, eg in
> https://www.combinatorics.org/ojs/index.php/eljc/article/view/v2i1r11/pdf
> It turns out to be quite easy to generate typical graphs from
> partitions, using the Havel-Hakimi algorithm.
> See eg http://szhorvat.net/pelican/hh-connected-graphs.html
> I'd spotted earlier that you only need to go halfway in your loop on
> n. Take any graph with m arcs and
> remove them from the pairs array, size Nx2, to produce an appropriate
> graph with N-m arcs. This saves
> building excessively large partitions. This roughly halves the
> running time, unsurprisingly.
> I've built a cover function, graphsmdg to tie it all together. It
> gets past the killer size of 8 quite nicely,
> but still suffers time and probably space problems around, perhaps 12
> or 13 , so no great gains!!!
> You're welcome to the code, but, for now, I'll just show some time
> and space observations.
> (".; 1&ts) '#graphs 7' NB. Raul's original
> +---+-----------------+
> |342|1.62947 1.67847e8|
> +---+-----------------+
> (".; 1&ts) '#graphsmdg 7' NB. My version
> +---+----------------+
> |342|0.0061999 190208|
> +---+----------------+
> (".; 1&ts) '#graphsmdg 8'
> +----+-------------------+
> |1213|0.0307665 1.25306e6|
> +----+-------------------+
> (".; 1&ts) '#graphsmdg 10'
> +-----+----------------+
> |16016|1.1692 2.26577e7|
> +-----+----------------+
> (".; 1&ts) '#graphsmdg 11' NB. Haven't tried any bigger
> +-----+-----------------+
> |59348|15.3455 9.89311e7|
> +-----+-----------------+
>
> My application of the Erdos-Gallai property is deferred in the
> partition generation;
> it should be possible to anticipate some of its requirements in the
> main construction
> loop, to cut down on the size of intermediate partial partitions.
> Cheers,
> Mike
>
>
> On 20/06/2020 19:00, Raul Miller wrote:
>
>> I want the outputs, though as the \:~@(#/.~)@,"2 idiom expresses, I am
>> primarily concerned with the structure of the underlying graph. (Any
>> of the nodes with the same \:~@(#/.~)@,"2 signature here represent the
>> same graph. And, I personally do not have reason to prefer one over
>> another)
>>
>> Thanks,
>>
>
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
More information about the Programming
mailing list