August 15, 2017

Çok teşekkür ederim ama asıl görevim dört yaşında çocuk peşinde koşmak olduğundan Levent'ten fazla uzaklaşmak istemiyorum. Ve tabii eşinin gelmesinde bir sakınca yok. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 17, 2017

Arkadaslar selamlar Ali Abiyle en son konusmamizda bulusma saatini 12 olarak dusunduk.
Yer ise hala ayni Ali abinin belirttigi besktastaki yer. Mert e de daha cok uyar diye dusunduk.

Saygilar sevgiler
Erdemdem

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 29, 2017

Ali Abi ile görüşmede konuştuğumuz konulardan biri BFS(breath first search) ve DFS(Depth First Search) idi. Ben tatilde çocukdan fırsat buldukca bir şeyler yazdım. Gece gec olsada ve kodun tam ne yaptığını ve ne yapacağını açıklamamış olsam bile geri donus babında paylaşmak istedim .

Kısaca :

Bu iki algoritma yarışmalarda çok kullanıldığı için yazmak istedim.
Kodun içinde yapmam gereken açıklamalar var.
Neyi çözmeye çalıştığımı net anlatmam lazım
Ve sizlere sorular sormam lazım.

Dediğim gibi sabırsızlık nedeni ile paylaşıyorum idare ediniz.

import std.stdio;
import std.string;
import std.algorithm;
import std.conv;
import std.array;
import std.range;
import std.math;
import std.container;


interface Node( NodeType)
{
	NodeType.Type GetValue();
	NodeType[] GetConnectedElems();
	void AddConnection( NodeType[] connections... );
	uint GetDist();
	void SetDist( uint newDist );
	void SetVisited();
	bool IsVisited();
}

class IntNode : Node!(IntNode)
{
public:
   alias Type = int;
	this( int val )
	{
		value = val;
		isVisited = false;
		dist      = uint.max;
	}


	IntNode[] GetConnectedElems()
	{
		return connectedNodes;
	}

	void AddConnection( IntNode[] connections... )
	{
		foreach (connection; connections) {
			connectedNodes ~= connection;
		}
	}

	int GetValue()
	{
		return value;
	}

	uint GetDist()
	{
		return dist;
	}

	bool IsVisited()
	{
		return isVisited;
	}

	void SetVisited()
	{
		isVisited = true;
	}

	void SetDist( uint newDist )
	{
		dist = newDist;
	}

	bool SetDistIfCloser ( uint newDist )
	{
		if ( newDist < dist )
		{
			dist = newDist;
			return true;
		}
		return false;
	}

	IntNode[] connectedNodes;
	int value;
	uint dist;
	bool isVisited;
}

struct Graph(NodeType)
{
   NodeType[] adjMatrix;

   void BFS( VisitBehaviour )( VisitBehaviour visitor, NodeType vertex)
   {
		import std.container : DList;
		DList!(NodeType) queue;

       queue.insertBack(vertex);
       while (!queue.empty())
       {
           auto current = queue.front();
			queue.removeFront();
           foreach ( elem ; current.GetConnectedElems() )
           {
               if ( visitor( elem, current ) )
                   queue.insertBack(elem);
           }
       }
   }

	void DFSHelper( NodeType element, bool[] visitedList )
   {
       element.SetVisited();
		//Do something
		writeln("Hi I am vertex: ", element.GetValue() );
       foreach ( elem; element.GetConnectedElems())
       {
           if ( !elem.IsVisited() )
           {
               DFSHelper(elem, visitedList);
           }
       }
   }

   void DFS ()
   {
       bool[] visitedList;
		visitedList.length = adjMatrix.length;

       for (uint i = 0; i < adjMatrix.length; i++)
       {
           if ( !adjMatrix[i].IsVisited() )
               DFSHelper(adjMatrix[i], visitedList);
       }
   }
};



int main(string[] argv)
{
	IntNode first = new IntNode(0);
	IntNode second = new  IntNode(1);
	IntNode third = new  IntNode(2);
	IntNode fourth = new  IntNode(3);

	first.AddConnection(second, third);
	second.AddConnection(fourth);

	Graph!(IntNode) cities;
	cities.adjMatrix ~= first;
	cities.adjMatrix ~= second;
	cities.adjMatrix ~= third;
	cities.adjMatrix ~= fourth;

	bool visitStrategy( IntNode current, IntNode parent )
	{
		uint newDist = parent.GetDist() + 1;
		if ( newDist < current.GetDist() )
		{
			current.SetDist(newDist);
			return true;
		}
		return false;
	}

	cities.BFS( &visitStrategy, first);
   return 0;
}

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 29, 2017

Bir mevzuda şu DCompute un bir ucundan nasıl tutacağımızdı ben projeyi sürdüren arkadaşın(Wilson) koduna nasıl katkı sağlayacağımı anlayamamıştım yine fırsat buldukça şu kitabı https://www.amazon.com/CUDA-Handbook-Comprehensive-Guide-Programming/dp/0321809467 okuyup teori bilgimi artırmaya çalışıyorumki şu işin bir yerinden tutabileyim.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 29, 2017

Anladığım kadarıyla bu arama metodu işleyebilmek için gereken yapı temellendirilmiş ve hatta kurulumu yapılarak (düğümler birbirine bağlanarak) her şey hazır hala getirilmiş. Hangi düğümün aranacağı ve bu düğümün değerinin nasıl girileceğini anlayamadım, komut satırından argüman girerek mi yapmayı hedefliyoruz?

Ayrıca kurulan sınıfın üye değişkenlerini en altta bulmak biraz okumayı güçleştiriyor sanırım. Birkaç kere yukarı aşağı gezerek ancak keşfedebildim. Son olarak gezinme yöntemi (Sağ/Sol, Sol/Sağ, Sol Düğüm Sağ, Sağ Düğüm Sol) seçilebilecek mi, visitStrategy()?

Dip Not: Belki kodun yer aldığı mesajdan itibaren yeni bir başlıkta (bu başlığa yine referans vererek) devam etsek arama motorlarından gelenlerin motivasyonunu arttırabilir.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2
Next ›   Last »