multimedia.model
Class MGInfAggregateModel

java.lang.Object
  |
  +--multimedia.model.GenericAggregateModel
        |
        +--multimedia.model.MGInfAggregateModel
All Implemented Interfaces:
RandomGenerator

public class MGInfAggregateModel
extends GenericAggregateModel
implements RandomGenerator


Field Summary
 GenericDiscreteDistribution[] chapeauSigma
           
 int cNb
           
 GenericDistribution[] distributionsPacketSize
           
 GenericDistribution[] distributionsSlot
           
 GenericContinuousDistribution[] distributionsTest
           
 double lambda
           
protected  PoissonDistribution loiPoisson
           
 GenericDiscreteDistribution[] sigma
           
protected static int SLOTI
           
protected static int To
           
 int[] weightSource
           
 
Fields inherited from class multimedia.model.GenericAggregateModel
name, paramsCount
 
Fields inherited from interface statistic.RandomGenerator
random
 
Constructor Summary
MGInfAggregateModel(int[] weight)
          Method MGInfAggregateModel.
MGInfAggregateModel(int srcNumber, GenericFunction[] autoCorr, GenericContinuousDistribution[] distributionsTest, int[] weigth, GenericDistribution distributionSlot, GenericDistribution distributionPacketSize)
          Method MGInfAggregateModel : It's the method which is used generally
MGInfAggregateModel(int srcNumber, GenericFunction[] autoCorr, GenericContinuousDistribution[] distributionsTest, int[] weigth, GenericDistribution distributionSlot, GenericDistribution distributionPacketSize, double[] l)
          MGInfAggregateModel
MGInfAggregateModel(int srcNumber, GenericFunction autoCorr, GenericContinuousDistribution distributionTest, GenericDistribution distributionSlot, GenericDistribution distributionPacketSize)
          Method MGInfAggregateModel.
MGInfAggregateModel(MGInfModel[] models, int[] weight)
          Method MGInfAggregateModel.
MGInfAggregateModel(VideoDefinition[] vds, int[] sourceNumber)
          Method MGInfAggregateModel.
 
Method Summary
 double calculLambdaAggrege(double[] valeur)
          Method calculLambdaAggrege.
 int calculNbClients(int unMoment)
          Method calculNbClients
 double calculT(int idx, GenericDiscreteDistribution[] dds)
          Method calculT
 int getChannelNumber()
           
 java.lang.String getCompleteName()
          public void setLambdas(double[] valeur) throws IllegalArgumentException { if (valeur.length == cNb) { lambdaI = valeur; } else { if (valeur.length>cNb ) { throw new IllegalArgumentException("MGInfAggregate.setLambdas : Too much lambdas value : " + valeur.length); } else { throw new IllegalArgumentException("MGInfAggregate.setLambdas : Not enough lambdas : " +valeur.length ); } } }
 int getDifferentSourceNumber()
           
 double getLambdaAggr()
           
 double getParamDistribution(int distributionType, int sourceNumber, int idx)
          Method getParamDistribution.
 java.lang.Object getParameter(int idx)
          Method getParameter
 GenericDistribution getSpecificDistribution(int distributionType, int sourceNumber)
          getSpecificDistribution
 int getWeightSource(int idx)
           
 int[] getWeightSources()
           
static void main(java.lang.String[] args)
          Methode: Main pour tester la classe
 int mixedDistributionChoice(int distributionType, int sourceNumber)
           
 void setChannelNumber(int channelNumber)
           
 double sigmaAggregateCdf(double x)
           
 double sigmaAggregateMean()
          Method sigmaAggregateMean
 int sourceTypeChoice()
          Method sourceTypeChoice.
 
Methods inherited from class multimedia.model.GenericAggregateModel
getName, getParamsCount, setName, setParamsCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sigma

public GenericDiscreteDistribution[] sigma

chapeauSigma

public GenericDiscreteDistribution[] chapeauSigma

distributionsTest

public GenericContinuousDistribution[] distributionsTest

distributionsSlot

public GenericDistribution[] distributionsSlot

distributionsPacketSize

public GenericDistribution[] distributionsPacketSize

cNb

public int cNb

lambda

public double lambda

weightSource

public int[] weightSource

loiPoisson

protected PoissonDistribution loiPoisson

To

protected static int To

SLOTI

protected static int SLOTI
Constructor Detail

MGInfAggregateModel

public MGInfAggregateModel(int[] weight)
Method MGInfAggregateModel.

Parameters:
weight -

MGInfAggregateModel

public MGInfAggregateModel(int srcNumber,
                           GenericFunction autoCorr,
                           GenericContinuousDistribution distributionTest,
                           GenericDistribution distributionSlot,
                           GenericDistribution distributionPacketSize)
Method MGInfAggregateModel.

Parameters:
srcNumber - it is the number of source
autoCorr - it could be a markovian, SRD or LRD Function
distributionTest - defines the distribution of clients during the entire test
distributionSlot - it's the weigth of each distribution
distributionPacketSize - defines the distribution of packet size

MGInfAggregateModel

public MGInfAggregateModel(int srcNumber,
                           GenericFunction[] autoCorr,
                           GenericContinuousDistribution[] distributionsTest,
                           int[] weigth,
                           GenericDistribution distributionSlot,
                           GenericDistribution distributionPacketSize)
                    throws java.lang.IllegalArgumentException
