Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## timetable.data
Class Activity

    java.lang.Object
      |
      +--timetable.data.Activity

public class Activity
extends java.lang.Object

Reprezentece jedné aktivity v rozvrhovacím problému.
Má také metody pro přidání a odebrání aktivity z rozvrhu, kontrolu splnění závislostí, zjišťování počtu a seznamu možných umístění v rozvrhu či výpočet počtu kolidujících aktivit při zvolení daného umístění.

Field Summary
`ActivityResources` | `bestSelectedResources` Nejlepší nalezený rozvrh: požadované zdroje
`int` | `bestStart` Nejlepší nalezený rozvrh: začátek aktivity
`boolean` | `canReschedule` Lze již naplánovanou aktivitu přeplánovat ?
`protected Config` | `config` Globální konfigurace rozvrhovače.
`Activity` | `lastRemovedBy` Pro plánování, eviduje která aktivita tuto aktivitu naposledy vyhodila z rozvrhu.
`ActivityResources` | `lastSelectedResources` Vstupní rozvrh: požadované zdroje
`int` | `lastStart` Vstupní rozvrh: začátek aktivity
`int` | `length` Délka trvání aktivity.
`java.lang.String` | `name` Jméno aktivity.
`java.lang.String` | `note` Poznámka.
`int` | `nrRemoves` Kolikrát byla aktivita při plánování vyhozena z rozvrhu.
`protected TimePreference` | `preference` Časové preference aktivity - soft a hard podmínky na jednotlivé časové sloty.
`ActivityResources` | `resources` Zdroje, které aktivita může využívat.
`ActivityResources` | `selectedResources` Zdroje, které aktivita využívá, je-li naplánovaná.
`static int` | `SHORT_CUT_MAX_LENGTH` Maximální délka zkratky jména.
`java.lang.String` | `shortCut` Několika písmená zkratka jména aktivity, pro zobrazení.
`int` | `start` Naplánovaný začátek aktivity.

Constructor Summary
`Activity(Config config)` Konstruktor.
`Activity(Config config, java.lang.String name, int length)` Konstruktor.
`Activity(Config config, java.lang.String shortCut, java.lang.String name, java.lang.String note, int length)` Konstruktor.

Method Summary
`boolean` | `canScheduleAt(int slot, ActivityDependenceGroup dependences)` Zjišťuje, zda-li lze aktivitu naplánovat od daného časového slotu.
`boolean` | `canScheduleWithoutCollisionAt(int slot, ActivityDependenceGroup dependences)` Zjišťuje, zda-li lze aktivitu naplánovat do daného časového slotu bez kolize.
`int` | `countSchedule(ActivityDependenceGroup dependences)` Zjišťuje počet časových slotů, kam lze aktivita naplánovat (i když spůsobí kolizi).
`int` | `countScheduleWithoutCollision(ActivityDependenceGroup dependences)` Zjišťuje, počet míst, kam lze aktivita bez kolize naplánovat.
`int` | `countScheduleWithoutCollisionAt(int slot, ActivityDependenceGroup dependences)` Zjišťuje, počet míst, kam lze aktivita v daném čase naplánovat bez kolize.
`TimePreference` | `getPreference()` Vrátí tabulku časových preferencí
`boolean` | `isConsistent(ActivityDependenceGroup dependences)` Zjišťuje konzistenci naplánování aktivity.
`boolean` | `isScheduled()` Zjišťuje, zda-li je aktivita již naplánovaná.
`protected static Activity` | `read(java.io.ObjectInputStream in, Config config, ResourceGroup allResources)` Načtení aktivity z streamu objektů.
`void` | `remove(Activity removedBy)` Odebrání aktivity z rozvrhu.
`void` | `reset()` Inicializace pomocných proměnných před dalším plánováním.
`void` | `setPreference(TimePreference preference)` Nastaví tabulku časových preferencí
`void` | `schedule(int slot, ActivityResources selectedResorces)` Naplánování aktivity.
`protected void` | `write(java.io.ObjectOutputStream out, ResourceGroup allResources)` Zápis aktivity do objektového streamu.

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### SHORT_CUT_MAX_LENGTH

    public static int SHORT_CUT_MAX_LENGTH

  Maximální délka zkratky jména.

### config

    protected Config config

  Globální konfigurace rozvrhovače.

