L-algoritmu tat-Tiftix fil-Cloud huwa metodu ta’ tfittxija li jinvolvi l-ġenerazzjoni ta’ sett kbir ta’ soluzzjonijiet każwali, li spiss jissejħu “s-sħaba”, u mbagħad it-tfittxija għall-aħjar soluzzjonijiet fi ħdan dan is-sett. Dan l-approċċ huwa komunement użat biex jinstabu soluzzjonijiet approssimattivi għal problemi kumplessi meta l-ebda gwida speċifika ma tkun disponibbli.
Kif taħdem
- Inizjalizzazzjoni tas-Sħab: Oħloq sett kbir ta 'soluzzjonijiet każwali(is-sħaba).
- Evalwazzjoni: Evalwa l-kwalità ta 'kull soluzzjoni fil-cloud abbażi tal-funzjoni oġġettiva jew kriterji ta' evalwazzjoni.
- Għażla: Agħżel subsett tal-aħjar soluzzjonijiet mis-sħab ibbażat fuq probabbiltajiet jew kriterji tal-għażla.
- Titjib: Ittejjeb il-kwalità tas-soluzzjonijiet fil-cloud billi tapplika trasformazzjonijiet jew ottimizzazzjonijiet.
- Iterazzjoni: Irrepeti l-passi 2 sa 4 sakemm jinkiseb riżultat sodisfaċenti jew jintlaħaq numru predefinit ta' iterazzjonijiet.
Eżempju: Cloud Tiftix għall-Problema ta’ Salesman Traveling
Ikkunsidra l-Problema tal-Bejjiegħ Vjaġġar(TSP), fejn l-għan huwa li jinstab l-iqsar ċiklu Hamiltonjan li jżur il-bliet kollha. Il-metodu Cloud Search jista 'jiġġenera numru kbir ta' ċikli Hamiltonjani każwali, imbagħad agħżel iċ-ċiklu bl-inqas spiża.
Eżempju ta' Kodiċi f'C++
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
struct City {
int x;
int y;
};
double calculateDistance(const City& city1, const City& city2) {
return std::sqrt((city1.x- city2.x)*(city1.x- city2.x) +(city1.y- city2.y)*(city1.y- city2.y));
}
double cloudSearchTSP(std::vector<City>& cities, int maxIterations) {
int numCities = cities.size();
double bestDistance = std::numeric_limits<double>::max();
srand(time(0));
for(int i = 0; i < maxIterations; ++i) {
std::random_shuffle(cities.begin(), cities.end());
double totalDistance = 0.0;
for(int j = 0; j < numCities- 1; ++j) {
totalDistance += calculateDistance(cities[j], cities[j + 1]);
}
totalDistance += calculateDistance(cities[numCities- 1], cities[0]);
bestDistance = std::min(bestDistance, totalDistance);
}
return bestDistance;
}
int main() {
std::vector<City> cities = {{0, 0}, {1, 2}, {3, 1}, {4, 3}, {2, 4}};
int maxIterations = 1000;
double shortestDistance = cloudSearchTSP(cities, maxIterations);
std::cout << "Shortest distance in TSP: " << shortestDistance << std::endl;
return 0;
}
F'dan l-eżempju, nużaw il-metodu Cloud Search biex insolvu t-TSP. Aħna niġġeneraw numru kbir ta 'ċikli Hamiltonjani bl-addoċċ billi nħasdu l-ibliet b'mod każwali, imbagħad nikkalkulaw l-ispiża għal kull ċiklu u agħżel iċ-ċiklu bl-inqas spiża.