|
Subject: Re: [xsl] Word Ladders as an example of a "Find shortest path between two nodes in a graph" problem From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Tue, 27 Nov 2012 04:50:09 -0800 |
On Tue, Nov 27, 2012 at 3:47 AM, Sean B. Durkin <sean@xxxxxxxxxxxxxxxxx>
wrote:
> Dimitre,
>
> In relation to the XPath 3.0 implementation of *my:HammingDistance*, here
> are two alternatives.
>
> _Alternative 1:__
> _
> fn:fold-left(
> 0,
> function($distance, $code-diff)
> {
> if ($code-diff) then $distance + 1
> else $distance
> },
> let $c1 := string-to-codepoints($pStr1),
> $c2 := string-to-codepoints($pStr1) return
> for $i in 1 .. min(count($c1),count($c2)) return
> $c1[$i] - $c2[$i]
> )
>
> __Alternative_ 2:__
>
> _count(
> let $c1 := string-to-codepoints($pStr1),
> $c2 := string-to-codepoints($pStr1) return
> for $i in 1 .. min(count($c1),count($c2)) return
> 1[$c1[$i] eq $c2[$i]]
> )
>
> The count() function in alternative 2 could equally well be sum().
>
> I'm not making any claims about the relative merits of these alternatives
--
> just providing some food for thought.
Sean,
Why do you think these are better than:
<xsl:sequence select=
bcount(map-pairs(f:eq#2,
string-to-codepoints($pStr1),
string-to-codepoints($pStr2)
)
[not(.)]
)
b/>
?
I am planning on what I hope will be significantly optimized Hamming
distance implementation -- probably in a next post.
Cheers,
Dimitre
>
> Faithfully,
> Sean B. Durkin
>
>
>
> On 27/11/2012 4:08 PM, Dimitre Novatchev wrote:
>>
>> Dear XSLT professionals,
>>
>> In case you are interested in solving the Word Ladders problem first
>> formulated by Lewis Carroll, or just in an XSLT solution of the "Find
>> shortest path in graph" problem, you might be interested to have a
>> look at the implementation in my latest blog post:
>>
>>
>>
http://dnovatchev.wordpress.com/2012/11/26/word-ladders-or-how-to-go-from-ang
ry-to-happy-in-20-steps/
>>
>> Any feedback about this implementation and suggestions for further
>> optimization are welcome.
>
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they
write all patents, too? :)
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Word Ladders as an exampl, Sean B. Durkin | Thread | Re: [xsl] Word Ladders as an exampl, Sean B. Durkin |
| Re: [xsl] Word Ladders as an exampl, Dimitre Novatchev | Date | Re: [xsl] Word Ladders as an exampl, Sean B. Durkin |
| Month |