OK, so I've finally gotten around to looking at the NGrouting source, and I have a few questions. Which are hopefully simple to answer.
First in node/rt/StandardNodeEstimator.java on line 162 ish there is: if (pDNF==0) pDNF = pLegitDNF; Shouldn't this be: if (pDNF<pLegitDNF) pDNF = pLegitDNF; That would seem to make more since, unless 0 indicates something else.
Not sure what this code is trying to achieve, but it looks like it is just attempting to have a more intelligent value for pDNF in the event that the estimator doesn't have any data yet, in which case I think you are right. Matthew?
Second a few lines later there is something like:
double tDNF = etDNF.guessTime(k) * htl;
double pNotConnectFailedOrSearchFailed =
(1 - pConnectFailed) * (1- pSearchFailed);
estimate += pNotConnectFailedOrSearchFailed
* (pDNF - pLegitDNF) * (tDNF + requestFailTime);
Now, if I read this correctly, (I'm assuming that this code is used to obtain the next node to route to for each node in the chain.) We find the probability of a legit DNF and then multiply that by the estimated time to re-request that. (tDNF + requestFailTime). However tDNF is multiplied by HTL, (Which I assume to be the current HTL). The problem with this is that, if we are not the originating node, we are not going to re-request it if it fails. So instead it will be re-requested from the original node. So shouldn't we be trying to estimate how long that would take? IE: double tDNF = etDNF.guessTime(k) * MAXhtl;
Its a toughie, but I don't think so. The whole "cost of a DNF is the time to re-request" was always stretching reality a bit anyway, and this is highlighted by the fact that, yes, if you aren't the originator you won't be the one re-requesting, but even if you are the originator, you won't necessarily re-request the data.
The re-request idea is really just a non-arbitrary way to deal with DNFs within the context of an overall estimate of how long it takes to get data, but it shouldn't be taken *too* seriously.
Given this, I think the existing code is probably ok.
Ian.
_______________________________________________ Devl mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl
