br.usp.ime.mac5855.knn
Class PonderadorInverso

java.lang.Object
  extended by br.usp.ime.mac5855.knn.PonderadorInverso
All Implemented Interfaces:
PonderadorKnn

public final class PonderadorInverso
extends java.lang.Object
implements PonderadorKnn

Ponderador que pondera os valores aplicando-lhes o inverso, ou seja, f(x)=1/x. Na verdade, para evitar o prolema de divisão por zero, e para se regular melhor a escala, a função usada é f(x)=N/(x+C), sendo que tanto o valor de N (numerador) e de C (constante do denominador) podem ser definidos. O valor padrão para o numerador é 1, e para a constante do denominador é 0.1.

Author:
Victor Williams Stafusa da Silva

Constructor Summary
PonderadorInverso()
          Cria um PonderadorInverso utilizando os valores padrão para o numerador e para a constante do denominador.
PonderadorInverso(double numerador, double constanteDenominador)
          Cria um PonderadorInverso utilizando os valores do numerador e da constante do denominador informados.
 
Method Summary
 double getConstanteDenominador()
          Obtém a constante do denominador a ser usada como o valor C na fórmula f(x)=N/(x+c) usada por este ponderador.
 double getNumerador()
          Obtém o numerador a ser usado como o valor N na fórmula f(x)=N/(x+c) usada por este ponderador.
 double ponderar(double valor)
          Pondera um valor representando uma distância, calculando o seu inverso.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PonderadorInverso

public PonderadorInverso()
Cria um PonderadorInverso utilizando os valores padrão para o numerador e para a constante do denominador.


PonderadorInverso

public PonderadorInverso(double numerador,
                         double constanteDenominador)
Cria um PonderadorInverso utilizando os valores do numerador e da constante do denominador informados.

Parameters:
numerador - O valor do numerador informado.
constanteDenominador - A constante do denominador informada.
Throws:
java.lang.IllegalArgumentException - Se qualquer um dos parâmetros for negativo.
Method Detail

getNumerador

public double getNumerador()
Obtém o numerador a ser usado como o valor N na fórmula f(x)=N/(x+c) usada por este ponderador.

Returns:
O valor do numerador.

getConstanteDenominador

public double getConstanteDenominador()
Obtém a constante do denominador a ser usada como o valor C na fórmula f(x)=N/(x+c) usada por este ponderador.

Returns:
A constante do denominador.

ponderar

public double ponderar(double valor)
Pondera um valor representando uma distância, calculando o seu inverso. Este valor tende ao infinito quanto menor for a distância e tende a zero quanto maior for a distância.

Specified by:
ponderar in interface PonderadorKnn
Parameters:
valor - O valor a ser ponderado.
Returns:
O valor após a ponderação. Aproximadamente o inverso do valor dado, multiplicado por alguma constante.