[Development] Objective measures
Opened this issue · 2 comments
vietly23 commented
Hi,
I'm going through the redesign document, and there is no mention of scoring functions/objective measures. Should we add an abstract class? I'm picturing the decision process as follows:
boolean AlignerClass::shouldChange() {
Evaluator scoringFunction = this.getEvaluator(); // Generic scoring class
Score newScore = scoringFunction.incrementalChange(source, oldTarget, newTarget);
Score incScore = newScore - oldScore;
float probability = calculateProbability(score, currentTemperature);
return (incScore >= 0 or randomReal(gen) <= badProbability);
}
Obviously, the terminology can change, but what should we call the generalized class?
red4711 commented
Yes, this would be a great idea. Pasha and I didn't get that far into the design. As far as SANA 2.0 is concerned, we should flesh out our skeleton design before we do any logic implementation.
As for the naming, you could call it something like ObjectiveFunction.
waynebhayes commented
Viet,
Thanks! Why not just use "measure" as we do in SANA 1?
Then there are two types of measures: those that are objectives (ie., those
that are capable of guiding the alignment---these need to have an
incremental evaluation operator), and those that are measures that we only
compute after-the-fact, either because we don't care to use them to guide
the alignment, or because we can't figure out how to compute them
incremetnally. LCCS is one of the latter: it's a half-decent measure, but
it would be hard to make in incrementally evaluated.... and in any case
it's probably not worth using it as an objective, because it's absolutely
trivial, at least on paper, to create an alignment with an LCCS of 1 if
we're willing to sacrifice other objectives: just swap edges until the the
largest common connected subgraph is the entire smaller graph. This would
be hard to implement the accounting, but would result in alignments that
are otherwise lousy anyway. Thus LCCS is not suited to be an *objective*,
but it's a decent after-the-fact measure to evaluate an existing
alignment. So it's not an objcetive even though it's a measure.
…--
Wayne Hayes, Ph.D.
Director, UCI-SDSU Joint Ph.D. Program in Computational Science (UCI side)
Associate Professor, Computer Science, University of California, Irvine
President Trump is a self-absorbed, self-serving, habitual liar. The former
two are opinion; the latter is fact. Examples (1)
http://foreignpolicy.com/2017/08/18/trumps-lies-about-james-comey-keep-unraveling
. (2) https://www.theguardian.com/us-news/trump-administration
On Thu, May 24, 2018 at 11:38 AM, Linh Tam Chu ***@***.***> wrote:
Yes, this would be a great idea. Pasha and I didn't get that far into the
design. As far as SANA 2.0 is concerned, we should flesh out our skeleton
design before we do any logic implementation.
As for the naming, you could call it something like ObjectiveFunction.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#10 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ATUkjDa1w2Diyi_ikuvV3A1TJajoJsYjks5t1v4XgaJpZM4ULo26>
.