### shortCut

    public java.lang.String shortCut

  Několika písmená zkratka jména aktivity, pro zobrazení.

### name

    public java.lang.String name

  Jméno aktivity.

### length

    public int length

  Délka trvání aktivity.

### note

    public java.lang.String note

  Poznámka.

### preference

    protected TimePreference preference

  Časové preference aktivity - soft a hard podmínky na jednotlivé časové sloty.

### resources

    public ActivityResources resources

  Zdroje, které aktivita může využívat. Jde o množinu skupin zdrojů.

### start

    public int start

  Naplánovaný začátek aktivity. Pokud je aktivita nenaplánovaná je hodnota této proměnné -1.

### selectedResources

    public ActivityResources selectedResources

  Zdroje, které aktivita využívá, je-li naplánovaná. Proměnná musí mít stejnou strukturu, jako proměnná resources. V případě skupiny alternativních zdrojů, zde tato skupina obsahuje pouze jeden zdroj.

### lastStart

    public int lastStart

  Vstupní rozvrh: začátek aktivity

### lastSelectedResources

    public ActivityResources lastSelectedResources

  Vstupní rozvrh: požadované zdroje

### bestStart

    public int bestStart

  Nejlepší nalezený rozvrh: začátek aktivity

### bestSelectedResources

    public ActivityResources bestSelectedResources

  Nejlepší nalezený rozvrh: požadované zdroje

### lastRemovedBy

    public Activity lastRemovedBy

  Pro plánování, eviduje která aktivita tuto aktivitu naposledy vyhodila z rozvrhu.

### canReschedule

    public boolean canReschedule

  Lze již naplánovanou aktivitu přeplánovat ? (Tedy odebrat z rozvrhu a zařadit na jiné místo.)

### nrRemoves

    public int nrRemoves

  Kolikrát byla aktivita při plánování vyhozena z rozvrhu. Proměnná pomáhá určit nejvíce vadící (nejhůře naplánovatelné) aktivity. Při spuštění řešiče se vždy vynuluje.

Constructor Detail

### Activity

    public Activity(Config config,
                    java.lang.String shortCut,
                    java.lang.String name,
                    java.lang.String note,
                    int length)
             throws TimetableException

  Konstruktor.
  Parameters:
    `config` - konfigurace
    `shortCut` - unikátní zkrácené jmnéno aktivity - pro vizualizaci rozvrhu
    `name` - jméno aktivity
    `note` - poznámka
    `length` - délka trvání aktivity

### Activity

    public Activity(Config config,
                    java.lang.String name,
                    int length)
             throws TimetableException

  Konstruktor.
  Parameters:
    `config` - konfigurace
    `name` - jméno aktivity
    `length` - délka trvání aktivity

### Activity

    public Activity(Config config)
             throws TimetableException

  Konstruktor.
  Parameters:
    `config` - konfigurace

Method Detail

### reset

    public void reset()

  Inicializace pomocných proměnných před dalším plánováním. Automaticky voláno rozvrhovačem. Jde o vynulování počtu vyhození a aktivyty, která naposled tuto aktivitu vyhodila z rozvrhu

### isScheduled

    public boolean isScheduled()

  Zjišťuje, zda-li je aktivita již naplánovaná.
  Returns:
    `true` pokud je aktivita naplánovaná

### getPreference

    public TimePreference getPreference()

  Vrátí tabulku časových preferencí
  Returns:
    tabulka časových preferencí

### setPreference

    public void setPreference(TimePreference preference)

  Nastaví tabulku časových preferencí
  Parameters:
    `preference` - tabulka časových preferencí

### remove

    public void remove(Activity removedBy)

  Odebrání aktivity z rozvrhu. Tedy nastavení začátku na -1 a její odebrání z časových tabulek zdrojů
  Parameters:
    `removedBy` - aktivita, kvůli které se tato aktivita odebírá

### schedule

    public void schedule(int slot,
                         ActivityResources selectedResorces)

  Naplánování aktivity. Tedy nastavení jejího začátku a propagace alokace jednotlivých časových slotů do časových tabulek vybraných zdrojů.
  Všechny konfliktní aktivity již musí být odebrány !!!
  Parameters:
    `slot` - nový začátek aktivity - časový slot
    `selectedResources` - vybrané zdroje

### isConsistent

    public boolean isConsistent(ActivityDependenceGroup dependences)
                         throws TimetableException

  Zjišťuje konzistenci naplánování aktivity. Jmenovitě:
  - Naplánování aktivity nepřesahuje počet možných slotů
  - Naplánování aktivity nepřesahuje daný den
  - Není porušena HARD podmínka v časových preferencích aktivity?
  - Jsou v pořádku časové závislosti, ve kterých je obsažena daná aktivita?
  - Konzistenci vybraných zdrojů s množinou skupin požadovaných zdrojů a jejich správná naalokace
  - Neporušení HARD podmínky v časových preferencích vybraných zdrujů touto aktivitou
  Parameters:
    `dependencies` - časové závislosti mezi aktivitami, null pokud nemají být kontrolovány
  Returns:
    `true` pokud je vše v pořádku

### canScheduleAt

    public boolean canScheduleAt(int slot,
                                 ActivityDependenceGroup dependences)
                          throws TimetableException

  Zjišťuje, zda-li lze aktivitu naplánovat od daného časového slotu. Tedy zda-li existují zdroje, které nemají HARD podmínku v daných slotech. A zdali neexistuje podmínka mezi aktivitami, která by byla porušena a druhá z aktivit by nešla odebrat.
  Parameters:
    `slot` - začátek aktivity, pro který je údaj zjišťován
    `dependencies` - časové závislosti mezi aktivitami, null pokud nemají být uvažovány
  Returns:
    `true` pokud lze aktivita v daném čase naplánovat.

### canScheduleWithoutCollisionAt

    public boolean canScheduleWithoutCollisionAt(int slot,
                                                 ActivityDependenceGroup dependences)
                                          throws TimetableException

  Zjišťuje, zda-li lze aktivitu naplánovat do daného časového slotu bez kolize.
  Parameters:
    `slot` - začátek aktivity, pro který je údaj zjišťován
    `dependencies` - časové závislosti mezi aktivitami, null pokud nemají být uvažovány
  Returns:
    `true` pokud lze aktivita v daném čase naplánovat bez kolize s jinou aktivitou.

### countScheduleWithoutCollisionAt

    public int countScheduleWithoutCollisionAt(int slot,
                                               ActivityDependenceGroup dependences)
                                        throws TimetableException

  Zjišťuje, počet míst, kam lze aktivita v daném čase naplánovat bez kolize.
  Parameters:
    `slot` - začátek aktivity, pro který je údaj zjišťován
    `dependencies` - časové závislosti mezi aktivitami, null pokud nemají být uvažovány
  Returns:
    počet míst, kam lze aktivita v daném čase naplánovat bez kolize s jinou aktivitou.

### countScheduleWithoutCollision

    public int countScheduleWithoutCollision(ActivityDependenceGroup dependences)
                                      throws TimetableException

  Zjišťuje, počet míst, kam lze aktivita bez kolize naplánovat. (Projde všechny sloty)
  Parameters:
    `dependencies` - časové závislosti mezi aktivitami, null pokud nemají být uvažovány
  Returns:
    počet míst, kam lze aktivita naplánovat bez kolize s jinou aktivitou.

### countSchedule

    public int countSchedule(ActivityDependenceGroup dependences)
                      throws TimetableException

  Zjišťuje počet časových slotů, kam lze aktivita naplánovat (i když spůsobí kolizi).
  Parameters:
    `dependencies` - časové závislosti mezi aktivitami, null pokud nemají být uvažovány
  Returns:
    počet slotů, kam lze aktivita naplánovat

### write

    protected void write(java.io.ObjectOutputStream out,
                         ResourceGroup allResources)
                  throws java.io.IOException

  Zápis aktivity do objektového streamu. Nutným parametrem je množina všech zdrojů, ukládané zdroje jsou totiž kódovány jako pořadí v této množině. Předchozí umístění a nejlepší nalezené umístění není zapisováno.
  Parameters:
    `out` - stream
    `alResources` - množina všech zdrojů

### read

    protected static Activity read(java.io.ObjectInputStream in,
                                   Config config,
                                   ResourceGroup allResources)
                            throws java.io.IOException,
                                   java.lang.ClassNotFoundException,
                                   TimetableException

  Načtení aktivity z streamu objektů.
  Parameters:
    `in` - stream
    `config` - globální konfigurace
    `allResources` - množina všech zdrojů
  Returns:
    načtená aktivita

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD