කෙනෙකුට නීති රීති දහස් ගණනක් කළමනාකරණය කළ හැක්කේ කෙසේද?


215

මම යෙදුමක් තැනීමට සලකා බලමින් සිටිමි, එහි හරය නම් දහස් ගණනකින් සමන්විත වේ නම් ... එසේ නම් ... වෙනත් ප්‍රකාශ. යෙදුමේ පරමාර්ථය වන්නේ ඕනෑම භූ දර්ශනයක එළදෙනුන් ගමන් කරන්නේ කෙසේද යන්න පුරෝකථනය කිරීමට හැකිවීමයි. සූර්යයා, සුළඟ, ආහාර ප්‍රභවය, හදිසි සිදුවීම් යනාදිය ඒවාට බලපායි.

එවැනි යෙදුමක් කළමනාකරණය කරන්නේ කෙසේද? IF ප්‍රකාශ සිය ගණනකට පසු, වැඩසටහන ප්‍රතික්‍රියා කරන්නේ කෙසේද යන්න අනාවැකි කිව නොහැකි තරම් හොඳ වනු ඇතැයි මම සිතමි. යම් ප්‍රතික්‍රියාවකට තුඩු දෙන දේ නිදොස් කිරීම මඟින් සෑම විටම IF ප්‍රකාශය ගස හරහා ගමන් කළ යුතුය.

රීති එන්ජින් ගැන මම ටිකක් කියවා ඇත්තෙමි, නමුත් ඒවා මෙම සංකීර්ණතාවයෙන් මිදෙන්නේ කෙසේදැයි මම නොදනිමි.


22
ඔබ ඩීඑස්එල් ක්‍රමලේඛනය දෙස බැලිය යුතුය: en.wikipedia.org/wiki/Domain-specific_language තවද ඔබට දත්ත පදනම් කරගත් මෙටා රීති එන්ජිමක් නිර්මාණය කළ හැකිය. උදා: ඔබට දත්ත වලින් ආකෘති ජනනය කළ හැකිය (උදා: දත්ත කැණීමේ KDD)
Darknight

15
"විශේෂ expert පද්ධතිය" සහ "රීට් නෙට්" සඳහා ගූගල්; වාසනාව.
ස්ටීවන් ඒ. ලෝව්

9
දෘඩ කේත කළ විට / පසුව ප්‍රභව කේතයෙන් ප්‍රකාශයන් අනුකරණයට හේතු වන බාහිර දත්ත වෙත ගෙන යන්න.
Kwebble

6
මම පෙළ ගොනුවක යම් අගයන් බැඳ ඇති අතර නම් අඩංගු හැෂ්මැප් හරහා යාමට ලූපයක් භාවිතා කරමි.
ජේම්ස් පී.

2
ඩේවිඩ් - ක්‍රමලේඛකයින්ගේ ප්‍රශ්න 15 කට වඩා වැඩි ගණනක් පළ කරන විට CW බවට පරිවර්තනය වේ. 16 වන පිළිතුර පළ කරන්නේ කවුරුන්ද යන්න අපට පාලනය කළ නොහැක.
ක්‍රිස්එෆ්

Answers:


73

තාර්කික ක්‍රමලේඛන භාෂාව Prolog ඔබ සොයන දේ විය හැකිය. ඔබේ ගැටළු ප්‍රකාශය එය හොඳ සුදුසුකමක් දැයි තක්සේරු කිරීමට තරම් නිශ්චිත නොවන නමුත් එය ඔබ කියන දෙයට සමාන ය.

Prolog වැඩසටහනක් අදාළ වන කරුණු සහ නීති වලින් සමන්විත වේ. මෙන්න සරල උදාහරණ රීතියක් වන්නේ “එළදෙනක් බඩගිනි නම් ස්ථානයකට මාරු වන අතර පැරණි ස්ථානයට වඩා නව ස්ථානයේ ආහාර තිබේ නම්”:

moves_to(Cow, Location) :-
  hungry(Cow),
  current_location(Cow, OldLoc),
  food_in(OldLoc, OldFood), food_in(Location, NewFood),
  NewFood > OldFood.

ලොකු අකුරුවල ඇති සියල්ල විචල්‍යයන් වේ, ඔබ එහි වටිනාකම නොදන්නා දේවල්. සියලුම තත්වයන් සපුරාලන මෙම විචල්‍යයන් සඳහා අගයන් සොයා ගැනීමට Prolog උත්සාහ කරයි. මෙම ක්‍රියාවලිය සිදු කරනු ලබන්නේ ප්‍රොලොග් සහ ඒ හා සමාන තාර්කික ක්‍රමලේඛන පරිසරයන්හි හදවත වන ඒකීයකරණය නම් ප්‍රබල ඇල්ගොරිතමයකින් ය.

නීතිරීතිවලට අමතරව කරුණු පිළිබඳ දත්ත සමුදායක් සපයනු ලැබේ. ඉහත නීතිරීති සමඟ ක්‍රියා කරන සරල උදාහරණයක් පහත පරිදි විය හැකිය:

current_location(white_cow, pasture).

current_location(black_cow, barn).
hungry(black_cow).

current_location(angry_bull, forest).
hungry(angry_bull).

food_in(barn, 3).
food_in(pasture, 5).
food_in(forest, 1).

සුදු_කෝව් සහ තණබිම් ආදිය අගනගරවල ලියා නොමැති බව සැලකිල්ලට ගන්න. ඒවා විචල්යයන් නොවේ, ඒවා පරමාණු ය.

අවසාන වශයෙන් ඔබ විමසුමක් කර කුමක් සිදුවේදැයි විමසන්න.

?- moves_to(white_cow, Destination).
No.
?- moves_to(black_cow, Destination).
Destination = pasture
?- moves_to(Cow, Destination).
Cow = black_cow, Destination = pasture
Cow = angry_bull, Destination = barn
Cow = angry_bull, Destination = pasture

පළමු විමසුම අසන්නේ සුදු ගවයා ගමන් කරන්නේ කොතැනටද යන්නයි. ඉහත නීතිරීති සහ කරුණු අනුව, පිළිතුර නැත. මෙය ඔබට අවශ්‍ය දේ අනුව "මම නොදනිමි" හෝ "එය චලනය නොවේ" ලෙස අර්ථ දැක්විය හැකිය.

දෙවන විමසුම අසන්නේ කළු ගවයා ගමන් කරන්නේ කොතැනටද යන්නයි. එය කෑමට තණබිම් කරා ගමන් කරයි.

අවසාන විමසුම අසන්නේ සියලුම ගවයින් ගමන් කරන්නේ කොතැනටද යන්නයි. එහි ප්‍රති result ලයක් ලෙස ඔබට හැකි සෑම දෙයක්ම (එළදෙන, ගමනාන්තය) ලබා ගත හැකිය. මෙම අවස්ථාවේ දී කළු ගොනා බලාපොරොත්තු වූ පරිදි තණබිම් කරා ගමන් කරයි. කෙසේ වෙතත්, කෝපයට පත් ගොනාට නීති රීති සපුරාලන තේරීම් දෙකක් ඇත, එය තණබිම් හෝ අාර් ඒන් වෙත යා හැකිය.

සටහන: මම අවසන් වරට Prolog ලියා වසර ගණනාවක් ගත වී ඇත, සියලු උදාහරණ කෘතිමව වලංගු නොවිය හැකි නමුත් අදහස නිවැරදි විය යුතුය.


11
-1: Prolog කිසි විටෙකත් නිවැරදි පිළිතුර විය හැකි යැයි මම නොසිතමි. ඔව්, Prolog හි if-else නීති ලබා ගැනීම පහසු විය හැකිය. නමුත් නිසැකවම ඔබට වෙනත් දෙයක් කිරීමට සිදුවනු ඇත. එය කුමක් වුවත් (IO; GUI, වෙබ් සංවර්ධනය, ...) එය Prolog සමඟ වේදනාවක් වනු ඇත.
මාටින් තෝමා

4
Learprolognow.com බලන්න වෙනත් භාෂාවක් තුළ ප්‍රොග්ලොග් කාවැද්දීම පෙරට වඩා පහසුය
සැකරි කේ

Ac සැචරික්: සබැඳිය කැඩී ඇත.
රෙනීපෙට්

Ar මාර්ටින් තෝමා: ඔබේ අදහස පැහැදිලි කළ හැකිද? Prolog IMHO හි ඇති ප්‍රධාන ගැටළු නම් 1. සෙවීම පාලනය කිරීමේ ප්‍රකාශන ක්‍රමයක් සහ 2. ටයිප් කිරීම. නමුත් ඔබගේ අයදුම්පත මේ දෙක මත බෙහෙවින් රඳා නොපවතී නම්, මෙහි ප්‍රෝග්‍රෑම් භාවිතා කිරීමේ ගැටලුවක් මා දකින්නේ නැත
එස්එන්

140

