ورود

نسخه کامل مشاهده نسخه کامل : درخواست الگوريتم هاي هوشمند براي بازي



reza22222
24-03-2008, 22:51
نياز به الگوريتم هايي مثل دوز يا مانند آن:18:

Moh3en_DDD
25-03-2008, 02:13
سلام ...

برای دوز الگوریتم های خیلی خیلی زیاد وجود داره ...

ولی یکی از بهترین هاش که کلا خودم پایه گذارش هستم (:d) به زبان C++ نوشتم ... به یک زبانه دیگه توضیح بدم یا فقط الگوریتم هوش مصنوعیش را می خوای ؟ :10:

mst_ab
01-04-2008, 07:09
سودوکو نمی خوای؟

Moh3en_DDD
01-04-2008, 22:34
اون کجاش هوش مصنوعی داره ؟ :d

فقط یک سری عدد را چک می کنه ک تکراری نباشند .

mst_ab
01-04-2008, 22:51
آره خوب! مگه باید فقط هوش مصنوعی داشته باشه!
ایشون گفتم به الگوریتم هایی شبیه به دوز و این جور چیزا نیاز دارن!

النصر
06-04-2008, 19:46
سلام الیکم و رحمه الله و برکاته

Search (Node u)
{
if (u is a leaf)
return score of u;
else if (u is a min node)
for (all childs of u u : V1,V2,...,Vn)
return Min [search (V1),...,Search (V(n))];
else
for (all childs of u)
return Max [search(V1),...,search(Vn)];
}
این الگوریتم قادر خواهد بود تا معین کند کدامیک از فرزندان ریشه بالاترینامتیاز را دارد , لذا فرزندی بعنوان حرکت بعدی انتخاب خواهد شد که بیشترین امتیاز را داشته باشد . در بازی شطرنج روش من اجرایی نیست چرا که در این بازی ها تعداد گره های درخت بسیار زیاد بوده و زمان جستجو به شدت طولانی می شود. زمان جستجو در الگوریتم مطرح است و وابسته به تعداد گره های درخت بازی است و این تعداد گره در درخت بازی شطرنج و یا دیگر بازی های مشابه بسیار زیاد است

منطق گزاره ها در ریاضی که مرتبط با هوش مصنوعی است
Sentence -> Atomic -> Sentence|Complex - Sentence
Atomic - Sentences -> True|False|P|Q|R|...
Complex - Sentence -> (Sentence)|Sentence Connective Sentence| - Sentence
Connective -> /\ | \/ | <=>|=>
عبارتی که از دستور زبان بالا تبعیت کند فرمول خوش ترکیب می گویند
نمونه
~ ~ A = A
A \/ true = A A /\ true = A A -> true = true
A \/ false = A A /\ false = false A -> false = ~ A
A \/ A = A A /\ A = A true => A=A
A \/ A -=true A /\ ~ A = false false => A=true A => A = true
A => B =~ A \/ B
~(A =>B) = A /\ ~ B
A => B = A /\ ~ B => False
A /\ (~A \/ B) = A/\ B A \/ (A /\ B) = A
A /\ (B \/ C) = (A /\ B) \/ (A /\ C)
A \/ (B /\ C) = (A /\ B) /\ (A /\ C)
~ (A /\ B) =~ A \/ ~ B
~ (A \/ B) =~ A /\ ~ B
این هم یک الگوریتم به شیوه عمیق کننده تکراری برای کاهش درخواست حافظه
function IDA*(problem) returns a solution sequence
inputs: problem.a problem
loca variables:f -lim it.the current f-CosT limit
root.a node
root <- Make - NODE(INTIAL-STATE[problem])
f - limit <- f -Cost(root)
loop do
Solution,f - limit <- DFS-CONTOUR(root.f- lim it)
if solution is non - null then return solution
if f - lim it = oo then return failure;end
function DFS-COUNTER(node,f -lim it)returns a solution sequence and a new
f-CosT lim it
inputs : node.anode
F lim it, the current f -COST lim it
Local variables : next -f,the f -lim it for the next contour,initially oo
if f -COST|node|>f -lim it then return null,f -COST[node]
if GOAL -TEST[problem](STATE[node])then return node, f -lim it
for each nodes in SUCCESSORS(node)do
Solution, new -f <-DFS -CONTOUR(s,lim it)
if solution is non - null then return solution,f -lim it
next -f <- MIN(next -f,new -f);end
Return null,next,f
توضیح: دو صفر پشت سر هم در خط 11 ام بینهایت است
زمانی که جستجو داخل یک ناحیه داده می شود , کامل می شود و یک تکرارجدید با استفاده از f -COST جدید برای ناحیه بعدی , آغازمی شود.

برادر عزیز لطفا Emailتان قرا دهید تا کل فایل مورد نیاز شما برای بازی مثل دوز را بفرستم.

یا حق

النصر
06-04-2008, 19:53
اون کجاش هوش مصنوعی داره ؟ :d

فقط یک سری عدد را چک می کنه ک تکراری نباشند .
قربان این یکی از مسائل ارضای محدودیت در هوش مصنوعی (Constraint satisfation) است که آموزش آن برای مبتدیان پیشنهاد داده می شود.

بهترین روش در بازی های پیچیده استراتژی تولید و آزمون (Generate and test)وجستجو به روش تپه نوردی (Hill Climbing) که در اکثر بازی های خوش ساخت اول شخص اکشن به کار می رود.

mst_ab
06-04-2008, 21:24
دوست خوبم النصر اگر ممکنه کد هایی که در پست شماره ی 6 گذاشتی رو داخل تگ کد قرار بده چون اینجوری خوندنشون تقریباً غیر ممکنه!

النصر
06-04-2008, 21:33
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید