Class EuclideanTSP

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--AnimationPanel
                                |
                                +--CompleteEuclideanGraph
                                      |
                                      +--EuclideanTSP
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Serializable

class EuclideanTSP
extends CompleteEuclideanGraph

complete Euclidean graph that makes a tour (a path that starts at one point and goes to each point once returning to the starting point).

See Also:
EuclideanGraph, Serialized Form

Inner classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent, JComponent.ActionStandin, JComponent.IntVector, JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.AWTTreeLock
 
Field Summary
protected  Node tour
          first Node on the tour
 
Fields inherited from class CompleteEuclideanGraph
currentStep, MAX_POINTS, N, points
 
Fields inherited from class AnimationPanel
legend, myVisuals, rect, strokeSize
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, listenerList, paintingChild, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, layoutMgr, listeningBoundsChildren, listeningChildren, ncomponents
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
EuclideanTSP()
          Construct a new EuclideanTSP.
EuclideanTSP(String name)
          Construct a new EuclideanTSP with the specified name.
 
Method Summary
 double getCost()
          Gets the distance of the tour
 int getCurrentStep()
          Gets the current step that the algorithm is at.
 int getTotalSteps()
          Gets the total amount of steps for this algorithm.
 void paintComponent(Graphics g)
          Paints the points and the tour path.
 void setInput(URL inputFile, int rndN, double density)
          Sets the input for this EuclideanTSP.
 void step()
          Does one step of the algorithm (Insert points in same order as file).
 void stepback()
          Does not implement this method.
 
Methods inherited from class AnimationPanel
getHelp, getName, PickVisualization, setHelp
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, alwaysOnTop, checkIfChildObscuredBySibling, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

tour

protected Node tour
first Node on the tour
Constructor Detail

EuclideanTSP

public EuclideanTSP(String name)
Construct a new EuclideanTSP with the specified name. Subclasses of EuclideanTSP should call this in their constructor via super(String).
Parameters:
name - The name of the algorithm for this EuclideanTSP.

EuclideanTSP

public EuclideanTSP()
Construct a new EuclideanTSP. Subclasses of EuclideanTSP should call this in their constructor via super(String).
Method Detail

getCurrentStep

public int getCurrentStep()
Description copied from class: CompleteEuclideanGraph
Gets the current step that the algorithm is at.
Overrides:
getCurrentStep in class CompleteEuclideanGraph
Following copied from class: CompleteEuclideanGraph
Returns:
An int between 0 and getTotalSteps. Default value is this CompleteEuclideanGraph's currentStep field.

getTotalSteps

public int getTotalSteps()
Description copied from class: CompleteEuclideanGraph
Gets the total amount of steps for this algorithm.
Overrides:
getTotalSteps in class CompleteEuclideanGraph
Following copied from class: CompleteEuclideanGraph
Returns:
An int greater than 0. Default value is this CompleteEuclideanGraph's N field.

setInput

public void setInput(URL inputFile,
                     int rndN,
                     double density)
Sets the input for this EuclideanTSP. If inputFile is null then this method creates a random graph with the rndN points. If overridden subclasses of EuclideanTSP should call this method via super.setInput(URL, int, double).
Overrides:
setInput in class CompleteEuclideanGraph
Parameters:
inputFile - the file used to create the graph
rndN - the number of random points generated when inputFile input file is null
density - a double specifying how close adjacent points should be to one another

getCost

public double getCost()
Gets the distance of the tour
Overrides:
getCost in class AnimationPanel
Returns:
a double with the distance

paintComponent

public void paintComponent(Graphics g)
Paints the points and the tour path. Subclasses should call this method if overriden. For example:
       super.paintComponent(g);
 
Overrides:
paintComponent in class CompleteEuclideanGraph

step

public void step()
Does one step of the algorithm (Insert points in same order as file). Subclasses should override this method.
Overrides:
step in class AnimationPanel
Following copied from class: AnimationPanel
See Also:
AnimationPanel.getCurrentStep(), AnimationPanel.stepback()

stepback

public void stepback()
Does not implement this method. Sublclasses should override this method.
Overrides:
stepback in class AnimationPanel
Following copied from class: AnimationPanel
See Also:
AnimationPanel.getCurrentStep(), AnimationPanel.step()


Visualization of Graph Algorithms

Author: Paul Simbi
Started by: Kevin Wayne
2002