Monday, April 30, 2012

Optimization algorithms that does not depend on initial solution

I know some optimization algorithms, such as hill-climbing, simulated-annealing, genetic algorithm.



All of the three I mentioned depend on the initial solutions, i.e., the initial solutions may have a great impact on the quality of the final optimal solution.



I wonder if there are any optimization algorithms that don't depend on initial solutions, at least not as much as these three.



Thanks.





Dividing a integer equally in X parts

I'm looking for a efficient way in PHP to divide a number in equal part. Number will always be integer (no float).



Let's say that I have an array $hours with values from "1" to "24" ($hours['1'], etc) and a variable $int containing an integer. What I want to acheive is spreading the value of $int equally in 24 parts so I can assing the value to each corresponding array entries. (Should the number be odd, the remaining would be added to the last or first values in the 24).



Regards,





JAVA ME Calendar displaying.

So I've been following this tutorial here Link to tutorial. I cant seem to get the application displaying properly though. When I run the application I get this



enter image description here



Here is my code, I'm using embedded classes.



import java.util.Date;
import java.util.Calendar;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;


public class CreateCalendar
{
/**
* Array of strings which holds data for the month and day
* for the calendar application.
*/
static final String[] month_labels = new String[]
{
"January", "Febuary", "March", "April", "May", "June", "July", "August", "Sepetember", "October", "November", "Decemeber"
};
static final String[] weekdays_labels = new String[]
{
"Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Sun"
};

public int startWeekday = 0;
public int padding = 1;
public int borderWidth = 4;
public int borderColor = 0x009900;

/**
* Weekday Labels
*/
public Font weekdayFont = Font.getDefaultFont();
public int weekdayBackgroundColor = 0x009900;
public int weekdayColor = 0xffffff;

/**
* Month/Year Labels
*/
public Font headerFont = Font.getDefaultFont();
public int headerBackgroundColor = 0x009900;
public int headerColor = 0xffffff;

/**
* Cells Labels
*/
public Font font = Font.getDefaultFont();
public int foreColor = 0xffffff;
public int backgroundColor = 0x009900;
public int selectedBackgroundColor = 0xCCFF00;
public int selectedForegroundColor = 0xffffff;

/**
* Size properties
*/
int width = 0;
int height = 0;
int headerHeight = 0;
int weekHeight = 0;
int cellWidth = 0;
int cellHeight = 0;

/**
* Internal time properties
*/
long currentTimeStamp = 0;
Calendar calendar = null;
int weeks = 0;

public CreateCalendar(Date date)
{
calendar = Calendar.getInstance();
setDate(date);
initialize();
}

public Date getSelectedDate()
{
return calendar.getTime();
}

public void setDate(Date d)
{
currentTimeStamp = d.getTime();
calendar.setTime(d);
this.weeks = (int)Math.ceil(((double)getStartWeekday() + getMonthDays()) / 7);
}

public void setDate(long timestamp)
{
setDate(new Date(timestamp));
}

public void initialize()
{
this.cellWidth = font.stringWidth("MM") + 2 * padding;
this.cellHeight = font.getHeight() + 2 * padding;
this.headerHeight = headerFont.getHeight() + 2 * padding;
this.weekHeight = weekdayFont.getHeight() + 2 * padding;
this.width = 7 * (cellWidth + borderWidth) + borderWidth;
initHeight();
}

void initHeight()
{
this.height = headerHeight + weekHeight + this.weeks * (cellHeight + borderWidth) + borderWidth;
}

int getMonthDays()
{
int month = calendar.get(Calendar.MONTH);
switch (month)
{
case 3:
case 5:
case 8:
case 10:
return 30;
case 1:
int year = calendar.get(Calendar.YEAR);
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ? 29 : 28;
default:
return 31;
}
}

int getStartWeekday()
{
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, calendar.get(Calendar.MONTH));
c.set(Calendar.YEAR, calendar.get(Calendar.YEAR));
c.set(Calendar.DAY_OF_MONTH, 1);
return (c.get(Calendar.DAY_OF_WEEK) + 5) % 7;
}

public void KeyPressed(int key)
{
switch(key)
{
case Canvas.UP:
go(-7);
break;
case Canvas.DOWN:
go(7);
break;
case Canvas.RIGHT:
go(1);
break;
case Canvas.LEFT:
go(-1);
break;
}
}

void go(int delta)
{
int prevMonth = calendar.get(Calendar.MONTH);
setDate(currentTimeStamp + 864000000 * delta);
if(calendar.get(Calendar.MONTH) != prevMonth)
{
initHeight();
}
}

public void paint(Graphics g)
{
g.setColor(backgroundColor);
g.fillRect(0, 0, width, height);
g.setFont(headerFont);
g.setColor(headerColor);
g.drawString(month_labels[calendar.get(Calendar.MONTH)] + " " + calendar.get(Calendar.YEAR), width / 2, padding, Graphics.TOP | Graphics.HCENTER);
g.translate(0, headerHeight);
g.setColor(weekdayBackgroundColor);
g.fillRect(0, 0, width, weekHeight);
g.setColor(weekdayColor);
g.setFont(weekdayFont);

for(int i = 0; i < 7; i++)
{
g.drawString(weekdays_labels[(i + startWeekday) % 7], borderWidth + i * (cellWidth + borderWidth) + cellWidth / 2, padding, Graphics.TOP | Graphics.HCENTER);
}

g.translate(0, weekHeight);
g.setColor(borderColor);

for(int i = 0; i <= weeks; i++)
{
g.fillRect(0, i * (cellHeight + borderWidth), width, borderWidth);
}
for(int i = 0; i <=7; i++)
{
g.fillRect(i * (cellWidth + borderWidth), 0, borderWidth, height - headerHeight - weekHeight);
}

int days = getMonthDays();
int dayIndex = (getStartWeekday() - this.startWeekday + 7) % 7;
g.setColor(foreColor);
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);

