以爬山演算法求解平方根問題

最佳化方法

簡介

歷史

確定性搜尋

基本搜尋法

逐漸深入法

α-β 修剪

A* 搜尋法

隨機搜尋

單粒子隨機搜尋

貪婪演算法

爬山演算法

模擬退火法

禁忌搜尋法

多粒子隨機搜尋

演化策略

鳥群演算法

蟻群演算法

蜂群演算法

程式實作

基本搜尋法

爬山演算法

基因演算法

鳥群演算法

訊息

相關網站

參考文獻

最新修改

簡體版

English

程式專案下載:HillClimbing.cs

為了說明爬山演算法的原理,我們使用爬山演算法計算 2 的平方根,這個程式非常的簡單,以下是其程式原始碼。

using System;

class HillClimbing
{
    static void Main(string[] args)
    {
        run(2);
    }

    public static double f(double x, double k)
    {
        return Math.Abs(x * x - k);
    }

    static double step = 0.001;

    public static void run(double k)
    {
        double x = 5;
        for (int i=0; i<100000; i++)
        {
            double f0 = f(x, k);
            Console.WriteLine("x={0:F3} f(x)={1:F3}", x, f0);
            double f1 = f(x - step, k);
            double f2 = f(x + step, k);
            if (f1 < f0)
                x = x - step;
            else if (f2 < f0)
                x = x + step;
            else
                break;
        }
    }
}

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License