Sponsored Content
The Lounge What is on Your Mind? Toshiba’s Optimization Algorithm Sets Speed Record for Solving Combinatorial Problems. Post 303044407 by Chubler_XL on Thursday 20th of February 2020 05:03:20 PM
Old 02-20-2020
Very cool.

I did a lot of mucking around with Simulated Annealing and the Metropolis algorithm while in uni. Using it for tasks like fitting various sized files onto minimum numbers of floppy disks, finding optimum solutions for student + classroom + teacher timetables for schools etc.

But given the money to be made in the financial realm, I can't see these algorithms making it to the public domain any time soon.
This User Gave Thanks to Chubler_XL For This Post:
 

8 More Discussions You Might Find Interesting

1. HP-UX

pst_status record problems

Hi There, We've been creating a little program that collects all the performance data available about the processes on a HP-UX system. (running HP-UX 11.11). And everything works fine apart from 4 fields in the middle of the pst_status record. Input Blocks (pst_inblock) Output Blocks... (0 Replies)
Discussion started by: cpiuk
0 Replies

2. Filesystems, Disks and Memory

dmidecode, RAM speed = "Current Speed: Unknown"

Hello, I have a Supermicro server with a P4SCI mother board running Debian Sarge 3.1. This is the "dmidecode" output related to RAM info: RAM speed information is incomplete.. "Current Speed: Unknown", is there anyway/soft to get the speed of installed RAM modules? thanks!! Regards :)... (0 Replies)
Discussion started by: Santi
0 Replies

3. UNIX for Advanced & Expert Users

Solving the network collisions in Unix box

Hi, Anyone can u give me an idea to clear the network collisions in the unix box(Solaris and Linux)? NIC performance is very low, and it shows collisions, when issuing the command ifconfig -a in the production server. How can i rectify the network collisions in the box. Using netstat and lsof... (4 Replies)
Discussion started by: muthulingaraja
4 Replies

4. Virtualization and Cloud Computing

Clouds (Partially Order Sets) - Streams (Linearly Ordered Sets) - Part 2

timbass Sat, 28 Jul 2007 10:07:53 +0000 Originally posted in Yahoo! CEP-Interest Here is my follow-up note on posets (partially ordered sets) and tosets (totally or linearly ordered sets) as background set theory for event processing, and in particular CEP and ESP. In my last note, we... (0 Replies)
Discussion started by: Linux Bot
0 Replies

5. UNIX for Advanced & Expert Users

iSCSI speed problems

Hi all. I was able to set up an IBM Ultrium LTO 4 tape drive to use iSCSI (using open-iscsi drivers) to communicate with Red Hat, but it's going really slow, maxing out in tar and dd tests at like 16 MB/s (using a block size of 128k). The thing is rated for 30MB/s. I feel like even though I have... (1 Reply)
Discussion started by: jeriryan87
1 Replies

6. Shell Programming and Scripting

A little help using grep for anagram solving with BASH

Hi guys, I have been making a simple script for looking for anagram solutions in a word list (a file of 22k or so words). At the moment it funtions like so: User enters an 8 character string (whatever letters you want to find anagrams of, or solve rather) The script moves all the words... (2 Replies)
Discussion started by: Donthommo
2 Replies

7. Filesystems, Disks and Memory

data from blktrace: read speed V.S. write speed

I analysed disk performance with blktrace and get some data: read: 8,3 4 2141 2.882115217 3342 Q R 195732187 + 32 8,3 4 2142 2.882116411 3342 G R 195732187 + 32 8,3 4 2144 2.882117647 3342 I R 195732187 + 32 8,3 4 2145 ... (1 Reply)
Discussion started by: W.C.C
1 Replies

8. UNIX for Advanced & Expert Users

Speed problems with tar'ing a 500Gb directory on an eSATA drive

I'm trying to compress a directory structure on an external hard drive, connected by eSATA cable to my linux (Ubuntu 10.04) desktop. The total volume is 500Gb with half a million files, ranging from Kb to Mb in size. The drive is 2Tb, with 0.8Tb free space before compression. running "tar -pcf... (10 Replies)
Discussion started by: omnisppot
10 Replies
simulation::annealing(n)				       Tcl Simulation Tools					  simulation::annealing(n)

__________________________________________________________________________________________________________________________________________________

