ereinionbw
Class AbstractBWProblem

java.lang.Object
  |
  +--ereinionbw.AbstractBWProblem
All Implemented Interfaces:
BWProblem

public abstract class AbstractBWProblem
extends java.lang.Object
implements BWProblem

Implementazione base di BWProblem che fornisce alcuni metodi di visualizzazione in modo generale, basandosi sulle caratteristiche intrinseche del problema.

Since:
EPR 1.0
Version:
1.1, 26/11/2002
Author:
Ereinion

Constructor Summary
AbstractBWProblem(SearchProblem sp)
           
 
Method Summary
 AWTSetter currentSetter()
          Questo metodo restituisce il setter corrente per questo problema, nel caso si vogliano definire finestre coerenti con il resto del programma.
 void displaySet(AWTSetter setter, int xDim)
          L'applicazione passa al BWProblem le dimensioni sull'asseorizzontale della finestra principale.
 java.awt.Frame getConfigFrame()
          Questo metodo restituisce una finestra di configurazione per questo BWProblem.
abstract  EvalFunction getEvalFunction()
          Questo metodo fornisce la funzione euristica selezionata al momento per il problema.
abstract  java.lang.String[] getProblemDescription()
          Questo metodo fornisce una descrizione delle propriet� del problema.
abstract  java.lang.String getProblemName()
          Questo metodo si limita fornire il nome del BWProblem
 SearchProblem getSearchProblem()
          Questo metodo restituisce il SearchProblem corrente contenuto in questo BWProblem
 SearchStateDisplay getStateDisplayer()
          Questo metodo fornisce un semplice omponente di visualizzazione generico per il problema (tale visualizzazione � basata sul metodo stateToLines() di SearchState.
abstract  void randomizeInitState(int random)
          Questo metodo randomizza lo stato iniziale del problema quando possibile.
 int xDimension()
          Questo metodo restituisce le dimensioni sull'asse X della finestra principale (che tende a occupare la maggior parte dello schermo), nel caso si vogliano definire sottofinestre coerenti.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractBWProblem

public AbstractBWProblem(SearchProblem sp)
Method Detail

getProblemName

public abstract java.lang.String getProblemName()
Description copied from interface: BWProblem
Questo metodo si limita fornire il nome del BWProblem

Specified by:
getProblemName in interface BWProblem
Returns:
il nome di questo BWProblem

getProblemDescription

public abstract java.lang.String[] getProblemDescription()
Description copied from interface: BWProblem
Questo metodo fornisce una descrizione delle propriet� del problema.

Specified by:
getProblemDescription in interface BWProblem
Returns:
le propriert� che drescrivono il problema.

getSearchProblem

public SearchProblem getSearchProblem()
Description copied from interface: BWProblem
Questo metodo restituisce il SearchProblem corrente contenuto in questo BWProblem

Specified by:
getSearchProblem in interface BWProblem
Returns:
il SearchProblem contenuto in questo BWProblem

getEvalFunction

public abstract EvalFunction getEvalFunction()
                                      throws ProblemNotInformed
Description copied from interface: BWProblem
Questo metodo fornisce la funzione euristica selezionata al momento per il problema.
Nota: nel caso ci fossero pi� euristiche disponivili, pu� essere una buona idea aggiungere la possibilit� di selezionare quale andr� usata nella finestra di configurazione

Specified by:
getEvalFunction in interface BWProblem
Returns:
euristica selezionata per il problema.
Throws:
ProblemNotInformed - se non ci sono euristiche disponibili per il problema o se non ne � stata selezionata nessuna.

getConfigFrame

public java.awt.Frame getConfigFrame()
Questo metodo restituisce una finestra di configurazione per questo BWProblem. Tale finestra verr� usata dall'applicazione per interagire con l'utente. AbstractBWProblem implementa una finstra di configurazione predefinita molto semplice (la sola operazione accessibile � una randomizzazione dello stato iniziale basata sulle mosse valide). Per accedere a paremetri di configurazione pi� specifici va reimplementato questo metodo.

Specified by:
getConfigFrame in interface BWProblem
Returns:
il SearchProblem contenuto in questo BWProblem

getStateDisplayer

public SearchStateDisplay getStateDisplayer()
Questo metodo fornisce un semplice omponente di visualizzazione generico per il problema (tale visualizzazione � basata sul metodo stateToLines() di SearchState. Per avere una visualizzazione specializzata del problema va reimplementato questo metodo.

Specified by:
getStateDisplayer in interface BWProblem
Returns:
il SearchStateDisplay per questo BWProblem.
See Also:
SearchState.stateToLines()

displaySet

public void displaySet(AWTSetter setter,
                       int xDim)
Description copied from interface: BWProblem
L'applicazione passa al BWProblem le dimensioni sull'asseorizzontale della finestra principale. Inoltre viene fornito un AWTSetter. Tali parametri possono essere usati per configurare in modo opportuno l'aspetto del SearchStateDisplay e della Frame di configurazione.

Specified by:
displaySet in interface BWProblem
Parameters:
setter - classe per il settaggio dei componenti grafici.
xDim - le dimensioni sull'asse orizzontale della finestra principale dell'applicazione (in pizel)

randomizeInitState

public abstract void randomizeInitState(int random)
Description copied from interface: BWProblem
Questo metodo randomizza lo stato iniziale del problema quando possibile. Se non � possibile non fa niente. � possibile fornire un livello di randomizzazione (generalmente il numero di operatori casuali da applicare). Quando il livello di randomizzazione � impostato a 0, lo stato iniziale dovrebbe essere lasciato invariato.

Specified by:
randomizeInitState in interface BWProblem
Parameters:
random - il livello di randomizzazione dello stato.

currentSetter

public AWTSetter currentSetter()
Questo metodo restituisce il setter corrente per questo problema, nel caso si vogliano definire finestre coerenti con il resto del programma.

Returns:
il setter corrente del problema.

xDimension

public int xDimension()
Questo metodo restituisce le dimensioni sull'asse X della finestra principale (che tende a occupare la maggior parte dello schermo), nel caso si vogliano definire sottofinestre coerenti.

Returns:
la dimensione sull'asse x della finestra principale.