නිරාකරණ නම් වෙබ් ඔබ එක් එක් නිශ්චිත පාලනය ස්වාධීනව, ව්යංගාර්ථවත්ව කෙරෙන නීතියක් එන්ජිම නිර්මාණය කළ හැකි ප්රශ්නයක්. මේ සඳහා තවත් ශෝධනයක් වනුයේ නීති රීති නිර්මාණය කිරීම සඳහා වසම් විශේෂිත භාෂාවක් (ඩීඑස්එල්) නිර්මාණය කිරීමයි, කෙසේ වෙතත් ඩීඑස්එල් පමණක් ගැටළුව එක් කේත පදනමකින් (ප්‍රධාන) සිට තවත් (ඩීඑස්එල්) දක්වා විස්ථාපනය කරයි. ව්‍යුහය නොමැතිව ඩීඑස්එල් ස්වදේශීය භාෂාවට (ජාවා, සී # යනාදිය) වඩා හොඳ නොවනු ඇත, එබැවින් වැඩිදියුණු කළ ව්‍යුහාත්මක ප්‍රවේශයක් සොයා ගැනීමෙන් පසුව අපි නැවත ඒ වෙත පැමිණෙමු.

මූලික ගැටළුව වන්නේ ඔබට ආකෘතිකරණ ගැටලුවක් තිබීමයි. ඔබට මෙවැනි සංයෝජන තත්වයන් හමු වූ සෑම අවස්ථාවකම තත්වය විස්තර කරන ඔබේ ආදර්ශ සාරාංශය රළු බව පැහැදිලි ලකුණකි. ඔබ බොහෝ විට එක් ආයතනයක විවිධ මාදිලිවලට අයත් විය යුතු අංග ඒකාබද්ධ කරයි.

ඔබ දිගින් දිගටම ඔබේ ආකෘතිය බිඳ දැමුවහොත් ඔබ අවසානයේදී මෙම සංයුක්ත ආචරණය සම්පූර්ණයෙන්ම විසුරුවා හරිනු ඇත. කෙසේ වෙතත්, මෙම මාවතේ යන විට ඊටත් වඩා විශාල අවුල් ජාලයක් නිර්මාණය කරමින් ඔබේ සැලසුම අතරමං වීම පහසුය, මෙහි පරිපූර්ණත්වය ඔබේ මිතුරා නොවේ.

සීමිත රාජ්‍ය යන්ත්‍ර සහ රීති එන්ජින් මෙම ගැටළුව බිඳ දමා වඩාත් කළමනාකරණය කළ හැකි ආකාරය පිළිබඳ උදාහරණයක් පමණි. මෙහි ඇති ප්‍රධාන අදහස නම්, මෙවැනි සංයුක්ත ගැටළුවකින් මිදීමට හොඳ ක්‍රමයක් වන්නේ බොහෝ විට මෝස්තරයක් නිර්මාණය කිරීම සහ ඔබේ පද්ධතිය සතුටුදායක ලෙස ක්‍රියාත්මක වන තුරු එය කැදැලි මට්ටම්වල දැන්වීම්-ඔක්කාරය පුනරාවර්තනය කිරීමයි . සංකීර්ණ රටා නිර්මාණය කිරීම සඳහා අස්ථි බිඳීම් භාවිතා කරන ආකාරය පිළිබඳ අකින්. ඔබ ඔබේ පද්ධතිය අන්වීක්ෂයකින් හෝ ඉහළ පක්ෂීන්ගේ දෘෂ්ටියෙන් බැලුවත් නීති රීති එලෙසම පවතී.

මෙය ඔබගේ වසමට අදාළ කිරීමේ උදාහරණය.

ඔබ උත්සාහ කරන්නේ ගවයින් භූමි ප්‍රදේශයක් හරහා ගමන් කරන ආකාරය ආදර්ශනය කිරීමට ය. ඔබේ ප්‍රශ්නයට විස්තර නොමැති වුවද, ඔබගේ විශාල ප්‍රමාණයේ අයිඑෆ්එස් වැනි තීරණ කොටස් අඩංගු වන බව මම අනුමාන කරමි, if cow.isStanding then cow.canRun = trueනමුත් ඔබ උදාහරණයක් ලෙස භූමි ප්‍රදේශය පිළිබඳ විස්තර එකතු කරන විට ඔබ ව්‍යාකූල වනු ඇත. එබැවින් ඔබට ගැනීමට අවශ්‍ය සෑම ක්‍රියාවක් සඳහාම ඔබට සිතිය හැකි සෑම අංශයක්ම පරීක්ෂා කර බලා ඊළඟ සත්‍යාපනය සඳහා මෙම සත්‍යාපන නැවත සිදු කළ යුතුය.

පළමුවෙන්ම අපට අපගේ පුනරාවර්තන සැලසුම අවශ්‍ය වන අතර, මේ අවස්ථාවේ දී වෙනස්වන තත්වයන් අනුකරණය කිරීමට එෆ්එස්එම් එකක් වනු ඇත. එබැවින් මම කළ යුතු පළමු දෙය නම් රාජ්‍ය අතුරු මුහුණතක්, සංක්‍රාන්ති අතුරුමුහුණතක් සහ සමහර විට සංක්‍රාන්ති සන්දර්භයක් නිර්වචනය කරමින් එෆ්එස්එම් යොමු කිරීම ක්‍රියාත්මක කිරීමයි.එමඟින් අනෙක් දෙදෙනාට ලබා ගත හැකි හවුල් තොරතුරු අඩංගු විය හැකිය. මූලික එෆ්එස්එම් ක්‍රියාවට නැංවීම සන්දර්භය නොසලකා එක් සංක්‍රාන්තියක සිට තවත් සංක්‍රාන්තියකට මාරු වනු ඇත, මෙහි රීති එන්ජිමක් පැමිණේ. සංක්‍රාන්තිය සිදුවීමට නම් සපුරාලිය යුතු කොන්දේසි රීති එන්ජිම පිරිසිදු ලෙස ආවරණය කරයි. මෙහි නීති රීති එන්ජිමක් නීති ලැයිස්තුවක් තරම් සරල විය හැකිය. අප සංක්‍රාන්තියක් සිදුවිය යුතුද යන්න පරීක්ෂා කිරීම සඳහා, නීති ලැයිස්තුව නැවත සඳහන් කරන්න සහ ඒවායින් කිසිවක් අසත්‍ය ලෙස තක්සේරු කළහොත් සංක්‍රාන්තිය සිදු නොවේ. එෆ්එස්එම් හි වත්මන් තත්වය වෙනස් කිරීම සඳහා චර්යාත්මක කේතය සංක්‍රාන්තියේම අඩංගු වේ (සහ විය හැකි වෙනත් කාර්යයන්).

දැන්, මම දෙවියන්ගේ මට්ටමින් තනි විශාල එෆ්එස්එම් එකක් ලෙස අනුකරණය ක්‍රියාත්මක කිරීමට පටන් ගන්නේ නම්, අවසන් විය හැකි තත්වයන්, සංක්‍රාන්ති ආදිය සමඟ මම අවසන් කරමි. එසේ නොමැති නම් අවුල් සහගත බවක් පෙනෙන්නට තිබුණත් එය සැබවින්ම පැතිරී ඇත: සෑම අයිඑෆ් දැන් රීතියක් සන්දර්භය පිළිබඳ නිශ්චිත තොරතුරුවලට එරෙහිව පරීක්ෂණයක් සිදු කරයි (මේ අවස්ථාවේ දී එහි බොහෝ දේ අඩංගු වේ) සහ සෑම IF ශරීරයක්ම සංක්‍රාන්ති කේතයේ කොතැනක හෝ තිබේ.

අස්ථි බිඳවැටීම ඇතුලත් කරන්න: පළමු පියවර වනුයේ එක් එක් එළදෙන සඳහා එෆ්එස්එම් එකක් නිර්මාණය කිරීමයි. එහිදී ප්‍රාන්තයන් ගවයාගේ අභ්‍යන්තර රාජ්‍යයන් (සිටගෙන, ධාවනය, ඇවිදීම, තෘණ යනාදිය) වන අතර ඒවා අතර සංක්‍රාන්තිය පරිසරයට බලපානු ඇත. ප්‍රස්ථාරය සම්පුර්ණ නොවිය හැකි ය, නිදසුනක් ලෙස තණබිමට ප්‍රවේශ විය හැක්කේ ස්ථාවර තත්වයෙන් පමණි, වෙනත් ඕනෑම සංක්‍රාන්තියක් ප්‍රතික්ෂේප කරනු ලබන්නේ හුදෙක් ආකෘතියට නොපැමිණීම හේතුවෙනි. මෙන්න ඔබ effectively ලදායි ලෙස දත්ත විවිධ මාදිලි දෙකකින් වෙන් කරයි, එළදෙන සහ භූමි ප්‍රදේශය. සෑම එකක්ම තමන්ගේම ගුණාංග කට්ටලයක් ඇත. මෙම බිඳවැටීම මඟින් ඔබේ සමස්ත එන්ජින් සැලසුම සරල කිරීමට ඉඩ ලබා දේ. දැන් ඔබට තනි රීති එන්ජිමක් තිබීම වෙනුවට ඔබට නිශ්චිත තොරතුරු තීරණය කරන බහු, සරල රීති එන්ජින් (එක් එක් සංක්‍රාන්ති සඳහා එකක්) තිබේ.

මම එෆ්එස්එම් සඳහා එකම කේතය නැවත භාවිතා කරන නිසා මෙය මූලික වශයෙන් එෆ්එස්එම් හි වින්‍යාසයකි. අපි කලින් ඩීඑස්එල් ගැන සඳහන් කළ විට මතකද? ඔබට ලිවීමට නීති සහ සංක්‍රාන්ති රාශියක් තිබේ නම් ඩී.එස්.එල්.

ගැඹුරට යනවා

දැන් ගවයාගේ අභ්‍යන්තර තත්වයන් කළමනාකරණය කිරීමේ සියලු සංකීර්ණතාවයන් සමඟ දෙවියන් වහන්සේට තවදුරටත් කටයුතු කිරීමට අවශ්‍ය නැත, නමුත් අපට එය තවදුරටත් තල්ලු කළ හැකිය. උදාහරණයක් ලෙස භූමිය කළමනාකරණය කිරීමේදී තවමත් සංකීර්ණතා රාශියක් ඇත. බිඳවැටීම ප්‍රමාණවත් වන්නේ කොතැනදැයි ඔබ තීරණය කරන්නේ මෙතැනදීය. ඔබගේ දෙවියන්ගේ නිදසුනක් ලෙස ඔබ භූමි ගතිකතාවයන් (දිගු තණකොළ, මඩ, වියළි මඩ, කෙටි තණකොළ ආදිය) කළමනාකරණය කිරීම අවසන් කළහොත් අපට එකම රටාව නැවත කළ හැකිය. සියළුම භූමිෂ් states රාජ්‍යයන් (දිගු තණකොළ, කෙටි තණකොළ, මඩ, වියළි, ​​ආදිය) නිස්සාරණය කිරීමෙන් නව භූමි ප්‍රදේශයක් වන එෆ්එස්එම් තුළට ප්‍රාන්තයන් අතර සංක්‍රාන්ති හා සමහර විට සරල නීති රීති උකහා ගැනීමෙන් එවැනි තර්කනයක් භූමිය තුළම කාවැද්දීම වළක්වා ගත නොහැක. නිදසුනක් ලෙස මඩ සහිත තත්වයට පත්වීම සඳහා රීති එන්ජිම දියර සොයා ගැනීම සඳහා සන්දර්භය පරීක්ෂා කළ යුතුය, එසේ නොමැති නම් එය කළ නොහැක. දැන් දෙවියන් වහන්සේ වඩාත් සරල වී ඇත.

ඔබට ස්වයං පාලනයක් ලබා දීමෙන් එෆ්එස්එම් පද්ධතිය සම්පූර්ණ කළ හැකි අතර ඒ සෑම නූලක්ම ලබා දෙන්න. මෙම අවසාන පියවර අවශ්‍ය නොවන නමුත් ඔබේ තීරණ ගැනීමේදී (විශේෂිත එෆ්එස්එම් දියත් කිරීම හෝ කලින් තීරණය කළ තත්වයක් ආපසු ලබා දීම) වෙනස් කිරීමෙන් පද්ධතියේ අන්තර්ක්‍රියා ගතිකව වෙනස් කිරීමට එය ඔබට ඉඩ සලසයි.

සංක්‍රාන්ති වලට “කළ හැකි වෙනත් කාර්යයන්” ද කළ හැකි බව අප සඳහන් කළ ආකාරය මතකද? විවිධ මාදිලි (FSM) එකිනෙකා සමඟ සන්නිවේදනය කිරීමේ හැකියාව එකතු කිරීමෙන් එය ගවේෂණය කරමු. ඔබට සිදුවීම් සමූහයක් නිර්වචනය කළ හැකි අතර එක් එක් එෆ්එස්එම් වෙත මෙම සිදුවීම්වලට සවන්දෙන්නන් ලියාපදිංචි කිරීමට ඉඩ දිය හැකිය. මේ අනුව, උදාහරණයක් ලෙස එළදෙනක් භූමි ප්‍රදේශයකට ඇතුළු වුවහොත් සංක්‍රාන්ති වෙනස්කම් සඳහා සවන්දෙන්නන් ලියාපදිංචි කළ හැකිය. මෙහිදී එය ටිකක් උපක්‍රමශීලී වන්නේ එක් එක් එෆ්එස්එම් එය ක්‍රියාත්මක වන විශේෂිත වසම පිළිබඳ කිසිදු දැනුමක් නොමැතිව ඉතා ඉහළ මට්ටමක ක්‍රියාත්මක වන බැවිනි. කෙසේ වෙතත් ගවයාට සිදුවීම් ලැයිස්තුවක් ප්‍රකාශයට පත් කිරීමෙන් ඔබට මෙය සාක්ෂාත් කරගත හැකි අතර ප්‍රතික්‍රියා කළ හැකි සිදුවීම් දුටුවහොත් සෛලයට ලියාපදිංචි විය හැකිය. සිදුවීම් පවුලේ හොඳ ධූරාවලියක් මෙහි හොඳ ආයෝජනයකි.

තණකොළවල පෝෂක මට්ටම් සහ වර්ධන චක්‍රය ආදර්ශනය කිරීමෙන් ඔබට තව දුරටත් ගැඹුරට තල්ලු කළ හැකිය ... ඔබ එය අනුමාන කළා ... තණකොළ එෆ්එස්එම් භූමිෂ් pat පැච් වල ආකෘතියට ඇතුළත් කර ඇත.

ඔබ මෙම අදහස බොහෝ දුරට තල්ලු කරන්නේ නම්, දෙවියන් වහන්සේට කළ හැකි දේ ඉතා අල්පය. මන්දයත්, සෑම අංශයක්ම ස්වයං කළමනාකරණයකින් යුක්ත වන අතර, වඩා දේවභක්තික දේ සඳහා කාලය මිඩංගු කිරීමයි.

නැවත සකස් කරන්න

මෙහි එෆ්එස්එම් ඉහත සඳහන් කළ පරිදි විසඳුම නොවේ, එවැනි ගැටලුවකට විසඳුම එක් කේතයකට අනුව සොයාගත නොහැකි බව නිදර්ශනය කිරීමේ මාධ්‍යයක් පමණක් නොව ඔබ ඔබේ ගැටලුව ආදර්ශනය කරන්නේ කෙසේද යන්න. මගේ එෆ්එස්එම් යෝජනාවට වඩා බොහෝ දුරට හැකි වෙනත් විසඳුම් තිබේ. කෙසේ වෙතත් "අස්ථි බිඳීම්" ප්රවේශය මෙම දුෂ්කරතාවය කළමනාකරණය කිරීම සඳහා හොඳ ක්රමයක් ලෙස පවතී. නිවැරදිව සිදු කළ හොත්, ඔබට වැදගත් වන ගැඹුරු මට්ටම් ගතිකව වෙන් කළ හැකි අතර එය අඩු වැදගත්කමක් ඇති සරල ආකෘති ලබා දෙයි. සම්පත් වැඩිපුර ලබා ගත හැකි විට ඔබට පෝලිම් වෙනස් කර ඒවා යෙදිය හැකිය. ක්‍රියාකාරී අනුපිළිවෙලක දී ගවයාගේ සිට තණකොළ දක්වා පෝෂක හුවමාරුව ගණනය කිරීම එතරම් වැදගත් නොවනු ඇත. කෙසේ වෙතත් ඔබට මෙම සංක්‍රාන්ති පටිගත කර පසු කාලීනව වෙනස්කම් සිදු කළ හැකිය. එසේ නැතහොත් උගත් අනුමානයකින් දළ වශයෙන් රීති එන්ජින් ප්‍රතිස්ථාපනය කිරීමෙන් හෝ එෆ්එස්එම් ක්‍රියාවට නැංවීම මඟින් සෘජු ක්ෂේත්‍රයේ නොමැති මූලද්‍රව්‍ය සඳහා සරල බොළඳ අනුවාදයක් ආදේශ කළ හැකිය. උනන්දුව (ක්ෂේත්‍රයේ අනෙක් කෙළවරේ ඇති එළදෙන) අවධානය යොමු කර ගැනීමට හා සම්පත් වලින් වැඩි කොටසක් ලබා ගැනීමට වඩාත් සවිස්තරාත්මක අන්තර්ක්‍රියා වලට ඉඩ දීම. සමස්තයක් ලෙස පද්ධතිය නැවත සලකා බැලීමකින් තොරව මේ සියල්ල; සෑම කොටසක්ම හොඳින් හුදකලා වී ඇති හෙයින්, ඔබේ ආකෘතියේ ගැඹුර සීමා කිරීම හෝ පුළුල් කිරීම සඳහා ප්‍රතිස්ථාපන ආදේශකයක් නිර්මාණය කිරීම පහසු වේ. සම්මත සැලසුමක් භාවිතා කිරීමෙන් ඔබට ඒ මත ගොඩනගා ගත හැකි අතර නීති රීති නිර්වචනය කිරීම සඳහා ඩීඑස්එල් වැනි තාවකාලික මෙවලම්වල ආයෝජනය කිරීම හෝ සිදුවීම් සඳහා සම්මත වචන මාලාවක් නැවත ලබා ගත හැකිය, නැවතත් ඉතා ඉහළ මට්ටමකින් ආරම්භ කර අවශ්‍ය පරිදි පිරිපහදු එකතු කළ හැකිය. සෑම කොටසක්ම හොඳින් හුදකලා වී ඇති හෙයින්, ඔබේ ආකෘතියේ ගැඹුර සීමා කිරීම හෝ පුළුල් කිරීම සඳහා ප්‍රතිස්ථාපන ආදේශකයක් නිර්මාණය කිරීම පහසු වේ. සම්මත සැලසුමක් භාවිතා කිරීමෙන් ඔබට ඒ මත ගොඩනගා ගත හැකි අතර නීති රීති නිර්වචනය කිරීම සඳහා ඩීඑස්එල් වැනි තාවකාලික මෙවලම්වල ආයෝජනය කිරීම හෝ සිදුවීම් සඳහා සම්මත වචන මාලාවක් නැවත ලබා ගත හැකිය, නැවතත් ඉතා ඉහළ මට්ටමකින් ආරම්භ කර අවශ්‍ය පරිදි පිරිපහදු එකතු කළ හැකිය. සෑම කොටසක්ම හොඳින් හුදකලා වී ඇති හෙයින්, ඔබේ ආකෘතියේ ගැඹුර සීමා කිරීම හෝ පුළුල් කිරීම සඳහා ප්‍රතිස්ථාපන ආදේශකයක් නිර්මාණය කිරීම පහසු වේ. සම්මත සැලසුමක් භාවිතා කිරීමෙන් ඔබට ඒ මත ගොඩනගා ගත හැකි අතර නීති රීති නිර්වචනය කිරීම සඳහා ඩීඑස්එල් වැනි තාවකාලික මෙවලම්වල ආයෝජනය කිරීම හෝ සිදුවීම් සඳහා සම්මත වචන මාලාවක් නැවත ලබා ගත හැකිය, නැවතත් ඉතා ඉහළ මට්ටමකින් ආරම්භ කර අවශ්‍ය පරිදි පිරිපහදු එකතු කළ හැකිය.

මම කේත නිදසුනක් සපයමි, නමුත් මට දැන් කළ හැකි සියල්ල මෙයයි.


1
මම මෙම පිළිතුර පිළිගෙන ඇත්තෙමි, මන්ද එය අනෙක් අයට වඩා විසඳුමක් පැහැදිලි කිරීමට වඩා විශාලත්වයේ අනුපිළිවෙලකි. කෙසේ වෙතත්, වඩා හොඳ එකක් පෙන්වන්නේ නම් මම පිළිගත් පිළිතුර වෙනස් කළ හැකිය. ඔබේ විසඳුම වෙනසක් කිරීමට තරම් රැඩිකල් ලෙස පෙනේ. විවිධ ආකෘතීන් අන්තර්ක්‍රියා කළ යුතු ආකාරය පිළිබඳ නීති නිර්වචනය කරන්නේ කෙසේද යන්න තේරුම් ගැනීමට මට තවමත් ගැටළු තිබේ. ඔබට මේ සඳහා උදාහරණයක් කළ හැකිද?
ඩේවිඩ්

-1 තීරණාත්මක ගසක් හරහා මෙය සරලව විසඳිය නොහැක්කේ මන්දැයි මට නොපෙනේ? (ඩීඑස්එල් සමඟ සම්බන්ධ වී ආකෘතිය ගෙන එය ධාවනය කළ හැකි කේතයක් බවට පත් කරයි)?
අඳුරු රාත්‍රිය

14
දෙවියන් වහන්සේ එෆ්එස්එම් එදිරිව?
ජෝන් ක්‍රොමාර්ටි

1
තීරණ ගැනීමේ ගස් සහ රීති එන්ජින් භාවිතා කරනුයේ හරියටම ගණනය කිරීම් අවසන් කිරීම සඳහා වූ මාධ්‍යයක් වන බැවින් අත ළඟ ඇති ආකෘති ආකෘතිකරණය කිරීමට සහජ වටිනාකමක් නොමැති අවස්ථාවන්හිදී ය. ඔබ මෙය නිරතුරුවම සෞඛ්‍ය ආරක්ෂණ මෘදුකාංගවල දකී. ඔබ සැබෑ හැසිරීම ආදර්ශනය කිරීමට උත්සාහ කරන්නේ නම් එය උත්සාහ කළ යුතුය. ගැටලුවක ඇති එකම තර්කනය දහස් ගණනක ප්‍රති result ලයක් නම් එම දැන්වීම් අනන්තය නම් ටොන් ගණනක් තිබේ. එහි වලංගු, ඒ නිසා අපට ඒ සමඟ කටයුතු කිරීමට මෙවලම් තිබේ.
deleted_user

1
ක්‍රීඩා වැඩසටහන් ලෝකයේ මෙය ඉතා සාර්ථක බව ඔප්පු වී ඇත; රීතියක් හෝ දේපලක් වෙනස් කිරීම හා හැසිරීම ඉස්මතු වීමට ඉඩ දීම වඩා වේගවත් හා පහසුය, ඉන්පසු එය ක්‍රියාත්මක කරන්නේ කෙසේද යන්න තීරණය කිරීම සඳහා වටිනාකමක් පරීක්ෂා කිරීම.
බෙන් ලෙගීරෝ

90

ඔබ කතා කරන මෙම සියලු කොන්දේසි සහිත ප්‍රකාශයන් ඇත්ත වශයෙන්ම ඔබේ වැඩසටහනේම කොටසක් නොව ඔබේ වැඩසටහන වින්‍යාස කරන දත්ත විය යුතුය. ඔබට ඔවුන්ට එලෙස සැලකිය හැකි නම්, ඔබේ කේතය වෙනස් කිරීමට සහ ඔබේ ආකෘතිය වැඩි දියුණු කිරීමට අවශ්‍ය සෑම අවස්ථාවකම නැවත සකස් කිරීමට වඩා ඔබේ වින්‍යාසය වෙනස් කිරීමෙන් ඔබේ වැඩසටහන ක්‍රියාත්මක වන ආකාරය වෙනස් කිරීමට ඔබට නිදහස තිබේ.

ඔබේ ගැටලුවේ ස්වභාවය අනුව සැබෑ ලෝකය ආදර්ශනය කිරීමට විවිධ ක්‍රම තිබේ. ඔබගේ විවිධ කොන්දේසි අනුකරණයට අදාළ වන නීති හෝ සීමාවන් බවට පත්විය හැකිය. පෙනෙන කේතයක් වෙනුවට:

if (sunLevel > 0.75) {
   foreach(cow in cows) {
       cow.desireForShade += 0.5;
   }
}
if (precipitation > 0.2) {
   foreach(cow in cows) {
       cow.desireForShelter += 0.8;
   }
}

ඔබට ඒ වෙනුවට පෙනෙන කේතයක් තිබිය හැකිය:

foreach(rule in rules) {
   foreach (cow in cows) {
      cow.apply(rule);
   }
}

නැතහොත්, යෙදවුම් ගණනාවක් ලබා දී ඇති ගව හැසිරීම ආදර්ශනය කරන රේඛීය වැඩසටහනක් ඔබට වර්ධනය කළ හැකි නම්, එක් එක් අවහිරතා සමීකරණ පද්ධතියක රේඛාවක් බවට පත්විය හැකිය. එවිට ඔබට එය නැවත කළ හැකි මාකෝව් ආකෘතියක් බවට පත් කළ හැකිය.

ඔබගේ තත්වය සඳහා නිවැරදි ප්‍රවේශය කුමක්දැයි කීම දුෂ්කර ය, නමුත් ඔබේ සීමාවන් ඔබේ වැඩසටහනට යෙදවුම් ලෙස සලකන්නේ නම් සහ කේතයක් නොවන්නේ නම් ඔබට ඊට වඩා පහසු කාලයක් ලැබෙනු ඇතැයි මම සිතමි.


4
කරුණාකර විස්තර කරන්න "cow.apply (rule);" වින්‍යාස ගොනු සමඟ ක්‍රියා කරයිද?
ක්‍රොම්ස්ටර්

9
@ ක්‍රොම්, අපි ඇත්ත වශයෙන්ම කතා කරන්නේ කුමන ආකාරයේ පද්ධතියක් දැයි නොදැන සංයුක්තව පැවසීම දුෂ්කර ය. ඉහත මගේ අදහස නම්, කොන්දේසි දහස් ගණනක් වැඩසටහනට යෙදවුම් ලෙස සැලකීමයි, එවිට ඔබට එක් එක් සඳහා කේත ලිවීමට අවශ්‍ය නොවන අතර වැඩසටහන වෙනස් නොකර කොන්දේසි වෙනස් කළ හැකිය. නමුත් ඔව්, කොන්දේසි දත්ත ලෙස සැලකිය හැකි නම්, ඔබ ඒවා වැඩසටහනෙන් වෙන් වෙන් වශයෙන් කිසියම් ලේඛනයක හෝ වින්‍යාස ගොනුවක ගබඩා කරනු ඇත.
කාලෙබ්

2
@ ක්‍රොම් - සරලයි. ඔබ රීතිය කියවා එය දී ඇති එළදෙනට අදාළ කරන්න.
රැම්හවුන්ඩ්

5
වින්‍යාස ගොනු වෙත කේතය ගෙනයාම සැමවිටම හොඳ ප්‍රවේශයක් නොවේ. මැජික් නිදොස්කරණය කිරීම දුෂ්කර ය.
රිකී ක්ලාක්සන්

45

කිසිවෙකු මෙය සඳහන් කර නැත, එබැවින් මම එය පැහැදිලිව කියනු ඇතැයි සිතුවෙමි:

"එසේ නම් .. එසේ නම් .. වෙනත්" නීති දහස් ගණනක් නරක ලෙස නිර්මාණය කරන ලද යෙදුමක ලකුණකි.

වසමේ විශේෂිත දත්ත නිරූපණය මෙම රීති මෙන් පෙනෙන්නට තිබුණද, ඔබේ ක්‍රියාත්මක කිරීම වසම් විශේෂිත නිරූපණයට සමාන විය යුතු බව ඔබට විශ්වාසද?


20
අනිවාර්යයෙන්ම සත්‍ය නොවේ. විසඳිය හැකි ගැටළු ඇත්තේ දැවැන්ත තීරණ ගැනීමේ ගස් හරහා පමණි. නමුත් ඇත්ත වශයෙන්ම නම්-එසේ නම්-වෙනත් වචනාර්ථයෙන් ගසකින් සමන්විත අය සඳහා විසඳුමක් නරක ලෙස නිර්මාණය කර ඇති එකකි. මෙය කිරීමට වඩා නම්‍යශීලී හා නඩත්තු කළ හැකි ක්‍රම තිබේ.
එස්.එෆ්.

44
මම හිතුවේ ඒක තමයි ප්‍රශ්නයේ කාරණය කියලා. OP ඔහුගේ වසමට විශේෂිත වූ ගැටළුවක් ඇත, එය බොළඳ ලෙස ක්‍රියාත්මක කිරීමේදී දහස් ගණනක් අවශ්‍ය වේ නම් ... එසේ නම් ... වෙනත්. මෙය කරදරකාරී විය යුතු යැයි ඔහුට අවබෝධයක් තිබූ අතර මෙය කිරීමට වඩා හොඳ ක්‍රම පිළිබඳව මෙම ප්‍රජාවගෙන් විමසීය. ප්‍රශ්නය ඇසූ හුදු කාරණය මෙය දැනටමත් වටහාගෙන ඇති හොඳ ගායනයකි, ඔබේ පිළිතුර නිවැරදි වුවත් ප්‍රශ්නයට කිසිදු ආකාරයකින් උදව් නොකරයි.
නිව්ටෝපියන්

Ew නිව්ටෝපියන් උසස් පරිශීලකයෙකු හෝ ක්‍රමලේඛකයෙකු එය තේරුම් ගෙන එය පැහැදිලිව පෙනේ. බොළඳ පරිශීලකයෙකු හෝ ක්‍රමලේඛකයෙකු එය තේරුම් නොගනී. මෙහි සිටින බොහෝ දෙනා පැහැදිලිව පෙනෙන දේ මම දැනුවත්ව ප්‍රකාශ කළෙමි - මෙය ගැටළු සහගත වනු ඇතැයි යන උපකල්පනය අනුව OP නිවැරදි බව මම සනාථ කළෙමි.
බ්ලූබෙරිෆීල්ඩ්ස්

මම එකඟ වෙමි, ඔබට වෙනත් නම් බහුමාපකය මෙන්ම DI ද ආදේශ කළ හැකිය. ඔබට වෙනත් නම් මිලියන ගණනක් තිබේ නම්, ඔබේ සැලසුම බොහෝ දුරට නරක ය.
ඩාර්ත්වඩර්

17

කරුණාකර, කාර්යයට ගැලපෙන මෘදුකාංග / පරිගණක භාෂා භාවිතා කරන්න. මැට්ලැබ් බොහෝ විට සංකීර්ණ පද්ධති ආකෘතිකරණය සඳහා භාවිතා කරයි, එහිදී ඔබට සැබවින්ම වචන දහස් ගණනක් තිබිය හැකිය. If / then / else වගන්ති භාවිතා නොකර, සංඛ්‍යාත්මක විශ්ලේෂණයකින්. R යනු විවෘත මූලාශ්‍ර පරිගණක භාෂාවක් වන අතර එය කිරීමට මෙවලම් සහ පැකේජ වලින් පිරී ඇත. නමුත් මෙයින් අදහස් කරන්නේ ඔබ ඔබේ ආකෘතිය වඩාත් ගණිතමය වශයෙන් නැවත සඳහන් කළ යුතු බවයි, එබැවින් ඔබට ප්‍රධාන බලපෑම් සහ ආකෘතිවල බලපෑම් අතර අන්තර්ක්‍රියා ඇතුළත් කළ හැකිය.

ඔබ දැනටමත් නොසිටියේ නම්, කරුණාකර ආකෘති නිර්මාණය සහ අනුකරණය පිළිබඳ පා course මාලාවක් අනුගමනය කරන්න. ඔබ කළ යුතු අවසාන දෙය නම්, එසේ නම් - එසේ නම් - වෙනත් ආකාරයකින් ආකෘතියක් ලිවීම ගැන සලකා බැලීම ය. අප සතුව මොන්ටේ කාලෝ මාකෝව් දාම, ආධාරක දෛශික යන්ත්‍ර, ස්නායුක ජාල, ගුප්ත විචල්‍ය විශ්ලේෂණයන් ඇත ... කරුණාකර ඔබ සතුව ඇති ආකෘති නිර්මාණ මෙවලම්වල ඇති ධනය නොසලකා හැර වසර 100 කට පෙර ඔබම විසි නොකරන්න.


මෙම ප්‍රශ්නයට එතරම් අවධානයක් නොලැබුණු ආකාරය ගැන මම පුදුම වෙමි. සංඛ්‍යාත්මක විශ්ලේෂණය සහ ආකෘති නිර්මාණය හදවතේ තිබේ නම් වෙනත් යන්ත්‍රයකි. කෙසේ වෙතත්, අයදුම්පත් මගින් නීති රීති දැඩි ලෙස පිළිපැදීම අවශ්‍ය නම් එය නොඉවසිය හැකි ව්‍යාජ ධනාත්මක තත්ත්වයන්ගෙන් එය පීඩා විඳිති. (බැංකු කටයුතු ගැන සිතන්න)
අරුන් ජෝස්

13

රීති එන්ජින් උදව් විය හැකි නිසා / එසේ නම් නීති තිබේ නම් ඒවා සියල්ලම වැඩසටහනෙන් පිටත එක තැනකට ගෙනයාම ප්‍රයෝජනවත් විය හැකි අතර ක්‍රමලේඛන භාෂාවක් නොදැන පරිශීලකයින්ට ඒවා සංස්කරණය කළ හැකිය. එසේම, දෘශ්‍යකරණ මෙවලම් ලබා ගත හැකිය.

ඔබට තාර්කික ක්‍රමලේඛන විසඳුම් (Prolog වැනි) දෙස බැලිය හැකිය. ඔබට ඉක්මණින් / පසුව ප්‍රකාශ ලැයිස්තුව වෙනස් කළ හැකි අතර ඕනෑම යෙදවුම් සංයෝජනයක් යම් ප්‍රති come ල වලට තුඩු දෙයිද යන්න සොයා බැලීම වැනි දේ කළ හැකිය. එය පළමු අනුපිළිවෙලෙහි පිරිසිදු විය හැකිය. වස්තු දිශානත කේතය).


11

එය හදිසියේම මා වෙත පැමිණියේය:

ඔබ තීරණ ඉගෙනීමේ ගසක් (ID3 ඇල්ගොරිතම) භාවිතා කළ යුතුය.

කවුරුහරි එය ඔබේ භාෂාවෙන් ක්‍රියාත්මක කර ඇති බව පෙනෙන්නට තිබේ. එසේ නොමැතිනම් ඔබට දැනට පවතින පුස්තකාලයක් වරාය කළ හැකිය


ඉහත දක්වා ඇති DSL අදහස සමඟ යන්න. සංකේතාත්මක වීජ ගණිතයේ යම් ආකාරයකට ගැටළුව සාරාංශ කරන්නේ කෙසේදැයි සොයා ගැනීමට උත්සාහ කරන්න, ඉන්පසු එය ක්‍රියාත්මක කරන්න.
සැකරි කේ

11

මෙය ප්‍රජා විකී පිළිතුරකට වඩා වැඩි ය, වෙනත් පිළිතුරු මගින් යෝජනා කරන විවිධ ආකෘති නිර්මාණ මෙවලම් එකතු කරමින්, මම සම්පත් සඳහා අතිරේක සබැඳි එක් කර ඇත්තෙමි.

දෘ hard කේත සහිත දහස් ගණනක් ප්‍රකාශ සඳහා ඔබ වෙනත් ප්‍රවේශයක් භාවිතා කළ යුතු බව නැවත සඳහන් කිරීමේ අවශ්‍යතාවයක් ඇතැයි මම නොසිතමි.