NAME
simulation::annealing - Simulated annealing SYNOPSIS
package require Tcl ?8.4? package require simulation::annealing 0.2 ::simulation::annealing::getOption keyword ::simulation::annealing::hasOption keyword ::simulation::annealing::setOption keyword value ::simulation::annealing::findMinimum args ::simulation::annealing::findCombinatorialMinimum args _________________________________________________________________ DESCRIPTION
The technique of simulated annealing provides methods to estimate the global optimum of a function. It is described in some detail on the Wiki http://wiki.tcl.tk/.... The idea is simple: o randomly select points within a given search space o evaluate the function to be optimised for each of these points and select the point that has the lowest (or highest) function value or - sometimes - accept a point that has a less optimal value. The chance by which such a non-optimal point is accepted diminishes over time. o Accepting less optimal points means the method does not necessarily get stuck in a local optimum and theoretically it is capable of finding the global optimum within the search space. The method resembles the cooling of material, hence the name. The package simulation::annealing offers the command findMinimum: puts [::simulation::annealing::findMinimum -trials 300 -parameters {x -5.0 5.0 y -5.0 5.0} -function {$x*$x+$y*$y+sin(10.0*$x)+4.0*cos(20.0*$y)}] prints the estimated minimum value of the function f(x,y) = x**2+y**2+sin(10*x)+4*cos(20*y) and the values of x and y where the minimum was attained: result -4.9112922923 x -0.181647676593 y 0.155743646974 PROCEDURES
The package defines the following auxiliary procedures: ::simulation::annealing::getOption keyword Get the value of an option given as part of the findMinimum command. string keyword Given keyword (without leading minus) ::simulation::annealing::hasOption keyword Returns 1 if the option is available, 0 if not. string keyword Given keyword (without leading minus) ::simulation::annealing::setOption keyword value Set the value of the given option. string keyword Given keyword (without leading minus) string value (New) value for the option The main procedures are findMinimum and findCombinatorialMinimum: ::simulation::annealing::findMinimum args Find the minimum of a function using simulated annealing. The function and the method's parameters is given via a list of keyword- value pairs. int n List of keyword-value pairs, all of which are available during the execution via the getOption command. ::simulation::annealing::findCombinatorialMinimum args Find the minimum of a function of discrete variables using simulated annealing. The function and the method's parameters is given via a list of keyword-value pairs. int n List of keyword-value pairs, all of which are available during the execution via the getOption command. The findMinimum command predefines the following options: o -parameters list: triples defining parameters and ranges o -function expr: expression defining the function o -code body: body of code to define the function (takes precedence over -function). The code should set the variable "result" o -init code: code to be run at start up -final code: code to be run at the end -trials n: number of trials before reducing the tem- perature -reduce factor: reduce the temperature by this factor (between 0 and 1) -initial-temp t: initial temperature -scale s: scale of the function (order of magnitude of the values) -estimate-scale y/n: estimate the scale (only if -scale is not present) -verbose y/n: print detailed information on progress to the report file (1) or not (0) -reportfile file: opened file to print to (defaults to stdout) Any other options can be used via the getOption procedure in the body. The findCombinatorialMinimum command predefines the following options: o -number-params n: number of binary parameters (the solution space consists of lists of 1s and 0s). This is a required option. o -initial-values: list of 1s and 0s constituting the start of the search. The other predefined options are identical to those of findMinimum. TIPS
The procedure findMinimum works by constructing a temporary procedure that does the actual work. It loops until the point representing the estimated optimum does not change anymore within the given number of trials. As the temperature gets lower and lower the chance of accept- ing a point with a higher value becomes lower too, so the procedure will in practice terminate. It is possible to optimise over a non-rectangular region, but some care must be taken: o If the point is outside the region of interest, you can specify a very high value. o This does mean that the automatic determination of a scale factor is out of the question - the high function values that force the point inside the region would distort the estimation. Here is an example of finding an optimum inside a circle: puts [::simulation::annealing::findMinimum -trials 3000 -reduce 0.98 -parameters {x -5.0 5.0 y -5.0 5.0} -code { if { hypot($x-5.0,$y-5.0) < 4.0 } { set result [expr {$x*$x+$y*$y+sin(10.0*$x)+4.0*cos(20.0*$y)}] } else { set result 1.0e100 } }] The method is theoretically capable of determining the global optimum, but often you need to use a large number of trials and a slow reduc- tion of temperature to get reliable and repeatable estimates. You can use the -final option to use a deterministic optimization method, once you are sure you are near the required optimum. The findCombinatorialMinimum procedure is suited for situations where the parameters have the values 0 or 1 (and there can be many of them). Here is an example: o We have a function that attains an absolute minimum if the first ten numbers are 1 and the rest is 0: proc cost {params} { set cost 0 foreach p [lrange $params 0 9] { if { $p == 0 } { incr cost } } foreach p [lrange $params 10 end] { if { $p == 1 } { incr cost } } return $cost } o We want to find the solution that gives this minimum for various lengths of the solution vector params: foreach n {100 1000 10000} { break puts "Problem size: $n" puts [::simulation::annealing::findCombinatorialMinimum -trials 300 -verbose 0 -number-params $n -code {set result [cost $params]}] } o As the vector grows, the computation time increases, but the procedure will stop if some kind of equilibrium is reached. To achieve a useful solution you may want to try different values of the trials parameter for instance. Also ensure that the function to be minimized depends on all or most parameters - see the source code for a counter example and run that. KEYWORDS
math, optimization, simulated annealing CATEGORY
Mathematics COPYRIGHT
Copyright (c) 2008 Arjen Markus <arjenmarkus@users.sourceforge.net> simulation 0.2 simulation::annealing(n)
All times are GMT -4. The time now is 12:03 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy