From a37f03075675e2063467abf05a21d486613d971c Mon Sep 17 00:00:00 2001 From: Marcel Kronfeld Date: Thu, 25 Feb 2010 10:23:09 +0000 Subject: [PATCH] Cosmetics (Moving F21Problem to F15) --- src/eva2/gui/Plot.java | 142 ++++++++-------- src/eva2/gui/TopoPlot.java | 32 +++- src/eva2/server/go/problems/F15Problem.java | 157 ++++++++---------- src/eva2/server/go/problems/F21Problem.java | 77 --------- src/eva2/server/go/problems/FunnyProblem.java | 113 +++++++++++++ 5 files changed, 279 insertions(+), 242 deletions(-) delete mode 100644 src/eva2/server/go/problems/F21Problem.java create mode 100644 src/eva2/server/go/problems/FunnyProblem.java diff --git a/src/eva2/gui/Plot.java b/src/eva2/gui/Plot.java index 522feff1..d0b05087 100644 --- a/src/eva2/gui/Plot.java +++ b/src/eva2/gui/Plot.java @@ -98,22 +98,8 @@ public class Plot implements PlotInterface, Serializable { m_PlotName = PlotName; init(); } - /** - * - */ - public void init() { - m_Frame = new JEFrame("Plot: "+m_PlotName); - BasicResourceLoader loader = BasicResourceLoader.instance(); - byte[] bytes = loader.getBytesFromResourceLocation(EvAInfo.iconLocation); - try { - m_Frame.setIconImage(Toolkit.getDefaultToolkit().createImage(bytes)); - } catch (java.lang.NullPointerException e) { - System.err.println("Could not find EvA2 icon, please move resources folder to working directory!"); - } - m_ButtonPanel = new JPanel(); - m_PlotArea = new FunctionArea(m_xname,m_yname); - m_ButtonPanel.setLayout( new FlowLayout(FlowLayout.LEFT, 10,10)); + protected void installButtons(JPanel buttonPan) { JButton ClearButton = new JButton ("Clear"); ClearButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @@ -142,8 +128,8 @@ public class Plot implements PlotInterface, Serializable { } }); - JButton SaveJPGButton = new JButton ("Save as PNG..."); - SaveJPGButton.addActionListener(new ActionListener() { + JButton saveImageButton = new JButton ("Save as PNG..."); + saveImageButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { Robot robot = new Robot(); @@ -152,31 +138,31 @@ public class Plot implements PlotInterface, Serializable { BufferedImage bufferedImage = robot.createScreenCapture(area); JFileChooser fc = new JFileChooser(); if (fc.showSaveDialog(m_Frame) != JFileChooser.APPROVE_OPTION) return; -// System.out.println("Name " + outfile); + // System.out.println("Name " + outfile); try { /* Old version - FileOutputStream fos = new FileOutputStream(fc.getSelectedFile().getAbsolutePath()+".jpeg"); - BufferedOutputStream bos = new BufferedOutputStream(fos); - JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos); - encoder.encode(bufferedImage); - bos.close();*/ + FileOutputStream fos = new FileOutputStream(fc.getSelectedFile().getAbsolutePath()+".jpeg"); + BufferedOutputStream bos = new BufferedOutputStream(fos); + JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos); + encoder.encode(bufferedImage); + bos.close();*/ File file = new File(fc.getSelectedFile().getAbsolutePath()+".png"); ImageIO.write(bufferedImage, "png", file); /* JPEG version with javax.imageio - float compression = 0.8f; - FileImageOutputStream out = new FileImageOutputStream(new File(fc.getSelectedFile().getAbsolutePath()+".jpeg")); - ImageWriter encoder = (ImageWriter)ImageIO.getImageWritersByFormatName("JPEG").next(); - JPEGImageWriteParam param = new JPEGImageWriteParam(null); + float compression = 0.8f; + FileImageOutputStream out = new FileImageOutputStream(new File(fc.getSelectedFile().getAbsolutePath()+".jpeg")); + ImageWriter encoder = (ImageWriter)ImageIO.getImageWritersByFormatName("JPEG").next(); + JPEGImageWriteParam param = new JPEGImageWriteParam(null); - param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); - param.setCompressionQuality(compression); + param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); + param.setCompressionQuality(compression); - encoder.setOutput(out); - encoder.write((IIOMetadata) null, new IIOImage(bufferedImage,null,null), param); + encoder.setOutput(out); + encoder.write((IIOMetadata) null, new IIOImage(bufferedImage,null,null), param); + + out.close(); + */ - out.close(); -*/ - } catch (Exception eee) { System.err.println("Error on exporting PNG: " + eee.getMessage()); } @@ -187,14 +173,34 @@ public class Plot implements PlotInterface, Serializable { } }); - m_ButtonPanel.add(ClearButton); - m_ButtonPanel.add(LOGButton); - m_ButtonPanel.add(DumpButton); - m_ButtonPanel.add(ExportButton); -// m_ButtonPanel.add(PrintButton); -// m_ButtonPanel.add(OpenButton); -// m_ButtonPanel.add(SaveButton); - m_ButtonPanel.add(SaveJPGButton); + buttonPan.add(ClearButton); + buttonPan.add(LOGButton); + buttonPan.add(DumpButton); + buttonPan.add(ExportButton); + // m_ButtonPanel.add(PrintButton); + // m_ButtonPanel.add(OpenButton); + // m_ButtonPanel.add(SaveButton); + buttonPan.add(saveImageButton); + } + /** + * + */ + public void init() { + m_Frame = new JEFrame("Plot: "+m_PlotName); + BasicResourceLoader loader = BasicResourceLoader.instance(); + byte[] bytes = loader.getBytesFromResourceLocation(EvAInfo.iconLocation); + try { + m_Frame.setIconImage(Toolkit.getDefaultToolkit().createImage(bytes)); + } catch (java.lang.NullPointerException e) { + System.err.println("Could not find EvA2 icon, please move resources folder to working directory!"); + } + + m_ButtonPanel = new JPanel(); + m_PlotArea = new FunctionArea(m_xname,m_yname); + m_ButtonPanel.setLayout( new FlowLayout(FlowLayout.LEFT, 10,10)); + + installButtons(m_ButtonPanel); + // getContentPane().smultetLayout( new GridLayout(1, 4) ); m_Frame.getContentPane().add(m_ButtonPanel,"South"); m_Frame.getContentPane().add(m_PlotArea,"Center"); // north was not so nice @@ -216,12 +222,12 @@ public class Plot implements PlotInterface, Serializable { * @param prefix * @param pop */ - public void drawPopulation(String prefix, Population pop) { + public void drawPopulation(String prefix, Population pop) { for (int i=0; i 1000.)) len = 1000.; - return len; -// return 0.5+0.5*t*(2*b*a*u(x/a)); -// return 1/(2*Math.PI*ang); -// return +Math.abs(x[0])+Math.abs(x[1]); - } - - public int getProblemDimension() { - return 4; - } - - public String getName() { - return "F15-Problem"; - } - - public double getRangeLowerBound(int dim) { -// return -1; - if (dim == 0) return -2.5; - else return -1.5; - } - - public double getRangeUpperBound(int dim) { -// return 1; - return 1.5; - } - - /** - * @return the iterations - */ - public int getIterations() { - return iterations; + s=Math.sin(Math.PI*x[0]); + double[] y = new double[1]; + y[0] = 10.*s*s+sum+dim*(x[dim-1]-1)*(x[dim-1]-1); + return y; } - /** - * @param iterations the iterations to set - */ - public void setIterations(int iterations) { - this.iterations = iterations; + @Override + public int getProblemDimension() { + return dim; } + + public void setProblemDimension(int d) { + dim=d; + } + + @Override + public Object clone() { + return new F15Problem(this); + } + + public SolutionHistogram getHistogram() { + if (getProblemDimension()<15) return new SolutionHistogram(0, 2, 16); + else if (getProblemDimension()<25) return new SolutionHistogram(0, 4, 16); + else return new SolutionHistogram(0, 8, 16); + } + + public String getName() { + return "F15-Problem"; + } + + public String globalInfo() { + return "The Levy-function, from Levy, A., and Montalvo, A. (1985)"; + } + } diff --git a/src/eva2/server/go/problems/F21Problem.java b/src/eva2/server/go/problems/F21Problem.java deleted file mode 100644 index 39c2d0dd..00000000 --- a/src/eva2/server/go/problems/F21Problem.java +++ /dev/null @@ -1,77 +0,0 @@ -package eva2.server.go.problems; - -import java.io.Serializable; - -import eva2.server.go.operators.postprocess.SolutionHistogram; - -/** - * The Levy-function, from Levy, A., and Montalvo, A. (1985). Also described in - * "A Trust-Region Algorithm for Global Optimization", Bernardetta Addisy and Sven Leyfferz, 2004/2006. - */ - -public class F21Problem extends AbstractProblemDouble implements Serializable, InterfaceInterestingHistogram { - private int dim=10; - - public F21Problem() { - super(); - super.SetDefaultAccuracy(0.00001); - setDefaultRange(10); - } - - public F21Problem(int d) { - this(); - setProblemDimension(d); - } - - public F21Problem(F21Problem f21Problem) { - super(f21Problem); - dim=f21Problem.getProblemDimension(); - setDefaultRange(f21Problem.getDefaultRange()); - } - - @Override - public double[] eval(double[] x) { - x = rotateMaybe(x); - double t=0, s=0, sum=0; - - for (int i=0; i 1000.)) len = 1000.; + return len; +// return 0.5+0.5*t*(2*b*a*u(x/a)); +// return 1/(2*Math.PI*ang); +// return +Math.abs(x[0])+Math.abs(x[1]); + } + + public int getProblemDimension() { + return 4; + } + + public String getName() { + return "FunnyProblem"; + } + + public double getRangeLowerBound(int dim) { + if (dim == 0) return -2.5; + else return -1.5; + } + + public double getRangeUpperBound(int dim) { + return 1.5; + } + + /** + * @return the iterations + */ + public int getIterations() { + return iterations; + } + + /** + * @param iterations the iterations to set + */ + public void setIterations(int iterations) { + this.iterations = iterations; + } +}