№-4 мustaqil ta’lim ish hisoboti Fan “ Algoritmlarni loyihalash” Mavzu: “Dag‘al kuch” usuli. “Xasis” algoritmlar

O‘ZBEKISTON
RESPUBLIKASI RAQAMLI
TEXNOLOGIYALAR VAZIRLIGI
Muhammad al-Xorazmiy nomidagi Toshkent
Axborot Texnologiyalari Universiteti
Samarqand filiali
№-4 мustaqil ta’lim ish hisoboti Fan “ Algoritmlarni
loyihalash”
Mavzu:
“Dag‘al kuch” usuli. “Xasis” algoritmlar.
Guruh: KIS21_06 guruh talabasi
Talaba: Qurbonboyev Adham
Rahbar:
Boynazarov Ilhom
Samarqand 2024
2
4-Mustaqil ish.
Mavzu: “Dag‘al kuch” usuli. “Xasis” algoritmlar.
Reja:
1.Dag’al kuch usuli
2.Kommivoyajer masalasi
3.Dag’al kuch usuli
Dag’al kuch usuli ( метод «грубой силы», англ. brute force) — matematik
masalalarni yechish usulidir.
Bu usulda mavjud bo’lgan barcha variantlar ko’rib chiqiladi.
Dag’al kuch usuli xususiyatlari
Dag’al kuch usuli deyarli barcha turdagi masalalarga tadbiq qilish mumkin;
Ko’pincha
tadbiq qilish eng oson;
Kam hollarda chiroyli va samarali algoritmlarni beradi;
O’lchami uncha katta bo’lmagan masalalarni yechishda foydali;
Boshqa algoritmlarning samaradorligini aniqlash uchun o’lchov vazifasini bajaradi.
Masalan: tanlab saralash yoki pufakcha usulida saralash
Dag’al kuch usuliga asoslangan algoritmlar:
Matritsalarni ko’paytirish;
Ketma-ket qidiruv (Ro’yhatdagi eng kichik va eng katta elementni topish);
Tanlab saralash;
Pufakcha usulida saralash;
Satrdan qism
satrni qidirish;
Tekislikda eng yaqin joylashgan nuqtalar juftligini topish.
Shaharlar to’plami va ular orasidagi sayohat narxi (masofasi) berilgan.
Shunday tartibni aniqlash kerakki, sayohatchi hamma shaharlarga tashrif buyurib,
dastlabki shaharga qaytib kelganda, sayohatning umumiy narxi (masofasi)
minimal
bo’lsin.
Kommivoyajer masalasi
Masalaning bir nechta variantlari mavjud :
Simmetrik kommivoyajer masalasi (TSP = traveling salesman problem) Dji = Dij.
Assimmetrik kommivoyajer masalasi (ATSP) Dji ≠ Dij.
Qisman tartiblash masalasi (SOP = sequential ordering problem)
Гамильтон siklini izlash (HCP = нamiltonian cycle problem) -
1. Aniq usullar - Aniq usullar nafaqat biron bir yechimni topibgina qolmay,
balki natijaning eng yaxshi yechim ekanligini isbotlaydi.
Shaharlar orasidagi masofalarni matritsa shaklida yozamiz (pastdagi jadval).
Masalan, 2-shahardan 3-shahargacha (va 3 dan 2 gacha) masofa 7.
Grafik
yo'naltirilmaganligi sababli, bu matritsa simmetrikdir. Chiziqlar shahardan unga
"taqiqlangan" o'tishlarni belgilaydi.
har qanday shahar boshlang'ich (va tugaydigan) sifatida tanlanishi mumkin.
bu nol shahar bo'lsin. keyin nollar bilan o'ralgan 1 dan 4 gacha bo'lgan
raqamlarning har qanday almashinuvi har bir shaharni bir marta bosib o'tadigan
3
yo'lni anglatadi. masalan, 0,1,3,2,4,0 demak, 0 shahridan boshlab 1-shaharga,
keyin 3-shaharga va h.k.
Shaharlar ro’yxati raqamlarini kombinatsiya qilish dasturi
void permute(int a[], int l, int r)
{
if (l == r){
for(int i=0; i<=r; i++){
cout<<*(a+i)<<" ";
}
else
{
for (int i = l; i <= r; i++)
{
swap(*(a+l), *(a+i));
permute(a, l+1, r);
swap(*(a+l), *(a+i));
}
}
int main()
{
int a[20];
int n;
cout<<"Massiv elementlar sonini kiriting"<
cin>>n;
for(int i=0; i
a[i]=i+1;
}
permute(a, 0, n-1);
return 0;
}00
misol
satrlar bo’yicha ayirish
Ustunlar bo’yicha
ayirish
d = 44 + 3 = 47
Ixtiyoriy yechimning quyi chegarasi (narxning)
i-j qirrani o’chirish