9

සෑම විශාල if-then-elseයෙදුමකම ප්‍රකාශ දහස් ගණනක් අඩංගු වන අතර වෙනත් ප්‍රවාහ පාලනයන් ගණන් නොගනී. එම යෙදුම් ඒවායේ සංකීර්ණත්වය නොතකා නිදොස් කොට නඩත්තු කරනු ලැබේ.

එසේම, ප්‍රකාශ ගණන මඟින් ප්‍රවාහය අනපේක්ෂිත නොවේ . අසමමුහුර්ත වැඩසටහන්කරණය කරයි. ඔබ නිර්ණායක ඇල්ගොරිතම සමමුහුර්තව භාවිතා කරන්නේ නම්, ඔබට සෑම විටම 100% පුරෝකථනය කළ හැකි හැසිරීමක් ඇත.

තොග පිටාර ගැලීම හෝ කේත සමාලෝචනයේදී ඔබ කුමක් කිරීමට උත්සාහ කරන්නේද යන්න ඔබ වඩාත් හොඳින් පැහැදිලි කළ යුතුය, එවිට මිනිසුන්ට ඔබට භාවිතා කිරීමට නිශ්චිත ප්‍රතිනිර්මාණය කිරීමේ ක්‍රමවේදයන් යෝජනා කළ හැකිය . ඔබට වඩාත් නිවැරදි ප්‍රශ්න ඇසීමට අවශ්‍ය විය හැකිය, "ඕනෑවට වඩා ප්‍රකාශ <කූඩුවක් ලබා දීමෙන් මම වළක්වා ගන්නේ කෙසේද ". if


