public class Population<I extends Individual>
extends java.lang.Object
implements java.io.Serializable
Constructor and Description |
---|
Population(Community community,
java.lang.String name)
Создать популяцию.
|
Modifier and Type | Method and Description |
---|---|
void |
addWeight(java.lang.String weightName,
Weight<I> weight)
Добавить весовую функцию.
|
boolean |
delete(I individual)
Удалить индивидуума из популяции.
|
I |
drawRandomIndividual()
Получить случайного индивидуума, распределённого равномерно, и удалить его из популяции (выборка без возвращения).
|
I |
drawRandomIndividual(int weightId)
Получить случайного индивидуума, распределённого пропорционально данному весу,
и удалить его из популяции (выборка без возвращения).
|
int |
getActiveSize() |
int |
getSize() |
double |
getTotalWeight(int k)
Получить суммарный вес для данного номера весов.
|
java.lang.String |
name() |
I |
peekRandomIndividual()
Получить случайного индивидуума, распределённого равномерно, но не удалять его из популяции (выборка с возвращением).
|
I |
peekRandomIndividual(int weightId)
Получить случайного индивидуума, распределённого пропорционально данному весу,
но не удалять его из популяции (выборка с возвращением).
|
void |
putIndividual(I individual)
Добавить индивидуума в популяцию.
|
protected I |
removeFromActive(int id)
Удалить индивидуума с данным номером из популяции.
|
public Population(Community community, java.lang.String name) throws PmException
[имя популяции].size
— количество индивидуумов в популяции, в начале текущего шага моделирования (getSize()
);[имя популяции].activeSize
— количество индивидуумов в популяции, еще не принимавших участия во взаимодействиях и событиях,
происходящих на текущем шаге моделирования (getActiveSize()
).community
- сообщество, к которому добавляется эта популяция (не null
}.name
- имя популяции (не null
}.java.lang.NullPointerException
- если один из аргументов равен null
.PmException
- если в сообщество уже добавлена популяция с данным именем.public void addWeight(java.lang.String weightName, Weight<I> weight) throws PmException
weightName
- название веса (не null
).weight
- весовая функция (не null
).PmException
- если в сообществе уже зарегистрирована переменная с именем [имя популяции].[имя веса].public java.lang.String name()
public int getSize()
public int getActiveSize()
public void putIndividual(I individual)
individual
- индивидуум.public I peekRandomIndividual()
public I drawRandomIndividual() throws PmException
PmException
- если нарушены ограничения модели.protected I removeFromActive(int id) throws PmException
id
- номер индивидуума.PmException
- если нарушены ограничения модели.public boolean delete(I individual) throws PmException
individual
- индивидуум.true
, если индивидуум был удалён.PmException
- если индекс индивидуума оказался не корректным.public I peekRandomIndividual(int weightId)
weightId
- идентификатор веса в массиве весов.public I drawRandomIndividual(int weightId) throws PmException
weightId
- идентификатор веса в массиве весов.PmException
- если нарушены ограничения модели.public double getTotalWeight(int k)
k
- номер веса.