|
sreejith ss nair wrote:
They are garbage collection, dynamic typing, functions as data, uniform syntax, interactive environment,
and extensibility.
I suggest reading some background on AI 1st. These thing you have mentioned does make live easier and slower. Any language capable of powerful number crunching and efficient code generation should do (iow C/Fortran/Assembler). Anything you can do in most languages can be done in C with a bit of extra work, IMO saving u time when u get to optimizations. Also the aforementioned languages's code generation can be tailored where "higher" level languages you have to rely on the subsystem .
Im not sure what Father Stewart was trying to sell you
|
|
|
|
|
What leppie says is true.
The best programming language to make AI is C, but you will need to invest lots of time to make a program with it. C# is a good language, but it is quite slow. Also, i would recommend you to search on the net. There is plenty example, thus it is possibel you would not even need to write a single line of code.
|
|
|
|
|
There is some simple implementations for different kind AI algorithms here in codeproject:
Fuzzy Logic Dot Net[^]
Neural Dot Net Pt 1 Introduction[^]
Path Finder[^]
A Simple C# Genetic Algorithm
[^]
Inference in Belief Networks
[^]
MetaAgent, a Steering Behavior Template Library[^]
Basicly AI algorithms are divided to two categories: symbolic and connectionism.
Connectionism (from Stanford Encyclopedia of Philosophy[^]):
Connectionism is a movement in cognitive science which hopes to explain human intellectual abilities using artificial neural networks (also known as ‘neural networks’ or ‘neural nets’). Neural networks are simplified models of the brain composed of large numbers of units (the analogs of neurons) together with weights that measure the strength of connections between the units. These weights model the effects of the synapses that link one neuron to another. Experiments on models of this kind have demonstrated an ability to learn such skills as face recognition, reading, and the detection of simple grammatical structure.
(Note: Neural networks are not only connectionism approach. Also there is very different kind neural networks.)
And symbolic (from The University of Alberta's Dictionary of Cognitive Science
[^] ):
Symbolic architecture refers to the classical view of the architecture of the mind. In this approach the mind is viewed as a process in which symbols are manipulated. Symbols are moved between memory stores such as long term and short term memory and are acted upon by an explicit set of rules in a particular sequence. The symbolic architecture is the manner in which memory stores are related and the set of rules applied to the system.
Symbolic approach have achieved huge success in very limited problem areas. It's solutions are normally very specific for one problem. And because problems are normally simplified "laboratory problems" - this approach haven't achieved great practical success.
Connectionism approaches advantage is that it's basic problem solution mechanism (neural networks and other similar networks) is applicable to wide area of different kind problems and you don't need to know much from problem (basicly it is enough to know inputs and outputs - and guess right network architecture). However it uses lot of processing power and memory (it is simple simulation from brains). You also need to find suitable presentation for inputs and outputs, train network and select suitable network architecture (how many layers, how many neurons, etc.).
When you know your problem very well: you should use symbolic approach (or better develope mathematical model). If your problem is complex, you don't know it specifics well enough or there is lot's of "noise data" - you can try connectionism approach. Lisp and Prolog are developed for symbolic AI approaches. Connectionism approach doesn't have specific language - you just need to have programming language (like C#) that is suitable for "brain simulation".
IMHO: Connectionism approach is real way to do AI. Symbolic approach seem to be suitable for only very limited problem areas.
Here is some good tutorials for neural networks: AI Depot tutorials[^]
|
|
|
|
|
hai there,
i heard Lisp, Prolog, C/C++,Java, Python can used for AI programming.Because Features of this language that
are good for AI programming include: garbage collection, dynamic
typing, functions as data, uniform syntax, interactive environment,
and extensibility.
So which technology that our C# not satisfying ?
if it is satisfying all features. can we use this language for AI programming ?
|
|
|
|
|
Is it possible to use a directory picker in c#.net 2003? Or do you have to write it yourself?
Thx in advance
|
|
|
|
|
You mean in .NET 1.1? Use the FolderBrowserDialog class.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
yes thx that's it, works great
i found somthing like this on another site but that was a complete program, this is just 3 lines, a lot better
thx!
|
|
|
|
|
I am trying to raw c++ client for a c# server and am stuck at a very strange point - i have gone through the documentations available but none seem to show an unmanaged c++ client(everyone prefers VB)
so here is my steps:
using System;
using System.Runtime.InteropServices;
namespace InterfaceNETServer
{
public interface INETServer
{
string Sayhi();
}
public class InterfaceNETServer:INETServer
{
public InterfaceNETServer()
{
}
public string Sayhi()
{
return "Hi from Server";
}
}
}
The generated typelib ,as from typelib viewer in ole view
// Generated .IDL file (by the OLE/COM Object Viewer)
//
// typelib filename: InterfaceServer.tlb
[
uuid(21D195E2-ECE9-340D-8CE0-079CDC12FAEF),
version(1.0)
]
library InterfaceNETServer
{
// TLib : // TLib : Common Language Runtime Library : {BED7F4EA-1A96-11D2-8F08-00A0C9A6186D}
importlib("mscorlib.tlb");
// TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
importlib("Stdole2.tlb");
// Forward declare all types defined in this typelib
interface INETServer;
interface _InterfaceNETServer;
[
odl,
uuid(1701A141-5AE7-35AE-BD6E-D389EDD66D65),
version(1.0),
dual,
oleautomation,
custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "InterfaceNETServer.INETServer")
]
interface INETServer : IDispatch {
[id(0x60020000)]
HRESULT Sayhi([out, retval] BSTR* pRetVal);
};
[
uuid(2D31E170-65BD-31DF-A526-90624DD704BB),
version(1.0),
custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "InterfaceNETServer.InterfaceNETServer")
]
coclass InterfaceNETServer {
[default] interface _InterfaceNETServer;
interface _Object;
interface INETServer;
};
[
odl,
uuid(DD603E31-4155-3DBE-B1BE-357E3863D3EE),
hidden,
dual,
oleautomation,
custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "InterfaceNETServer.InterfaceNETServer")
]
interface _InterfaceNETServer : IDispatch {
};
};
and my c++ client
#include <iostream.h>
#include <atlbase.h>
#import <mscorlib.tlb>
#import "..\InterfaceNETServer\bin\Debug\InterfaceServer.tlb" no_namespace named_guids
#include "stdafx.h"
int main(int argc, char* argv[])
{
INETServer * cpi= NULL;
CoInitialize(NULL);
CoUninitialize();
return 0;
}
There is no way i can make the compiler recognize the INETServer interface!!!!!!!!
Compiling...
StdAfx.cpp
Compiling...
CLientforNetInterop.cpp
D:\CSHARP\NETSERVERFORINTEROP\CLientforNetInterop\CLientforNetInterop.cpp(15) : error C2065: 'INETServer' : undeclared identifier
The path to the tlb cannot be worng,as i can open the tlb through 'right click->open document' from within this file.Whats wrong ?
|
|
|
|
|
First thing - always attribute your class and interfaces with the GuidAttribute - among other attributes that are handy such as the InterfaceTypeAttribute - to make sure that the GUIDs are constant and use the COM guidelines: if you need to change your interface after publishing your code, make a new interface that inherits from the original one, called INETServer2 or something, with a new GUID.
As for the actual problem, look at the header file that the compiler generates when it imports the typelib. It should have a .tlh extension, IIRC, and is in your project directory. You might need to add the raw_interfaces_only attribute to your #import statement. The .tlh file should tell you what was imported and what they were called.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thanks for the help.
BUt although I see the interface name in the generated .tlh file,it simply refuses to recognize the Interface name while compilation.
I change the #import attributes from 'no_namespace named_guids' to 'raw_interfaces_only',but still getting the same error.
Are there any other sugestions?
can a c++ client (compiled usin VC6.0) not be built against a C# server?
I am also surprised that no literature/tutorial is available for this - there seems to be a definite preference for VB clients in .NET references.
|
|
|
|
|
No, don't get rid of no_namespace named_guids , just add raw_interfaces_only . If you remove no_namespace , then a namespace is defined for which you need to use using namespace theNamespace; after your #import .
A native C++ app can consume a CCW (COM-Callable Wrapper) for managed code. In fact, I do it in my article about Java interop with .NET at the presentation layer, which you could read about and see the example of how I consume a managed COM object from unmanaged code. See http://www.codeproject.com/dotnet/javanet.asp[^].
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
The whole message didn't show!!! The config file code were missing!
The config file looks like this:
------------------------------------------------------
app.config
add key="ColorClosed" value="255,0,0"
------------------------------------------------------
I have also tried this:
add key="ColorClosed" value="#FF0000"
|
|
|
|
|
The ColorConverter converts either color names (from the KnownColors enumeration) or hex values with or without the pound (#) sign. That should work when you read the string using AppSettings["ColorClosed"] (no need to call ToString , BTW, since it already is a string and - if it's not in your .config file - would return null thus throwing a NullReferenceException . If you want to store colors using the R,G,B notation, then you'll need to split the strigs, convert them to int s, and use Color.FromArgb , which you seem to be doing.
Since you didn't tell us what the actual problem is (i.e., what Exception is thrown and what the message is), all I can do is guess that your .config file isn't 1) named correct (should be YourAppName.exe.config), and/or 2) isn't in the same directory as the application. The best thing is to step through your code and check the state of each variable. It also helps to split your longer statements into shorter ones - the compiler will do that anyway so there's no loss in performance.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Ok, a better explenation:
I have made a user control that simple draws a circle and will fill that circle with a color defined in the config file. Then I want to drag this user control out on my main form but when I do this the following error occurs:
"An exception occured while trying to create an instance of xxxx. The excepiton was "ColorConverter cannot convert from (null)"."
The config file is named app.config is in the same directory as the user control and contains
add key="ColorClosed" value="#FF0000"
Now my code looks like this in the user control:
//Declaration of redBrush
SolidBrush redBrush = new SolidBrush((Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString(System.Configuration.ConfigurationSettings.AppSettings["ColorClosed"]));
The method that draws the circle looks like this;
private void CircleControl_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics dc = this.CreateGraphics();
dc.DrawEllipse(blackPen, 0, 0, 40, 40);
if(_status == Switch.Open)
{
dc.DrawRectangle(blackPen, 0, 15, 40, 10);
dc.FillRectangle(greenBrush, 0, 15, 40, 10);
}
else if(_status == Switch.Closed)
{
dc.DrawRectangle(blackPen, 15, 0, 10, 40);
dc.FillRectangle(redBrush, 15, 0, 10, 40);
}
else if(_status == Switch.Intermediate)
{
dc.FillEllipse(yellowBrush, 0, 0, 40, 40);
}
else
{
}
}
|
|
|
|
|
Like I said, the .config file must use the same name as your application (case-insensitive) with .config appended. app.config is not a valid name, which is why you're getting null (which you should be checking anyway - NEVER trust any user input whether directly or indirectly input into your code).
If your application is called MyApp.exe, then your config file must be called MyApp.exe.config. This is documented in the .NET Framework SDK.
If you want, create a new file in your project called App.config (must be an upper-case "A", at least in VS.NET 2002). The project "compiler" will rename this appropriately and will copy it to the target directory for the current build.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I'm trying to convert a string written in a config file to a System.Drawing.Color and I have tried lots of different solutions but nothing have worked. This is the last shot a had on it:
------------------------------------------------------
app.config
<add key="ColorOpen" value="0,181,0">
------------------------------------------------------
private SolidBrush GetClosed()
{
string strClosed = System.Configuration.ConfigurationSettings.AppSettings["ColorClosed"];
string[] parts =strClosed.Split(',');
int rValue = int.Parse(parts[0]);
int gValue = int.Parse(parts[1]);
int bValue = int.Parse(parts[2]);
Color colorClosed = Color.FromArgb( rValue, gValue, bValue );
SolidBrush redBrush = new SolidBrush(colorClosed);
return redBrush;
}
------------------------------------------------------
I have also tried this:
SolidBrush redBrush = new SolidBrush((Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString(System.Configuration.ConfigurationSettings.AppSettings["ColorClosed"]));
---------------------------------------------------------
and this:
string strOpen = System.Configuration.ConfigurationSettings.AppSettings["ColorOpen"].ToString();
Color colorOpen = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString(strOpen);
SolidBrush greenBrush = new SolidBrush(colorOpen);
-----------------------------------------------------------
Please help me!! I'm going creazy over this!
/Anze
|
|
|
|
|
Hi there. How about the ColorTranslator class? Here's a link to the MSDN documentation[^]
using System.Drawing;
Color c = ColorTranslator.FromHtml("#999999");
|
|
|
|
|
I am sorry for My English is poor
i want to ask that
i have a .XSD file which have an complexType
the complexType have some element
can i use fill method to fill these element
study everyday
|
|
|
|
|
i think that you have to use the datareader to fill it up
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
thank you
i will try
study everyday
|
|
|
|
|
It's better to use a DataAdapter .
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Don't use a DataReader with a DataSet - you have to handle a lot of code yourself that a DataAdapter already does for you if you establish the table and column mappings either programmatically or - like you seemed to have done - by creating a typed DataSet . If you give your DataAdapter derivative (like the SqlDataAdapter ) at least a SelectCommand , it will fill your typed DataSet correctly (so long as the SQL statement corresponds to the typed DataSet ) when you call DataAdapter.Fill . If you assign the optional properties, DeleteCommand , UpdateCommand , and InsertCommand on the DataAdapter , you can also call Update to update your ADO.NET data source with changes made to your DataSet since you last fill it (or called AcceptChanges , which removes all tracking information for each row).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
thank you
i find that i can use fill method
your Suggest is very good for me
my english is poor
so there are maybe some errors with english :;P
study everyday
|
|
|
|
|
I'm wondering how to display tabs or buttons for open documents in a multiple document interface.
For example, lets say there are 5 documents open in the MDI Container, and they are all maximized, there is no way to swap back and forth to the other documents.
What would be the best way to do this?
Thanks in advance,
Jon
|
|
|
|
|
You could add a Menu to the MDI Parent, call it, say, &Window, and set it MDIList property to true.
RageInTheMachine9532
|
|
|
|
|