1
බොහෝ යෙදුම්වල 2-3 මට්ටමේ කැදැලි සහ 1-පේළි කොන්දේසි ඇත. තීරණාත්මක ගසක් මට්ටම් 50 ක් පහළට කැදවා ගැනීම අවශ්‍ය වන ගැටළුවක් ගැන කුමක් කිව හැකිද? බොහෝ කොන්දේසි තාර්කික සංයෝග 30 ක් හෝ ඊට වැඩි විචල්‍යයන් බැගින් තිබේද?
එස්.එෆ්.

"සෑම විශාල යෙදුමක්ම ..." නිසැකවම සත්‍යයක් වුවද, OP කතා කරන්නේ කොන්දේසි සහිත ප්‍රකාශනවල දීර් sequ අනුපිළිවෙලක් ගැන ය. දැවැන්ත කැදැලි ifප්‍රකාශ කණ්ඩායම් ඉක්මනින් නොසැලකිලිමත් වන බැවින් වඩා හොඳ ප්‍රවේශයක් අවශ්‍ය වේ.
කාලෙබ්

Ale කාලෙබ්: ඔබ හරි, දැන් එය පැහැදිලි ය, ප්‍රශ්නයේ ආරම්භයේ දී නිවැරදි උදාහරණය සමඟ. මගේ පිළිතුර ලිවීමේදී ප්‍රශ්නය සංස්කරණය කිරීමට පෙර නොවේ. එකවර පළ කරන ලද මගේ සහ තවත් පිළිතුරු දෙකක සත්‍ය නොගැලපීම මෙයින් පැහැදිලි වේ.
අර්සෙනී මෝර්සෙන්කෝ

