مشاهده نسخه کامل
: درخواست الگوريتم هاي هوشمند براي بازي
reza22222
24-03-2008, 22:51
نياز به الگوريتم هايي مثل دوز يا مانند آن:18:
Moh3en_DDD
25-03-2008, 02:13
سلام ...
برای دوز الگوریتم های خیلی خیلی زیاد وجود داره ...
ولی یکی از بهترین هاش که کلا خودم پایه گذارش هستم (:d) به زبان C++ نوشتم ... به یک زبانه دیگه توضیح بدم یا فقط الگوریتم هوش مصنوعیش را می خوای ؟ :10:
Moh3en_DDD
01-04-2008, 22:34
اون کجاش هوش مصنوعی داره ؟ :d
فقط یک سری عدد را چک می کنه ک تکراری نباشند .
آره خوب! مگه باید فقط هوش مصنوعی داشته باشه!
ایشون گفتم به الگوریتم هایی شبیه به دوز و این جور چیزا نیاز دارن!
سلام الیکم و رحمه الله و برکاته
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تان قرا دهید تا کل فایل مورد نیاز شما برای بازی مثل دوز را بفرستم.
یا حق
اون کجاش هوش مصنوعی داره ؟ :d
فقط یک سری عدد را چک می کنه ک تکراری نباشند .
قربان این یکی از مسائل ارضای محدودیت در هوش مصنوعی (Constraint satisfation) است که آموزش آن برای مبتدیان پیشنهاد داده می شود.
بهترین روش در بازی های پیچیده استراتژی تولید و آزمون (Generate and test)وجستجو به روش تپه نوردی (Hill Climbing) که در اکثر بازی های خوش ساخت اول شخص اکشن به کار می رود.
دوست خوبم النصر اگر ممکنه کد هایی که در پست شماره ی 6 گذاشتی رو داخل تگ کد قرار بده چون اینجوری خوندنشون تقریباً غیر ممکنه!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.