Method MGInfAggregateModel : It's the method which is used generally

Parameters:
srcNumber - it is the number of source
autoCorr - it could be a markovian, SRD or LRD Function
distributionsTest - defines the distribution of clients during the entire test it could be logNormal, Gamma or Pareto distribution
weigth - it's the weigth of each distribution
Throws:
java.lang.IllegalArgumentException

MGInfAggregateModel

public MGInfAggregateModel(int srcNumber,
                           GenericFunction[] autoCorr,
                           GenericContinuousDistribution[] distributionsTest,
                           int[] weigth,
                           GenericDistribution distributionSlot,
                           GenericDistribution distributionPacketSize,
                           double[] l)
                    throws java.lang.IllegalArgumentException
MGInfAggregateModel

Parameters:
srcNumber - it is the number of source (just to verify that we define enough distribution)
autoCorr - it could be a markovian, SRD or LRD Function. Table length is equal to the number of different source.
distributionsTest - defines the distribution of clients during the entire test it's could be logNormal, Gamma or Pareto distribution
weigth - it's the weigth of each distribution
l - it defines the value of lambda for each source type (in general it's 1)
Throws:
java.lang.IllegalArgumentException

MGInfAggregateModel

public MGInfAggregateModel(MGInfModel[] models,
                           int[] weight)
                    throws java.lang.IllegalArgumentException
Method MGInfAggregateModel.

Parameters:
models -
Throws:
java.lang.IllegalArgumentException

MGInfAggregateModel

public MGInfAggregateModel(VideoDefinition[] vds,
                           int[] sourceNumber)
                    throws java.lang.IllegalArgumentException
Method MGInfAggregateModel.

Parameters:
vds -
Throws:
java.lang.IllegalArgumentException
Method Detail

calculNbClients

public int calculNbClients(int unMoment)
                    throws java.lang.IllegalArgumentException
Method calculNbClients

Parameters:
unMoment -
java.lang.IllegalArgumentException

calculT

public double calculT(int idx,
                      GenericDiscreteDistribution[] dds)
               throws java.lang.IllegalArgumentException
Method calculT

Parameters:
idx - it correspond to the number of the source type
dds - it's a discrete distribution table => sigma, chapeauSigma or poissonDistribution table
java.lang.IllegalArgumentException

sourceTypeChoice

public int sourceTypeChoice()
Method sourceTypeChoice.

Returns:
int : a sourceType number (between 1 et weightSource.length(=> number of different source) )

mixedDistributionChoice

public int mixedDistributionChoice(int distributionType,
                                   int sourceNumber)

getParameter

public java.lang.Object getParameter(int idx)
Method getParameter

Parameters:
idx - it's an integer between 0 and 7 0: number of sources 1: sigma's table 2: chapeausigma's table 3: distribution table 4: weigth of each distribution table 5: distribution of packets in slots 6: distribution of packet size in slots 7: aggregated lambda 8: number of different sources

getSpecificDistribution

public GenericDistribution getSpecificDistribution(int distributionType,
                                                   int sourceNumber)
getSpecificDistribution

Parameters:
distributionType - it's an integer between 0 and 2 0: distributionTest 1: distributionsSlot 2: distributionsPacketSize
sourceNumber - it's an integer between 0 and cNb-1 => it corresponds to the source number Except in the case: there is 0 source of a type!!! (just to compare with a MGINf)

getParamDistribution

public double getParamDistribution(int distributionType,
                                   int sourceNumber,
                                   int idx)
Method getParamDistribution.

Parameters:
distributionType -
sourceNumber -
idx -
Returns:
double

sigmaAggregateMean

public double sigmaAggregateMean()
Method sigmaAggregateMean

Returns:
double which corresponds to: E(sigmaAggregate) = w1*E(sigma1) + w2*E(sigma2) + ... + wN*E(sigmaN) where wI is the weigth of each sigma distribution => distributionWeigthI / distributionNumber

calculLambdaAggrege

public double calculLambdaAggrege(double[] valeur)
Method calculLambdaAggrege. LAMBDA = sum(LAMBDAi,1,N) where N=srcNumber and LAMBDA1=1 => LAMBDAN = N*LAMBDAi = N

Parameters:
valeur -
Returns:
double

getWeightSources

public int[] getWeightSources()

getWeightSource

public int getWeightSource(int idx)

getChannelNumber

public int getChannelNumber()

setChannelNumber

public void setChannelNumber(int channelNumber)

getLambdaAggr

public double getLambdaAggr()

getDifferentSourceNumber

public int getDifferentSourceNumber()

sigmaAggregateCdf

public double sigmaAggregateCdf(double x)

getCompleteName

public java.lang.String getCompleteName()
public void setLambdas(double[] valeur) throws IllegalArgumentException { if (valeur.length == cNb) { lambdaI = valeur; } else { if (valeur.length>cNb ) { throw new IllegalArgumentException("MGInfAggregate.setLambdas : Too much lambdas value : " + valeur.length); } else { throw new IllegalArgumentException("MGInfAggregate.setLambdas : Not enough lambdas : " +valeur.length ); } } }


main

public static void main(java.lang.String[] args)
Methode: Main pour tester la classe