for(int i = 0; i < days; i++)
{
int weekday = (dayIndex + i) % 7;
int row = (dayIndex + i) / 7;
int x = borderWidth + weekday * (cellWidth + borderWidth) + cellWidth / 2;
int y = borderWidth + row * (cellHeight + cellWidth) + padding;

if(i + 1 == currentDay)
{
g.setColor(selectedBackgroundColor);
g.fillRect(borderWidth + weekday * (cellWidth + borderWidth), borderWidth + row * (cellHeight + borderWidth), cellWidth, cellHeight);
g.setColor(selectedForegroundColor);
}

g.drawString("" + (i + 1), x, y, Graphics.TOP | Graphics.HCENTER);

if(i + 1 == currentDay)
{
g.setColor(foreColor);
}
}
g.translate(0, - headerHeight - weekHeight);
}

private Date getTime() {
throw new UnsupportedOperationException("Not yet implemented"); //TODO get current Time
}

//=====================================================================================================================//

public class CalFrontEnd extends MIDlet
{

public CreateCalendar calendar;
protected Display display;
protected Form mainForm;

public CalFrontEnd()
{

}

public void startApp()
{
calendar = new CreateCalendar(new Date());
calendar.headerFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE);
calendar.weekdayFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
calendar.weekdayBackgroundColor = 0xccccff;
calendar.weekdayColor = 0x0000ff;
calendar.headerColor = 0xffffff;
calendar.initialize();


display.getDisplay(this).setCurrent(
new intCalendar(this));

}

public void pauseApp()
{
}

public void destroyApp(boolean destroy)
{
notifyDestroyed();
}
}}




jQuery dialog popup behind my blog content. How to fix

I have this problem I have dealing with for a while now. My dialog appears to pop up behind my blog content. here is a screenshot.
http://wsoplugins.com/wp-content/uploads/2012/04/Capture.png
can someone help me fix this?
It pops up behind the header content to be specific. The other content below seems fine.
thank you so much.



.ui-dialog{

position: fixed;
z-index: 99999;

}




How to tell if an out parameter was set already?

Is there a way to know if an out parameter was set already or not. This is the pseudocode for what I am looking for:



public virtual string blabla(long num, out bool bval)
{
if (!bval.HasValue)
{
//Do some default logic
bval = defaultValue;
}

return blabla2(num, bval);
}




JScript : How can i trigger Auto Play Slideshow for OnPageLoad Event ? Please Note down the code. Thanx in Advance

Following is The code i have used for playing slideshow of some pictures in my website background. You can check the site as well. www.vishalseth.in/home.html I want to play the slideshow on OnPageLoad event so the user can just pause the slideshow if they want else it will keep running automatically. Please help me with the code.



jQuery(document).ready(function($){

$('body').append('<span id="body_loader"></span>');
$('#body_loader').fadeIn();

//In our jQuery function, we will first cache some element and define some variables:
var $bg = $('#background'),
$bg_img = $bg.find('img'),
$bg_img_eq = $bg_img.eq(0),
total = $bg_img.length,
current = 0,
$next = $('#next'),
$prev = $('#prev')

$(window).load(function(){
//hide loader
$('#body_loader').fadeOut('fast', function(){
init();
}).remove();

});

var intervalID,
play = $('#play'),
titleItem = $('.title-item');

//shows the first image and initializes events
function init(){
//get dimentions for the image, based on the windows size
var dim = getImageDim($bg_img_eq);
//set the returned values and show the image
$bg_img_eq.css({
width : dim.width,
height : dim.height,
left : dim.left,
top : dim.top
}).fadeIn('normal');

//resizing the window resizes the $tf_bg_img
$(window).bind('resize',function(){
var dim = getImageDim($bg_img_eq);
$bg_img_eq.css({
width : dim.width,
height : dim.height,
left : dim.left,
top : dim.top
});
});

var activeTitle = $bg_img_eq.attr('title');
titleItem.html(activeTitle);
titleItem.html(function(){
var text= $(this).text().split(" ");
var last = text.pop();
return text.join(" ")+ (text.length > 0 ? " <span class='word-last'>"+ last + "</span>" : last);
});

play.bind('click', function() {
if($(this).hasClass('pause')) {
clearInterval(intervalID);
$(this).removeClass('pause').addClass('play');
} else {
$(this).addClass('pause').removeClass('play');
intervalID = setInterval("$('#next').trigger('click')", 2000);
}

});

//click the arrow down, scrolls down
$next.bind('click',function(){
if($bg_img_eq.is(':animated'))
return false;
scroll('tb');
});

//click the arrow up, scrolls up
$prev.bind('click',function(){
if($bg_img_eq.is(':animated'))
return false;
scroll('bt');
});
}




Pausing Javascript execution until button press

I'm creating a visualization of a Sudoku creator for my Algorithms class (in Javascript). The algorithm works great, but I'm having trouble finding a way to pause execution.



Currently, I'm using prompt() to pause, but that's bulky and annoying. Is there any way to pause until another function is run (via HTML button) other than a continuous while loop?



I can post code, but I don't think it's needed. I'm not currently using jQuery, but I can if needed.