tam da kodlama mantığıyla anlatmışsınız. kendini denemek isteyenler için bu çok güzel olmuş. başka hiç bir kaynağa bakmadan anlatımınızdaki püf noktaları kullanarak kodlanabiliyor.
Anlatımınız için teşekkür ederim, gayet açıklayıcı olmuş. Sadece kodlama veya sadece beyaz tahta yerine, önce beyaz tahta ardından kodlama kısmına geçmeniz, hatta karışık olduğunu düşündüğünüz yerlerde beyaz tahtadaki anlatımınızdan alıntılarla zenginleştirmeniz A'dan Z'ye ulaşmanın maliyetli fakat en verimli yolu olacağını düşünüyorum. Emeğiniz için tekrar teşekkür ederim.
İkisinin aynı videoda olması sebebiyle video boyutu çok uzayacaktı maalesef. O yüzden sadece tahta gayet yeterli gibi. Kodunu da gerekirse bi ara yazabiliriz birlikte :)
Hocam çok teşekkürler. Küçük bi ayrıntı dikkatimi çekti, a>b>d>f>c yolu ile a>b>e>f>c maliyeti aynı oluyor. Burada B den F ye gitmenin maliyeti E üzerinden 7 birim, D üzerinden de 7 birim sanırım tablodan çıkan parentlerden çift B çıkmasının nedeni de B den F ye iki ayrı yol oluşuyor. Çok teşekkür ediyorum çok faydalı bilgilendirici bir video oldu 😊
Hocam çok açıklayıcı ve çok güzel bir videoydu.Şahsen bu tür videolardan sonra bilgisayar ortamında herhangi bir dille de bunun kodunu yazmanızı çok isterim
Hocam anlatım için teşekkürler, gayet açık ve net anlatmışsınız, bu tarz videoların gelmesi dileği ile. Anlatıma istinaden söyle bir kod yazdım, using System; using System.Collections.Generic; namespace Test { internal static class Program { static void Main() { var nodeA = new Node("A"); var nodeB = new Node("B"); var nodeC = new Node("C"); var nodeD = new Node("D"); var nodeE = new Node("E"); var nodeF = new Node("F"); var nodes = new List() { nodeA, nodeB, nodeC, nodeD, nodeE, nodeF, }; var edges = new List { new Edge(nodeA, nodeB, 2), new Edge(nodeA, nodeD, 8), new Edge(nodeB, nodeD, 5), new Edge(nodeB, nodeE, 6), new Edge(nodeD, nodeE, 3), new Edge(nodeD, nodeF, 2), new Edge(nodeE, nodeC, 9), new Edge(nodeE, nodeF, 1), new Edge(nodeF, nodeC, 3) }; var result = FindPath(nodes, edges, nodeA, nodeC); if (result != null) { var node = result; // yazdırma işlemi while (node != null) { if (node.Next != null) { Console.WriteLine($"{node.Name} -> {node.Next.Name}"); } else { Console.WriteLine($"{node.Name} ({node.Value})"); } node = node.Next; } } else { Console.WriteLine("Yol bulunamadı."); } } private static Node FindPath(List nodes, List edges, Node from, Node to) { // değelerin sıfırlanması foreach (var node in nodes) { node.Parent = null; node.Next = null; node.Value = int.MaxValue; node.Discovered = false; } // başlangıç değeri için ilk değer ataması from.Value = 0; // Discovered olmayan ve en küçük değere sahip nodun seçilmesi var current = GetMinNode(nodes); while (current != null) { foreach (var edge in edges) { // Discovered node içeren Edgenin geçilmesi if (edge.Left.Discovered || edge.Right.Discovered) { continue; } // Edge ilgili nodu içeriyorsa işlem yap if (edge.Left == current || edge.Right == current) { // ilgili node dışındaki nodun atanması (diğer uçtaki node) var node = edge.Left == current ? edge.Right : edge.Left; // ilgili node ile diğer uçtaki node değerinin hesaplanması var value = Math.Min(current.Value + edge.Length, node.Value); // hesaplanan değer uçtaki node değerinden küçükse Parent ve Value değerini ata if (value < node.Value) { node.Value = value; node.Parent = current; } } } // Discovered değerinin set edilmesi current.Discovered = true; // mevcut node hedef değere eşit ise çık if (current == to) { var parent = current.Parent; // baştan sona yazdırma işlemi için next propertylerinin atanması while (parent != null) { parent.Next = current; current = parent; parent = current.Parent; } return current; } else { // Discovered olmayan ve en küçük değere sahip nodun seçilmesi current = GetMinNode(nodes); } } return null; } private static Node GetMinNode(List nodes) { Node minNode = null; foreach (var node in nodes) { // Discovered olamyan ve Value değeri Max olmayan nodları kullan if (!node.Discovered && node.Value != int.MaxValue) { if (minNode == null || minNode.Value > node.Value) { minNode = node; } } } return minNode; } class Node { public Node Parent { get; set; } public Node Next { get; set; } public string Name { get; } public int Value { get; set; } public bool Discovered { get; set; } public Node(string name) { Name = name; } public override string ToString() { return Name; } } class Edge { public Node Left { get; } public Node Right { get; } public int Length { get; } public Edge(Node left, Node right, int length) { Left = left; Right = right; Length = length; } public override string ToString() { return $"{Left} {Right} ({Length})"; } } } }
Hocam F'e gitmenin 2 yolu da aynı maliyette olduğu için orada bir kargaşa çıktığını hissediyorum. Bir kontrol edebilir misiniz acaba ben mi bir şey kaçırıyorum. yani en kısa mesafe hem A>B>D>F>C hem de A>B>E>F>C .
Doğru F ye ulaşmanın 2 yolu var. Bu algoritma kısayı bulduktan sonra seçenekleri değerlendiriyor. Ancak yine aynı algoritma kullanılarak diğer tüm alternatifler bulunarak içinden en kısa olanları alternatif olarak da gösterilebilir.
basit ve güzel bir algoritma örneğini bizimle paylaştığınız için teşekkürler basit olduğunu anlatış tarzınızdan çıkardık , devamını bekliyoruz hocam :)
Hocam bu konudan bağımsız bir sorum var çok merak ediyorum milyon kullanıcısı olan uygulamalar veritabanını nasıl loadbalance yapıyor ? ben amerikadan bir kullanıcı isem database amerikadaysa , türkiyedeki bir kullanıcı search yaptığında beni nasıl bulabilir? eğer tüm databaselerde sorgu çalışırsa loadbalance'in anlamı kalmıyor yük tüm dünyaya yayılmış olacak. araştırdım kaynak bulamadım. Kaynak önerirseniz dili hiç farketmez almanca da olur öğrenmek istiyorum bu konuyu.
Hocam öncelikle sade anlatım için teşekkürler. Kafama takılan şöyle bir soru var: A -> B -> E -> F -> C yolunun maliyeti de 12 oluyor. Algoritmada minimum fonksiyonunu kullandığımız için bu yolu eledik; ama eşit maliyetli olduğu için bu yolu da değerlendirememiz gerekmez miydi?
Ancak A -> B -> E yapdığımızda daha sonraki yolun kısa olup olmadığını bilmediğimiz için bu tercihi yapmıyoruz. Uygulama verimliliğini arttırmak için bu tarz seçimleri erkenden yapmak durumunda kalabiliyoruz.
merhaba bir projem var genel olarak " Your ant colony must move from on point to another. How do you do it in the shortest time possible? This project will get you acquainted with graph traversal algorithms: your program will have to intelligently select paths and precise movements used by the ants " böyle bir şey istiyor dijkstra algoritması kullanabilir miyim
Hocam a'dan bye gitmenin yolu 2 c ye ise 8 ken ben diyelim ki a'dan bye gitmek daha mantıklı olduğu için onu seçtim fakat diyelimki d'ye gidecekken b'den d 'ye giden yol 20 birim c'den giden yol 5 birim olursa bu algoritmaya göre a->(2)b->(20)d a->(8)c->(5)d seçilen yol a,b,d üzerinden olacak ve yol uzayacak
Bizim hedefimiz A dan C ye gitmekti. Eğer D ye gidiyor olsaydık, algoritmayı ona göre çalıştıracaktık. Eğer yolda karar veriyorsanız, tüm bu algoritmayı bulunduğunuz konum için yeniden çalıştırmak gerekcekti. Umarım doğru anlamşımdır anlatmaya çalıştığınızı
Bir junior backend developer olarak, bu tip algoritmaların günlük hayatta ne gibi yerlerde kullanılması gerektiğine dair bir senaryo, kafamda canlanmıyor. Örneğin bir e-ticaret yada banka sistemlerinde ne gibi bir ihtiyacı karşılıyor? Bir örnek verebilecek olan varsa çok memnun olurum :)
Tamamen ihtiyaca yönelik aslında, genellikle gezgin satıcı problemi ile daha anlatılabilir oluyor bu tip algoritmalar. Bir örnek olarak kargo veya kurye işlemlerinin olduğunu düşünelim, gün içinde gideceği birden fazla rota olabilir, bu rotalar arasında en kısa mesafe, en düşük yakıt, en az eğim vb gibi kıyaslarda kullanılabilir.
Farketmediğimiz birçok alanda kullanılan algoritmalar bunlar. Junior ken ve şu an çalıştığınız şirkette kullanmanız gerekmeyebilir belki ama uygulama verimliliğinin ön planda olduğu şirketlerde bir hayli kullanılır bu tarz algoritmalar. En temelde, TCP protokolü üzerinden network yapılandırılması yapılır ve tcp üzerinden paketler gönderilir. Daha karmaşık network yapılarında, sunucular arası paketlerin daha hızlı gidebilmesi için bu tarz algoritmalar, sunucular arası en kısa yolları bulur mesela.
@@TechBuddyTR network tarafını düşününce gayet mantıklı geldi şimdi hocam. Doğal olarak isteklerin ve sonuçların hızlı gelmesi gerek. Teşekkür ederim :)
tam da kodlama mantığıyla anlatmışsınız. kendini denemek isteyenler için bu çok güzel olmuş. başka hiç bir kaynağa bakmadan anlatımınızdaki püf noktaları kullanarak kodlanabiliyor.
Teşekkür ederim. Böyle düşünmeniz sevindirici çünkü amacıma ulaştığımı gösteriyor :)
Anlatımınız için teşekkür ederim, gayet açıklayıcı olmuş. Sadece kodlama veya sadece beyaz tahta yerine, önce beyaz tahta ardından kodlama kısmına geçmeniz, hatta karışık olduğunu düşündüğünüz yerlerde beyaz tahtadaki anlatımınızdan alıntılarla zenginleştirmeniz A'dan Z'ye ulaşmanın maliyetli fakat en verimli yolu olacağını düşünüyorum. Emeğiniz için tekrar teşekkür ederim.
İkisinin aynı videoda olması sebebiyle video boyutu çok uzayacaktı maalesef. O yüzden sadece tahta gayet yeterli gibi. Kodunu da gerekirse bi ara yazabiliriz birlikte :)
Harika bir konsept , harika bir içerik , devamını bekliyoruz.
Teşekkürler :)
eğer bir gün kanalı kapatmayı düşünsen bile videoları silme hepsi birbirinden kıymetli
:) İnşallah o günleri görmeyiz
Hocam favori kanallarımdansınız.Bizlere öğrettiğiniz ve öğreteceğiniz her şey için çok teşekkür ederim😊😊
Çok Teşekkürler :)
Cok anlaşılır olmus, ayrica beyaz tahtada soru cevap yapsakda cok iyi olurdu
Hocam çok teşekkürler. Küçük bi ayrıntı dikkatimi çekti, a>b>d>f>c yolu ile a>b>e>f>c maliyeti aynı oluyor. Burada B den F ye gitmenin maliyeti E üzerinden 7 birim, D üzerinden de 7 birim sanırım tablodan çıkan parentlerden çift B çıkmasının nedeni de B den F ye iki ayrı yol oluşuyor. Çok teşekkür ediyorum çok faydalı bilgilendirici bir video oldu 😊
Teşekkürler :)
Hocam üniversite anılarım canlandı, hem anlatımınız hem de bilgilendirmeniz için teşekkür ederim. :)
Teşekkürler :)
Çok teşekkürler hocam gayet anlaşılır ve mantığa yatan bir anlatım olmuş.
Efsane bir anlatım çok teşekkürler işin mantığını öğreten açıklayıcı bir video olmuş.
Farklı bir tat katmış yeni konsept, beğendim.
Teşekkürler
Önce teori sonra kodlama çok iyi olmuş hocam emeğinize sağlık
Teşekkür ederim :)
Bu konsept bence gayet başarılı, arada bu tarz videolar gayet zenginleştirici olur. Emeğine sağlık.
Ben de aynı kanaatteyim. Teşekkürler :)
LinkedList e benziyor gibi fark burada herkes kendinden önceki en yakını biliyor, güzel olmuş Salih abi eline sağlık.
Bu tabi işin en son adımı :)
Hocam çok açıklayıcı ve çok güzel bir videoydu.Şahsen bu tür videolardan sonra bilgisayar ortamında herhangi bir dille de bunun kodunu yazmanızı çok isterim
Teşekkürler :) Belki başka bir videoda yazarız onu da
çok teşekürler bu konseptin devamını bekliyoruz
:) Ben de devamını getirmek istiyorum. Bakalım neler çıkacak karşımıza.
Konsept çok ilgi çekici olmuş bence. Ayrıca inanılmaz da açıklayıcı. Çok beğendim, emeğine sağlık hocam.
Çok teşekkür ederim.
Teşekkürler hocam. Konsept ve anlatımınız gayet anlaşılır.
Çok teşekkür ederim
teşekkürler hocam gayet etkili oldu tahta üzerinde
Süper :)
Beyaz tahta guzel fikir. Elinize saglik.
Teşekkür ederim 😊
Hocam daha çok yüzünüzü görmek isteriz böyle videolar daha çok gelsin algoritmalara dayalı seriler daha çok ilgi çekici
Sayıları artırmaya çalışacağım ben de :)
Çok teşekkürler, çizerek anlatmamız daha guzel olmuş. Daha kolay anladim
Teşekkürler :)
Hocam anlatım için teşekkürler, gayet açık ve net anlatmışsınız, bu tarz videoların gelmesi dileği ile. Anlatıma istinaden söyle bir kod yazdım,
using System;
using System.Collections.Generic;
namespace Test
{
internal static class Program
{
static void Main()
{
var nodeA = new Node("A");
var nodeB = new Node("B");
var nodeC = new Node("C");
var nodeD = new Node("D");
var nodeE = new Node("E");
var nodeF = new Node("F");
var nodes = new List()
{
nodeA,
nodeB,
nodeC,
nodeD,
nodeE,
nodeF,
};
var edges = new List
{
new Edge(nodeA, nodeB, 2),
new Edge(nodeA, nodeD, 8),
new Edge(nodeB, nodeD, 5),
new Edge(nodeB, nodeE, 6),
new Edge(nodeD, nodeE, 3),
new Edge(nodeD, nodeF, 2),
new Edge(nodeE, nodeC, 9),
new Edge(nodeE, nodeF, 1),
new Edge(nodeF, nodeC, 3)
};
var result = FindPath(nodes, edges, nodeA, nodeC);
if (result != null)
{
var node = result;
// yazdırma işlemi
while (node != null)
{
if (node.Next != null)
{
Console.WriteLine($"{node.Name} -> {node.Next.Name}");
}
else
{
Console.WriteLine($"{node.Name} ({node.Value})");
}
node = node.Next;
}
}
else
{
Console.WriteLine("Yol bulunamadı.");
}
}
private static Node FindPath(List nodes, List edges, Node from, Node to)
{
// değelerin sıfırlanması
foreach (var node in nodes)
{
node.Parent = null;
node.Next = null;
node.Value = int.MaxValue;
node.Discovered = false;
}
// başlangıç değeri için ilk değer ataması
from.Value = 0;
// Discovered olmayan ve en küçük değere sahip nodun seçilmesi
var current = GetMinNode(nodes);
while (current != null)
{
foreach (var edge in edges)
{
// Discovered node içeren Edgenin geçilmesi
if (edge.Left.Discovered || edge.Right.Discovered)
{
continue;
}
// Edge ilgili nodu içeriyorsa işlem yap
if (edge.Left == current || edge.Right == current)
{
// ilgili node dışındaki nodun atanması (diğer uçtaki node)
var node = edge.Left == current ? edge.Right : edge.Left;
// ilgili node ile diğer uçtaki node değerinin hesaplanması
var value = Math.Min(current.Value + edge.Length, node.Value);
// hesaplanan değer uçtaki node değerinden küçükse Parent ve Value değerini ata
if (value < node.Value)
{
node.Value = value;
node.Parent = current;
}
}
}
// Discovered değerinin set edilmesi
current.Discovered = true;
// mevcut node hedef değere eşit ise çık
if (current == to)
{
var parent = current.Parent;
// baştan sona yazdırma işlemi için next propertylerinin atanması
while (parent != null)
{
parent.Next = current;
current = parent;
parent = current.Parent;
}
return current;
}
else
{
// Discovered olmayan ve en küçük değere sahip nodun seçilmesi
current = GetMinNode(nodes);
}
}
return null;
}
private static Node GetMinNode(List nodes)
{
Node minNode = null;
foreach (var node in nodes)
{
// Discovered olamyan ve Value değeri Max olmayan nodları kullan
if (!node.Discovered && node.Value != int.MaxValue)
{
if (minNode == null || minNode.Value > node.Value)
{
minNode = node;
}
}
}
return minNode;
}
class Node
{
public Node Parent
{
get;
set;
}
public Node Next
{
get;
set;
}
public string Name
{
get;
}
public int Value
{
get;
set;
}
public bool Discovered
{
get;
set;
}
public Node(string name)
{
Name = name;
}
public override string ToString()
{
return Name;
}
}
class Edge
{
public Node Left
{
get;
}
public Node Right
{
get;
}
public int Length
{
get;
}
public Edge(Node left, Node right, int length)
{
Left = left;
Right = right;
Length = length;
}
public override string ToString()
{
return $"{Left} {Right} ({Length})";
}
}
}
}
hocam uğraşlarınız için teşekkürler.
Teşekkürler :)
Çok güzell bir video olmuş. İlk videoda böyle anlatım yapıp bir diğer videoda da kodlamasının yapılması mantıklı olabilir.
C# kodlama videosu da geldi :)
Çoktan izledim hocam teşekkür ederim değerli bilgileriniz için :)@@TechBuddyTR
Ağzınıza sağlık hocam çok teşekkürler
Teşekkürler hocam. Daha 2 gün önce çalışmıştım bu konuya, üstüne güzel oldu.
Çok iyi denk gelmiş o zaman. Kolay gelsin
Güzel bir konsept olmuş. Teşekkürler.
Teşekkürler :)
Sizi yeni keşfettim ve gerçekten videolarınızı çok faydalı buldum. Emeğiniz için teşekkür ederim.
Hoşgeldiniz o zaman :)
@@TechBuddyTR Hoşbuldum :)
Emeğiniz sağlık hocam...
Teşekkürler :)
Emeğinize sağlık hocam, çok teşekkürler
Teşekkürler
Çok teşekkürler, emeğinize sağlık.
Teşekkürler :)
emeğinize sağlık hocam
Teşekkürler :)
Hocam bunu kodlamaya gecirseniz daha guzel olurdu. Cunku boyle anlatan bircok kanal mevcut.
Kodlaması çok daha basit bunun aslında. Ancak ikisini tek videoda yapmak videoyu çok uzatacaktı. Belki başka bir videoda çözümü anlatabilirim.
Çok güzel bir anlatım olmuş devamını bekliyoruz
Benim de hedefim bu yönde :)
Hocam ilk konunun teorisini anlatıp arkasında uygularsanız süper bir seri olur.
Aynı video olduğunda çok uzuyor video, o zaman da kimse izlemiyor :) Belki ayrı bir videoda çekeriz :)
Emeğinize sağlık hocam.
Teşekkürler
Beyaz tahta çok öğretici oluyor
O zaman buradan devam :)
Üniversitede anılarım canlandı. Ne kadar çok algoritma çıkmış aklımdan.
Hocam F'e gitmenin 2 yolu da aynı maliyette olduğu için orada bir kargaşa çıktığını hissediyorum. Bir kontrol edebilir misiniz acaba ben mi bir şey kaçırıyorum. yani en kısa mesafe hem A>B>D>F>C hem de A>B>E>F>C .
Doğru F ye ulaşmanın 2 yolu var. Bu algoritma kısayı bulduktan sonra seçenekleri değerlendiriyor. Ancak yine aynı algoritma kullanılarak diğer tüm alternatifler bulunarak içinden en kısa olanları alternatif olarak da gösterilebilir.
basit ve güzel bir algoritma örneğini bizimle paylaştığınız için teşekkürler basit olduğunu anlatış tarzınızdan çıkardık , devamını bekliyoruz hocam :)
Teşekkürler :)
Hocam bu konudan bağımsız bir sorum var çok merak ediyorum milyon kullanıcısı olan uygulamalar veritabanını nasıl loadbalance yapıyor ? ben amerikadan bir kullanıcı isem database amerikadaysa , türkiyedeki bir kullanıcı search yaptığında beni nasıl bulabilir? eğer tüm databaselerde sorgu çalışırsa loadbalance'in anlamı kalmıyor yük tüm dünyaya yayılmış olacak. araştırdım kaynak bulamadım. Kaynak önerirseniz dili hiç farketmez almanca da olur öğrenmek istiyorum bu konuyu.
Emeğine sağlık hocam
Teşekkürler :)
Hocam ben Github linki koyacağım fakat UA-cam siliyor maalesef.
Bazı durumlarda youtube yapıyor böyle şeyler maalesef.
Hocam öncelikle sade anlatım için teşekkürler.
Kafama takılan şöyle bir soru var: A -> B -> E -> F -> C yolunun maliyeti de 12 oluyor. Algoritmada minimum fonksiyonunu kullandığımız için bu yolu eledik; ama eşit maliyetli olduğu için bu yolu da değerlendirememiz gerekmez miydi?
Ancak A -> B -> E yapdığımızda daha sonraki yolun kısa olup olmadığını bilmediğimiz için bu tercihi yapmıyoruz. Uygulama verimliliğini arttırmak için bu tarz seçimleri erkenden yapmak durumunda kalabiliyoruz.
@@TechBuddyTR anladım hocam, teşekkür ederim.
merhaba bir projem var genel olarak " Your ant colony must move from on point to another. How do you do it in the shortest time possible? This project will get you acquainted with graph traversal algorithms: your program will have to intelligently select paths and precise movements used by the ants " böyle bir şey istiyor dijkstra algoritması kullanabilir miyim
Tabi ki kullanılabilir.
Yöneyleme göstermediğimiz alakaya burda 'Vay' diyerek hayıflandım. üniversite notlarımı almaya ineceğim galiba.
Elinize sağlık. Bu ve bunun gibi yöntemleri öğrenmek, karşılaştığımız sorunlara çözüm bulurken nasıl düşünebileceğimize örnek olacaktır. Teşekkürler.
Elbette öyle. Bakış açısını genişleten uygulamalar/algoritmalar bunlar.
Teşekkürler.
Emeğine sağlık güzel olmuş
Teşekkürler :)
cok iyi hocam devamm
Hocam a'dan bye gitmenin yolu 2 c ye ise 8 ken ben diyelim ki a'dan bye gitmek daha mantıklı olduğu için onu seçtim fakat diyelimki d'ye gidecekken b'den d 'ye giden yol 20 birim c'den giden yol 5 birim olursa bu algoritmaya göre a->(2)b->(20)d a->(8)c->(5)d seçilen yol a,b,d üzerinden olacak ve yol uzayacak
Bizim hedefimiz A dan C ye gitmekti. Eğer D ye gidiyor olsaydık, algoritmayı ona göre çalıştıracaktık. Eğer yolda karar veriyorsanız, tüm bu algoritmayı bulunduğunuz konum için yeniden çalıştırmak gerekcekti. Umarım doğru anlamşımdır anlatmaya çalıştığınızı
Bir junior backend developer olarak, bu tip algoritmaların günlük hayatta ne gibi yerlerde kullanılması gerektiğine dair bir senaryo, kafamda canlanmıyor. Örneğin bir e-ticaret yada banka sistemlerinde ne gibi bir ihtiyacı karşılıyor? Bir örnek verebilecek olan varsa çok memnun olurum :)
Tamamen ihtiyaca yönelik aslında, genellikle gezgin satıcı problemi ile daha anlatılabilir oluyor bu tip algoritmalar. Bir örnek olarak kargo veya kurye işlemlerinin olduğunu düşünelim, gün içinde gideceği birden fazla rota olabilir, bu rotalar arasında en kısa mesafe, en düşük yakıt, en az eğim vb gibi kıyaslarda kullanılabilir.
Farketmediğimiz birçok alanda kullanılan algoritmalar bunlar. Junior ken ve şu an çalıştığınız şirkette kullanmanız gerekmeyebilir belki ama uygulama verimliliğinin ön planda olduğu şirketlerde bir hayli kullanılır bu tarz algoritmalar. En temelde, TCP protokolü üzerinden network yapılandırılması yapılır ve tcp üzerinden paketler gönderilir. Daha karmaşık network yapılarında, sunucular arası paketlerin daha hızlı gidebilmesi için bu tarz algoritmalar, sunucular arası en kısa yolları bulur mesela.
@@TechBuddyTR network tarafını düşününce gayet mantıklı geldi şimdi hocam. Doğal olarak isteklerin ve sonuçların hızlı gelmesi gerek. Teşekkür ederim :)
@@ismailkarpuz8096 size de çok teşekkür ederim hocam. Bilgilendirdiniz beni :)
Hocam !!! Super
From Azerbaijan
Azerbajian'a selamlar o halde :)
Yöneylem araştırması (:
Çok güzel içerik!
Teşekkür ederim :)
Hocam yks mat sorusunu siz mi hazırlıyorsunuz 😁
Henüz hazırlamadım ama talep gelirse hazırlayayım :-P
hocam yanlış çözdünüz 7 +3 =11 dediniz ve e noktasını seçmediniz bu yüzden başka nokta seçtiniz ve yanlış buldunnuz
Thanks🙏❤
bunla a* arasinda hangisini ne duruma gore tercih etmeliyiz
👏Arşivlik
At fava bekle :)
@@TechBuddyTR :) takipteyim
Nokta demiycez, node diycez.
Bağlantı demiycez, edge diycez.
Node nokta demek değil düğüm demek.
Çok ama çok kötü anlatım. İnsana bildiğini unutturur...
Teşekkürker. Daha iyi kaynakları paylaşabilirseniz, insanlar faydalansın
Teşekkürler.