2

ඔබේ යෙදුම හොඳින් සැලසුම් කිරීමෙන් එය කළමනාකරණය කර ගන්න. විවිධ ව්‍යාපාරික තර්කනයන් වෙනම පන්ති / මොඩියුලවලට බෙදීමෙන් ඔබේ යෙදුම සැලසුම් කරන්න. මෙම එක් එක් පන්ති / මොඩියුල තනි තනිව පරීක්ෂා කරන ඒකක පරීක්ෂණ ලියන්න. මෙය ඉතා වැදගත් වන අතර ව්‍යාපාර තර්කනය අපේක්ෂිත පරිදි ක්‍රියාත්මක වන බව සහතික කිරීමට ඔබට උපකාරී වනු ඇත.


2

ඔබේ ගැටළුවෙන් ඔබේ මාර්ගය සැලසුම් කිරීම සඳහා තනි ක්‍රමයක් නොතිබෙනු ඇත, නමුත් ඔබ විවිධ කොටස් වෙන් කිරීමට උත්සාහ කළහොත් ඔබට එහි සංකීර්ණත්වය කැබැල්ලෙන් කළමනාකරණය කළ හැකිය. ඒ සෑම කුඩා ගැටලුවකටම.

විශාල කොන්දේසි කළමනාකරණය කළ හැකි කුට්ටි බවට පත් කිරීමේ ක්‍රම සඳහා ප්‍රතිනිර්මාණය කිරීමේදී කතා කර ඇති නීති වැනි ශිල්පීය ක්‍රම දෙස බලන්න - පොදු අතුරු මුහුණතක් සහිත බහු පංතිවලට සිද්ධි ප්‍රකාශයක් ආදේශ කළ හැකිය.

වේලාසනින් පිටවීමද විශාල උපකාරයකි. ඔබට දෝෂ තත්වයන් තිබේ නම්, ව්‍යතිරේකය විසි කිරීමෙන් හෝ නැවත කැදැල්ලට ඉඩ නොදී ආපසු යාමෙන් ශ්‍රිතය ආරම්භයේදීම ඒවායින් ඉවත් වන්න.

ඔබ ඔබේ කොන්දේසි පුරෝකථනය කරන ලද කාර්යයන් බවට පත් කරන්නේ නම්, ඒවා නිරීක්ෂණය කිරීම පහසු වනු ඇත. එසේම, ඔබට ඒවා සම්මත ආකෘතියකට ඇතුළත් කළ හැකි නම්, ඒවා දෘඩ කේතයක් වෙනුවට ගතිකව ගොඩනගා ඇති දත්ත ව්‍යුහයකට ලබා ගත හැකිය.


2

මම ඔබට යෝජනා කරන්නේ නීති රීති එන්ජිමක් භාවිතා කරන්න. ජාවා සම්බන්ධයෙන් නම්, jBPM හෝ ඔරකල් BPM ප්‍රයෝජනවත් වේ. රීති එන්ජින් මූලික වශයෙන් ඔබට XML හරහා යෙදුම වින්‍යාස කිරීමට ඉඩ දෙයි.


+1 මම මෑතදී නීති රීති ප්‍රකාශ කිරීමේ භාෂාව ලෙස Mvel සමඟ ඩ්‍රූල්ස් භාවිතා කර ඇති අතර එය ඔබ සොයන දේමයි. එය ඉතා වේගවත් බව නොතකා.
ජාලන්

ඩ්‍රූල්ස් හොඳ තේරීමක්. මම දැන් පෞද්ගලිකව ඔරකල් බීපීඑම් භාවිතා කරමි. ෆියුගෝ ද ඇත. විවෘත මූලාශ්‍ර සහ හිමිකාර මෙවලම් ගොඩක් තිබේ.
සිද්

2

ගැටළුව “රීති” මගින් මනාව විසඳනු නොලැබේ, “එසේ නම්” කාර්ය පටිපාටික කේතය හෝ ව්‍යාපාර යෙදුම් සඳහා සකස් කර ඇති නීති රීති රාශියකින් විස්තර කර ඇත. යන්ත්‍ර ඉගෙනීම එවැනි අවස්ථා ආකෘතිකරණය සඳහා යාන්ත්‍රණ ගණනාවක් සපයයි.

මූලික වශයෙන්, “පද්ධතියට” (එනම් තණබිම්වල එළදෙනුන්ට) බලපෑම් කරන සාධක (උදා: හිරු, සුළඟ, ආහාර ප්‍රභවය, හදිසි සිදුවීම් ආදිය) නිර්‍මාණව නිරූපණය කිරීම සඳහා යමෙකුට යම් යෝජනා ක්‍රමයක් සකස් කළ යුතුය. යමෙකුට සැබෑ වටිනාකමින් යුත් ක්‍රියාකාරී නිරූපණයක් නිර්මාණය කළ හැකිය යන නොමඟ ගිය විශ්වාසය නොතකා, විවික්තයට පටහැනිව, සැබෑ ලෝකයේ කිසිදු පරිගණකයක් (මිනිස් ස්නායු පද්ධතිය ඇතුළුව) සැබෑ අගය පදනම් කරගත් හෝ සැබෑ වටිනාකම් මත පදනම් වූ ගණනය කිරීම් නොවේ.

අදාළ සාධක සඳහා ඔබේ සංඛ්‍යාත්මක නිරූපණය ලැබීමෙන් පසු ඔබට ඕනෑම ගණිතමය ආකෘති කිහිපයක් සෑදිය හැකිය. එක් නෝඩ් කට්ටලයක් එළදෙනුන් නියෝජනය කරන ද්වි පාර්ශවීය ප්‍රස්ථාරයක් මම යෝජනා කරමි. ඕනෑම අවස්ථාවක එළදෙනක් තණබිම්වල යම් ප්‍රදේශයක වාසය කරයි. සෑම එළදෙනෙකු සඳහාම වර්තමාන හා අනෙකුත් තණබිම් ඒකක සමඟ සම්බන්ධිත උපයෝගිතා අගයක් පවතී. මෙම ආකෘතිය ගවයා තම තණබිම් ඒකකයේ උපයෝගීතා වටිනාකම ප්‍රශස්ත කිරීමට උත්සාහ කරයි නම් (ගවයාට එවැනි ක්‍රමයක් කුමක් වුවත්), එවිට ගවයින් ප්‍රශස්තිකරණය සඳහා ඒකකයෙන් ඒකකයට ගමන් කරයි.

ආකෘතිය ක්‍රියාත්මක කිරීම සඳහා සෛලීය ස්වයංක්‍රීය යන්ත්‍රයක් හොඳින් ක්‍රියා කරයි. සැබෑ වටිනාකමින් යුත් ගණිත ලෝකයේ යටින් පවතින ගණිතය ගව චලනය සඳහා පෙළඹවීම ක්ෂේත්‍ර ශ්‍රේණියේ ආකෘතියකි. එළදෙනුන් අඩු උපයෝගිතා වටිනාකමේ ස්ථානවල සිට ඉහළ උපයෝගීතා වටිනාකමේ ස්ථාන කරා ගමන් කරයි.

යමෙකු පද්ධතියට පාරිසරික විපර්යාසයක් එන්නත් කළහොත් එය ගව ස්ථානගත කිරීමේ ස්ථාවර රාජ්‍ය විසඳුමකට නොයනු ඇත. එය ක්‍රීඩා න්‍යායේ අංගයන් යෙදිය හැකි ආකෘතියක් බවට පත්වනු ඇත; එය අනිවාර්යයෙන්ම මෙම නඩුවට බොහෝ දේ එකතු කරනු ඇති බව නොවේ.

මෙහි ඇති වාසිය නම් ගවයින් ghter ාතනය කිරීම හෝ නව ගවයින් ලබා ගැනීම ආදර්ශය ක්‍රියාත්මක වන අතර ද්වි පාර්ශ්වික ප්‍රස්ථාරයට “ගව” සෛල අඩු කිරීමෙන් හා එකතු කිරීමෙන් පහසුවෙන් කළමනාකරණය කළ හැකිය.


1

වෙනත් ප්‍රකාශයන් ඔබ විසින් අර්ථ දැක්විය යුතු යැයි මම නොසිතමි. මගේ දෘෂ්ටි කෝණයෙන් ඔබේ ගැටලුවට විවිධ සංරචක ඇත:

  • ඔබට විවිධ පෞරුෂයන්, විවිධ වින්‍යාසයන් සහිත ගවයින් කිහිප දෙනෙකු සිටින බැවින් එය අසමමුහුර්ත හෝ බහු තෙරපුමක් විය යුතුය. සෑම එළදෙනක්ම තම ඊළඟ පියවරට පෙර කුමන දිශාවට යා යුතුදැයි තමාගෙන්ම අසා ගනී. මගේ මතය අනුව සමමුහුර්ත කේතයක් මෙම ගැටළුව සඳහා දුර්වල මෙවලමකි.

  • තීරණ ගසෙහි වින්‍යාසය නිරන්තරයෙන් වෙනස් වේ. එය, කාලගුණය, කාලය, භූ ජල, ආදිය සැබෑ ගව තත්වය මත රඳා පවතී ... ඒ වෙනුවට සංකීර්ණ නම්-වෙන ගස් ගොඩනැගීමේ, මම හිතන්නේ අපි වෙත ගැටලුව යුතුයි කියලා සුළං වර්ධනය වී හෝ දිශාව - බර උත්සවය : රූපය 1 රූපය 1 - දිශාව - සමහර නීති සඳහා බර ක්‍රියාකාරිත්වය

    ගවයා සෑම විටම විශාලතම බර ඇති දිශාවට යා යුතුය. එබැවින් විශාල තීරණාත්මක ගසක් තැනීම වෙනුවට ඔබට එක් එක් එළදෙනට නීති මාලාවක් (විවිධ දිශාවන් - බර ක්‍රියාකාරිත්වයන්) එක් කළ හැකි අතර, ඔබ දිශාව විමසන සෑම අවස්ථාවකම ප්‍රති result ලය සරලව සකසන්න. සෑම ස්ථාන වෙනස් කිරීමකින් හෝ කාලය ගතවීමෙන් ඔබට එම නීති නැවත සකස් කළ හැකිය, නැතහොත් ඔබට මෙම තොරතුරු පරාමිතීන් ලෙස එකතු කළ හැකිය, සෑම රීතියක්ම ලැබිය යුතුය. එය ක්‍රියාත්මක කිරීමේ තීරණයක්. දිශාවක් ලබා ගැනීමට ඇති සරලම ක්‍රමය, 1 ° පියවරක් සමඟ 0 from සිට 360 ° දක්වා සරල පුඩුවක් එක් කිරීම. ඊට පසු ඔබට එක් එක් 360 දිශාවන්හි මුළු බර ගණනය කර නිසි දිශාව ලබා ගැනීම සඳහා උපරිම () ශ්‍රිතයක් හරහා ධාවනය කළ හැකිය.

  • මෙය සිදු කිරීම සඳහා ඔබට ස්නායුක ජාලයක් අවශ්‍ය නොවේ, එක් එක් රීතිය සඳහා එක් පන්තියක්, එළදෙනුන් සඳහා එක් පන්තියක්, සමහර විට භූමිය සඳහා යනාදිය ... සහ දර්ශනය සඳහා එක් පන්තියක් (උදාහරණයක් ලෙස විවිධ නීති රීති සහිත එළදෙනුන් 3 ක් 1 විශේෂිත භූමි). රූපය 2 රූපය 2 - ගව යෙදුම අසයික් තීරණ නෝඩ් සහ සම්බන්ධතා

    • පණිවිඩ යැවීමේ දිශාවට රතු - නීති හරහා බර සිතියම
    • තීරණ ගැනීමෙන් පසු දිශානතිය සහ ස්ථාන යාවත්කාලීන කිරීම් සඳහා නිල්
    • දිශානතිය සහ ස්ථාන යාවත්කාලීන කිරීමෙන් පසු ආදාන යාවත්කාලීන කිරීම් සඳහා කොළ
    • යෙදවුම් ලබා ගැනීම සඳහා කළු

    සටහන: මෙවැනි දෙයක් ක්‍රියාත්මක කිරීමට ඔබට පණිවිඩ යැවීමේ රාමුවක් අවශ්‍ය වනු ඇත

    එබැවින් ගවයින් ඉගෙනීම ඔබේ ගැටලුවේ කොටසක් නොවේ නම්, ඔබට ස්නායුක ජාලයක් හෝ ජානමය ඇල්ගොරිතම අවශ්‍ය නොවේ. මම AI පිළිබඳ විශේෂ expert යෙක් නොවෙමි, නමුත් ඔබේ ගවයින් සැබෑ පැටවුන්ට අනුවර්තනය කිරීමට ඔබට අවශ්‍ය නම්, ඔබට එය හුදෙක් ජානමය ඇල්ගොරිතමයක් සහ නිසි නීති මාලාවක් සමඟ කළ හැකිය. මම හොඳින් තේරුම් ගන්නේ නම්, ඔබට අහඹු නීති සැකසුම් සහිත ගවයින්ගේ ජනගහනයක් අවශ්‍ය වේ. ඉන් පසු ඔබට සැබෑ එළදෙනුන්ගේ හැසිරීම ඔබේ ආදර්ශ ජනගහනයේ හැසිරීම හා සැසඳිය හැකි අතර 10% ක් සැබෑ පැටවුන්ට සමීපතම මාවතේ ගමන් කළ හැකිය. ඉන් පසු ඔබ තබා ඇති 10% මත පදනම්ව ඔබේ ගව කර්මාන්ත ශාලාවට නව රීති වින්‍යාස සීමා කිරීම් එකතු කළ හැකි අතර ජනගහනයට නව අහඹු එළදෙනුන් එකතු කළ හැකිය.


0

ඔබට සැබවින්ම දහස් ගණනක් තිබේ නම් එය එසේ විය හැකි බව මම එකතු කරමි ... එවිට නීති රීති ඔබ අධික ලෙස විස්තර කළ හැකිය. එය වටින දෙය සඳහා, මා සහභාගී වූ ස්නායුක ජාල ආකෘතිකරණ සාකච්ඡා බොහෝ විට ආරම්භ වන්නේ “සරල නීති මාලාවක්” මඟින් ඔවුන්ට තරමක් සංකීර්ණ හා සාධාරණව යථාර්ථයට ගැලපෙන හැසිරීම් ජනනය කළ හැක්කේ කෙසේද යන්න සඳහන් කිරීමෙනි (එවැනි අවස්ථාවන්හිදී නියුරෝන ක්‍රියාකාරී වේ). ඉතින්, ඔබට විශ්වාසද?ඔබට කොන්දේසි දහස් ගණනක් අවශ්‍යද? මම අදහස් කළේ, කාලගුණය, ආහාර ප්‍රභවයන් පිහිටීම, හදිසි සිදුවීම්, ගව පට්ටි සහ භූමි ප්‍රදේශ 4-5 හැරුණු විට ඔබට තවත් බොහෝ විචල්‍යයන් තිබේද? ඇත්ත වශයෙන්ම, ඔබ එම කොන්දේසි ඒකාබද්ධ කිරීම සඳහා හැකි සෑම ප්‍රේරණයක්ම කිරීමට උත්සාහ කළේ නම්, ඔබට පහසුවෙන් නීති දහස් ගණනක් තිබිය හැකි නමුත් එය නිවැරදි ප්‍රවේශය නොවේ. විවිධ සාධක මගින් එක් එක් එළදෙනගේ පිහිටීම පිළිබඳ නැඹුරුවක් හඳුන්වා දෙන සමස්ත තීරණයකට සමපාත වන අතර සමහර විට මෙය ඉතා අඩු නීති රීති වලින් කළ හැකිය.

රීති මාලාව සාමාන්‍ය කේත ප්‍රවාහයෙන් වෙන් විය යුතු බවට මම අනෙක් සියල්ලන් සමඟ එකඟ වෙමි, එවිට ඔබට වැඩසටහන වෙනස් නොකර පහසුවෙන් එය වෙනස් කළ හැකිය. ඔබට තරඟකාරී රීති කට්ටල සමඟ පැමිණ සැබෑ ගව චලන දත්ත වලට එරෙහිව ඔවුන් ක්‍රියා කරන්නේ කෙසේදැයි බලන්න. විනෝදජනකයි.


0

AI හි ප්‍රදේශයක් වන විශේෂ ert පද්ධති සඳහන් කර ඇත. මේවා ගැන ටිකක් පුළුල් කිරීම සඳහා, අනුමාන එන්ජින් කියවීම ඔබට මේ සඳහා උපකාරී වේ. ගූගල් සෙවුමක් වඩාත් ප්‍රයෝජනවත් විය හැකිය - ඩීඑස්එල් ලිවීම පහසුම කොටසයි, ඔබට මෙය සුළු වශයෙන් ගෝල්ඩ් පාර්සර් වැනි විග්‍රහ කරන්නෙකු සමඟ කළ හැකිය. දුෂ්කර කොටස පැමිණෙන්නේ ඔබේ තීරණ ගැනීමේ ගස ගොඩනඟා ගැනීම සහ ඒවා කාර්යක්ෂමව ක්‍රියාත්මක කිරීමෙනි.

බොහෝ වෛද්‍ය පද්ධති දැනටමත් මෙම එන්ජින් භාවිතා කරයි, උදාහරණයක් ලෙස එක්සත් රාජධානියේ එන්එච්එස් සෘජු වෙබ් අඩවිය .

ඔබ .NET'er නම් ඉන්ෆර්.නෙට් ඔබට ප්‍රයෝජනවත් විය හැකිය.


0

ඔබ එළදෙනගේ චලනය දෙස බලන බැවින්, ඒවා අංශක 360 ක දිශාවකට කොටු වී ඇත (ගවයින්ට පියාසර කළ නොහැක.) ඔබේ ගමන් බිමන් ද ඔබට අනුපාතයක් ඇත. මෙය දෛශිකයක් ලෙස අර්ථ දැක්විය හැකිය.

දැන් ඔබ හිරු පිහිටීම, කඳු බෑවුම, විශාල ශබ්දය වැනි දේ සමඟ කටයුතු කරන්නේ කෙසේද?

සෑම අංශයක්ම එම දිශාවට යාමට ඇති ආශාව සංකේතවත් කරන විචල්‍යයක් වනු ඇත. ගවයාගේ දකුණු පසින් අංශක 90 ක අතු ගසන බව කියන්න (ගවයා අංශක 0 ට මුහුණ දෙයි යැයි උපකල්පනය කරන්න). දකුණට යෑමට ඇති ආශාව පහව යන අතර 270 (වමේ) යාමට ඇති ආශාව ඉහළ යනු ඇත. ගවයින්ගේ දිශාවට යාමට ඇති ආශාව කෙරෙහි ඔවුන්ගේ බලපෑම එකතු කිරීම හෝ අඩු කිරීම සියලු උත්තේජක හරහා යන්න. සියලු උත්තේජක යෙදීමෙන් පසු එළදෙන ඉහළම ආශාව කරා ගමන් කරයි.

ඔබට ශ්‍රේණීන් ද යෙදිය හැකි බැවින් උත්තේජක ද්විමය විය යුතු නැත. උදාහරණයක් ලෙස කන්දක් එක් දිශාවකට කෙළින්ම නොවේ. සමහර විට ගවයා නිම්නයක හෝ කඳු මුදුනක පාරක කෙළින්ම ඉදිරියෙන්, 45 * මඳක් ඉහළට කන්ද 90 * මඳක් පහළට. 180 * කඳු බෑවුමක.

එවිට ඔබට සිදුවීමක බර වෙනස් කළ හැකි අතර එය බලපෑමේ දිශාවයි. ඒ වෙනුවට නම්, නම්, ඔබට එක් පරීක්‍ෂණයක් උපරිම වශයෙන් සොයනු ඇත. ඔබට උත්තේජකයක් එක් කිරීමට අවශ්‍ය වූ විට ඔබට එය පරීක්ෂණයට පෙර යෙදිය හැකි අතර වැඩි වැඩියෙන් සංකීර්ණ එකතු කිරීම සමඟ කටයුතු කිරීමට ඔබට අවශ්‍ය නැත.

ගවයා ඕනෑම 360 දිශාවකට යන බව පැවසීමෙන් එය දිශාවන් 36 කට බිඳ දැමිය හැකිය. සෑම එකක්ම අංශක 10 කි

ගවයා ඕනෑම 360 දිශාවකට යන බව පැවසීමෙන් එය දිශාවන් 36 කට බිඳ දැමිය හැකිය. සෑම එකක්ම අංශක 10 කි. ඔබ කෙතරම් නිශ්චිත විය යුතුද යන්න මත පදනම්ව.


-2

OOP භාවිතා කරන්න. මූලික තත්වයන් හසුරුවන සහ ඔබ කරන දේ අනුකරණය කිරීමට අහඹු ක්‍රම ක්‍රියාත්මක කරන පන්ති පොකුරක් නිර්මාණය කරන්නේ කෙසේද?

උදව් කිරීමට ක්‍රමලේඛකයෙකු ලබා ගන්න.

class COW_METHODS {

    Function = array('Action1','Action2',....'ActionX');

    function doAction() {
       execute(Function[random(1,5000]);
    }

    function execute(DynamicFunction) {
        exec(DynamicFunction());
    }

    Function Action1() {
        turnRight();
        eatGrass();
    }
    /*  keep adding functions for COW Methods ...  etc  */
    /*  and add classes for conditions inherit them as needed  */
    /*  keep an object to define conditions =  Singleton etc.  */
}

මෙය අවසාන පිළිතුර වන්නේ ඇයි? එය කාරණය වෙත ළඟා වේ, එනම් දහස් ගණනක් වෙනත් ප්‍රකාශයන් දැන් වැඩසටහනක් සැලසුම් කිරීමේ ක්‍රමයයි.
wfbarksdale

1
යෝජනා කිරීම "නිසා භාවිතය OOP. උදව් කිරීමට ක්රමලේඛකයෙක් ලබා ගන්න. " වටිනා උපදෙස් ලබා දීම හා සමාන වේ " වැඩි දුරකථන ඇමතුම් කරන්න! " ඇසූ විට " කොහොමද මගේ විකුණුම් මම තරුණයින් සිව්දෙනෙකු කළ හැක්කේ කෙසේද? ". එය තදින්ම වැරදියි, නමුත් එය බොහෝ සෙයින් උපකාරී නොවේ.
ජෙන්ස්

2
මම පහත් කොට සැලකුවෙමි, මන්ද මෙය නරක පිළිතුරකි. තාක්ෂණික වශයෙන්; ඔබේ පිළිතුරට OOP සමඟ එතරම් සම්බන්ධයක් නැත. පංතියක් ලෙස හැඳින්වෙන්නේ COW_METHODSලිහිල්ව සම්බන්ධිත ක්‍රම එකතුවකට වඩා වැඩි දෙයක් නොවේ. උත්සුකයන් වෙන් කිරීම කොහේද? ප්‍රශ්නයට අදාළව, මෙය අසන්නාට උපකාර කරන්නේ කෙසේද?
oɔɯǝɹ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.