Algoritma Carian Tempatan ialah teknik carian dalam Java pengaturcaraan yang memfokuskan pada mengoptimumkan penyelesaian dengan mencari di sekitar penyelesaian semasa. Daripada mencari keseluruhan ruang penyelesaian, algoritma menumpukan pada mencari penyelesaian dalam "kejiranan" yang lebih kecil.
Cara Algoritma Carian Tempatan Berfungsi
Algoritma bermula daripada penyelesaian awal dan sentiasa cuba memperbaikinya dengan mencari penyelesaian yang lebih baik di kawasan berhampiran. Algoritma berulang melalui penyelesaian berdekatan dan memilih penyelesaian terbaik di antara mereka.
Kelebihan dan Kelemahan Algoritma Carian Tempatan
Kelebihan:
- Kecekapan: Algoritma selalunya beroperasi lebih pantas dalam ruang masalah yang lebih besar dengan mencari keadaan berdekatan dan bukannya seluruh ruang.
- Penyepaduan: Boleh digabungkan dengan kaedah lain untuk meningkatkan prestasi carian.
Kelemahan:
- Optima Tempatan: Algoritma mungkin menumpu ke titik optimum tempatan tanpa mencari penyelesaian global.
Contoh dan Penerangan
Contoh sebenar Algoritma Carian Tempatan ialah mengoptimumkan laluan trafik. Mari lihat bagaimana algoritma ini berfungsi:
import java.util.*;
public class LocalSearchExample {
static double evaluateSolution(double[] solution) {
// Function to evaluate the quality of a solution
// Lower value indicates a better solution
return 1.0 /(1.0 + solution[0] + solution[1]);
}
static double[] localSearch(double[] initialSolution, double stepSize, int maxIterations) {
double[] currentSolution = Arrays.copyOf(initialSolution, initialSolution.length);
double currentEvaluation = evaluateSolution(currentSolution);
for(int i = 0; i < maxIterations; i++) {
double[] nextSolution = Arrays.copyOf(currentSolution, currentSolution.length);
nextSolution[0] += stepSize;
double nextEvaluation = evaluateSolution(nextSolution);
if(nextEvaluation < currentEvaluation) {
currentSolution = nextSolution;
currentEvaluation = nextEvaluation;
} else {
stepSize /= 2;
}
}
return currentSolution;
}
}
Dalam contoh di atas, kami menggunakan Algoritma Carian Setempat untuk mengoptimumkan penyelesaian berangka. Algoritma mencari dalam persekitaran penyelesaian semasa dengan mengubah langkah tetap dan menyemak sama ada penyelesaian baharu itu lebih baik. Hasilnya ialah algoritma secara progresif mencari penyelesaian yang lebih baik dari semasa ke semasa.